lib/search_flip/aggregatable.rb in search_flip-3.0.0.beta2 vs lib/search_flip/aggregatable.rb in search_flip-3.0.0.beta3
- old
+ new
@@ -55,10 +55,17 @@
hash = field_or_hash.is_a?(Hash) ? field_or_hash : { field_or_hash => { terms: { field: field_or_hash }.merge(options) } }
if block
aggregation = yield(SearchFlip::Aggregation.new(target: target))
- field_or_hash.is_a?(Hash) ? hash[field_or_hash.keys.first].merge!(aggregation.to_hash) : hash[field_or_hash].merge!(aggregation.to_hash)
+ if field_or_hash.is_a?(Hash)
+ value = field_or_hash.values.first
+ value = value.values.first if value.is_a?(Hash) && !value.empty?
+
+ value.merge!(aggregation.to_hash)
+ else
+ hash[field_or_hash].merge!(aggregation.to_hash)
+ end
end
criteria.aggregation_values = (aggregation_values || {}).merge(hash)
end
end