Sha256: 97dc286980aa748efc8028436b93ea10163832109004cf9cbf3c2ddd07c1b9d1

Contents?: true

Size: 1.21 KB

Versions: 31

Compression:

Stored size: 1.21 KB

Contents

class Card
  module Query
    class AbstractQuery
      # shared methods for queries
      module QueryHelper
        def direct_subqueries
          subqueries_with_fasten :direct
        end

        def subqueries_with_fasten fasten
          list = []
          subqueries.each do |s|
            next unless Array.wrap(fasten).include? s.fasten

            list << s
            list += s.subqueries_with_fasten s.fasten
          end
          list
        end

        def table_alias
          @table_alias ||= begin
            if fasten == :direct
              @superquery.table_alias
            else
              "#{table_prefix}#{next_table_suffix}"
            end
          end
        end

        def next_table_suffix
          return root.next_table_suffix unless root?

          @table_suffix = (@table_suffix || -1) + 1
        end

        def fld field_name
          "#{table_alias}.#{field_name}"
        end

        def add_condition *args
          @conditions <<
            if args.size > 1
              [args.shift, Query::Value.new(args.shift, self)]
            else
              args[0]
            end
        end

        def current_conjunction
          "AND"
        end
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
card-1.104.2 lib/card/query/abstract_query/query_helper.rb
card-1.104.1 lib/card/query/abstract_query/query_helper.rb
card-1.104.0 lib/card/query/abstract_query/query_helper.rb
card-1.103.4 lib/card/query/abstract_query/query_helper.rb
card-1.103.3 lib/card/query/abstract_query/query_helper.rb
card-1.103.2 lib/card/query/abstract_query/query_helper.rb
card-1.103.1 lib/card/query/abstract_query/query_helper.rb
card-1.103.0 lib/card/query/abstract_query/query_helper.rb
card-1.101.7 lib/card/query/abstract_query/query_helper.rb
card-1.102.0 lib/card/query/abstract_query/query_helper.rb
card-1.101.6 lib/card/query/abstract_query/query_helper.rb
card-1.101.5 lib/card/query/abstract_query/query_helper.rb
card-1.101.4 lib/card/query/abstract_query/query_helper.rb
card-1.101.3 lib/card/query/abstract_query/query_helper.rb
card-1.101.2 lib/card/query/abstract_query/query_helper.rb
card-1.101.1 lib/card/query/abstract_query/query_helper.rb
card-1.101.0 lib/card/query/abstract_query/query_helper.rb
card-1.100.0 lib/card/query/abstract_query/query_helper.rb
card-1.99.6 lib/card/query/abstract_query/query_helper.rb
card-1.99.5 lib/card/query/abstract_query/query_helper.rb