Sha256: bba98fb522412fb2289e979ede2f305f961d74d11b422087de2ef8879c0cd537

Contents?: true

Size: 800 Bytes

Versions: 2

Compression:

Stored size: 800 Bytes

Contents

class Card
  class Query
    module Conjunctions
      def all val
        conjoin val, :and
      end
      alias and all

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

      def conjoin val, conj
        sq = subquery unjoined: true, conj: conj
        unless val.is_a? Array
          val = clause_to_hash(val).map { |key, value| { key => value } }
        end
        val.each do |val_item|
          sq.interpret val_item
        end
      end

      def not val
        notjoin = join_cards val, conditions_on_join: true, side: 'LEFT'
        add_condition "#{notjoin.table_alias}.id is null"
      end

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
card-1.18.6 lib/card/query/conjunctions.rb
card-1.18.5 lib/card/query/conjunctions.rb