63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/wherelizer.rb', line 63
def parse_conditions node
where = ''
if node.is_type? :hash
node.to_hash(false).each do |key, val|
if key.is_type? :lit
where += ".where(#{key.}: #{ruby2ruby.process(val)})"
else
where += ".where(#{ruby2ruby.process(key)} => #{ruby2ruby.process(val)})"
end
end
elsif node.is_type? :array
where = ".where(" + node.to_array.map{ |el| ruby2ruby.process(el) }.join(', ') + ")"
elsif node.is_type? :str
where = ".where(#{ruby2ruby.process(node)})"
else
raise "Unexpected type for conditions parameter. Expecting hash, array, or string."
end
where
end
|