4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/composite_primary_keys/relation/where_clause.rb', line 4
def to_h(table_name = nil)
equalities = predicates.grep(Arel::Nodes::Equality)
equalities = predicates.grep(Arel::Nodes::And).map(&:children).flatten.grep(Arel::Nodes::Equality) if equalities.empty?
if table_name
equalities = equalities.select do |node|
node.left.relation.name == table_name
end
end
equalities.map { |node|
name = node.left.name.to_s
value = (node.right)
[name, value]
}.to_h
end
|