Module: Card::Query::AbstractQuery::QueryHelper
- Included in:
- Card::Query::AbstractQuery
- Defined in:
- lib/card/query/abstract_query/query_helper.rb
Overview
shared methods for queries
Instance Method Summary collapse
- #add_condition(*args) ⇒ Object
- #current_conjunction ⇒ Object
- #direct_subqueries ⇒ Object
- #fld(field_name) ⇒ Object
- #subqueries_with_fasten(fasten) ⇒ Object
- #table_alias ⇒ Object
- #table_seq ⇒ Object
Instance Method Details
#add_condition(*args) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/card/query/abstract_query/query_helper.rb', line 38 def add_condition *args @conditions << if args.size > 1 [args.shift, Query::Value.new(args.shift, self)] else args[0] end end |
#current_conjunction ⇒ Object
47 48 49 |
# File 'lib/card/query/abstract_query/query_helper.rb', line 47 def current_conjunction "AND" end |
#direct_subqueries ⇒ Object
6 7 8 |
# File 'lib/card/query/abstract_query/query_helper.rb', line 6 def direct_subqueries subqueries_with_fasten :direct end |
#fld(field_name) ⇒ Object
34 35 36 |
# File 'lib/card/query/abstract_query/query_helper.rb', line 34 def fld field_name "#{table_alias}.#{field_name}" end |
#subqueries_with_fasten(fasten) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/card/query/abstract_query/query_helper.rb', line 10 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 |
#table_alias ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/card/query/abstract_query/query_helper.rb', line 21 def table_alias @table_alias ||= if fasten == :direct @superquery.table_alias else "#{table_prefix}#{root.table_seq}#{@table_suffix}" end end |
#table_seq ⇒ Object
30 31 32 |
# File 'lib/card/query/abstract_query/query_helper.rb', line 30 def table_seq @table_seq = @table_seq ? (@table_seq + 1) : 0 end |