diff --git a/lib/origin/mergeable.rb b/lib/origin/mergeable.rb index 9d7eab6..3493987 100644 --- a/lib/origin/mergeable.rb +++ b/lib/origin/mergeable.rb @@ -150,7 +150,9 @@ def __multi__(criterion, operator) next unless expr criteria = sel[operator] || [] normalized = expr.inject({}) do |hash, (field, value)| - hash.merge!(field.__expr_part__(value.__expand_complex__)) + hash.merge!(field.__expr_part__(value.__expand_complex__)) do |_, existing, additional| + existing.merge(additional) + end hash end sel.store(operator, criteria.push(normalized))