Class: Card::Query::ReferenceQuery
Overview
support the use of the card_references table in CQL
Instance Attribute Summary
#comment, #conditions, #conditions_on_join, #joins, #mods, #negate, #statement, #subqueries, #superquery, #table_seq, #vars
Instance Method Summary
collapse
#context, #depth, #full?, #init_instance_vars, #init_query_vars, #initialize, #interpret, #root, #root?, #sql, #subquery
#fasten, #fasten_tie, #id_from_val, #inherit_fasten, #left_join?, #negate_join, #restrict, #super_conditions, #superfield, #tie, #tie_subquery, #tie_with_exist, #tie_with_in, #tie_with_join, #tie_with_join_args
#add_condition, #current_conjunction, #direct_subqueries, #fld, #next_table_suffix, #subqueries_with_fasten, #table_alias
Instance Method Details
#add_conditions(outfield, hash) ⇒ Object
21
22
23
24
|
# File 'lib/card/query/reference_query.rb', line 21
def add_conditions outfield, hash
add_reftype_condition hash[:reftype]
add_outfield_condition outfield, hash[:card]
end
|
#add_outfield_condition(outfield, outcard) ⇒ Object
26
27
28
29
30
31
32
33
34
|
# File 'lib/card/query/reference_query.rb', line 26
def add_outfield_condition outfield, outcard
if outcard == "_none"
non_outfield
elsif (id = id_from_val(outcard))
outfield_id outfield, id
else
tie :card, outcard, from: outfield
end
end
|
#add_reftype_condition(reftype) ⇒ Object
44
45
46
47
48
49
50
51
|
# File 'lib/card/query/reference_query.rb', line 44
def add_reftype_condition reftype
return unless reftype.present?
reftype = Array.wrap reftype
operator = (reftype.size == 1 ? "=" : "IN")
quoted_letters = reftype.map { |letter| "'#{letter}'" } * ", "
add_condition "#{fld(:ref_type)} #{operator} (#{quoted_letters})"
end
|
#non_outfield ⇒ Object
36
37
38
|
# File 'lib/card/query/reference_query.rb', line 36
def non_outfield
add_condition "#{fld :is_present} = 0"
end
|
#outfield_id(outfield, id) ⇒ Object
40
41
42
|
# File 'lib/card/query/reference_query.rb', line 40
def outfield_id outfield, id
add_condition "#{fld(outfield)} = #{id}"
end
|
#referee(hash) ⇒ Object
17
18
19
|
# File 'lib/card/query/reference_query.rb', line 17
def referee hash
add_conditions :referee_id, hash
end
|
#referer(hash) ⇒ Object
13
14
15
|
# File 'lib/card/query/reference_query.rb', line 13
def referer hash
add_conditions :referer_id, hash
end
|
#table ⇒ Object
5
6
7
|
# File 'lib/card/query/reference_query.rb', line 5
def table
"card_references"
end
|
#table_prefix ⇒ Object
9
10
11
|
# File 'lib/card/query/reference_query.rb', line 9
def table_prefix
"cr"
end
|