Sha256: 742e356c4a8cb76c218756d20894fd6cf6173aaffc911606269997115c6b17cd

Contents?: true

Size: 1.01 KB

Versions: 20

Compression:

Stored size: 1.01 KB

Contents

class Card
  module Query
    class CardQuery
      # conjoining conditions
      module Conjunctions
        def all val
          conjoin val, :and
        end
        alias_method :and, :all

        def any val
          conjoin val, :or
        end
        alias_method :or, :any
        alias_method :in, :any

        def not val
          tie :card, val, { id: :id }, negate: true
        end

        def current_conjunction
          @mods[:conj].blank? ? :and : @mods[:conj]
        end

        private

        def conjunction val
          return unless [String, Symbol].member? val.class

          CONJUNCTIONS[val.to_sym]
        end

        def conjoin val, conj
          subquery = subquery fasten: :direct, conj: conj
          conjoinable_val(val).each do |val_item|
            subquery.interpret val_item
          end
        end

        def conjoinable_val val
          return val if val.is_a? Array

          clause_to_hash(val).map { |key, value| { key => value } }
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
card-1.101.5 lib/card/query/card_query/conjunctions.rb
card-1.101.4 lib/card/query/card_query/conjunctions.rb
card-1.101.3 lib/card/query/card_query/conjunctions.rb
card-1.101.2 lib/card/query/card_query/conjunctions.rb
card-1.101.1 lib/card/query/card_query/conjunctions.rb
card-1.101.0 lib/card/query/card_query/conjunctions.rb
card-1.100.0 lib/card/query/card_query/conjunctions.rb
card-1.99.6 lib/card/query/card_query/conjunctions.rb
card-1.99.5 lib/card/query/card_query/conjunctions.rb
card-1.99.4 lib/card/query/card_query/conjunctions.rb
card-1.99.3 lib/card/query/card_query/conjunctions.rb
card-1.99.2 lib/card/query/card_query/conjunctions.rb
card-1.99.1 lib/card/query/card_query/conjunctions.rb
card-1.99.0 lib/card/query/card_query/conjunctions.rb
card-1.98.3 lib/card/query/card_query/conjunctions.rb
card-1.98.2 lib/card/query/card_query/conjunctions.rb
card-1.98.1 lib/card/query/card_query/conjunctions.rb
card-1.98.0 lib/card/query/card_query/conjunctions.rb
card-1.97.0.1 lib/card/query/card_query/conjunctions.rb
card-1.97.0 lib/card/query/card_query/conjunctions.rb