Sha256: b51dba9e947f099c72dce6e8f2d8bc3d8429d6212f90224effbcc7e48701a0d7

Contents?: true

Size: 606 Bytes

Versions: 2

Compression:

Stored size: 606 Bytes

Contents

# frozen_string_literal: true

module ActiveRecord
  module QueryMethods
    # Store chain for array columns.
    class ArrayChain < StoreChain
      # Whether the array overlaps provided array.
      #
      # Example
      #   Model.create!(name: 'first', store: ['b', 'c'])
      #   Model.create!(name: 'second', store: ['a', 'b'])
      #
      #   Model.store(:store).overlap('c').all #=> [Model(name: 'first', ...)]
      #   Model.store(:store).overlap(['b']).size #=> 2
      def overlap(*vals)
        update_scope "#{quoted_store_name} && #{type_cast(vals.flatten)}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pgrel-0.3.1 lib/pgrel/active_record/store_chain/array_chain.rb
pgrel-0.3.0 lib/pgrel/active_record/store_chain/array_chain.rb