module Elastic::Nodes::Concerns::Aggregable
Public Instance Methods
aggregate(_node)
click to toggle source
# File lib/elastic/nodes/concerns/aggregable.rb, line 15 def aggregate(_node) raise ArgumentError, 'node must provide a name' unless _node.name aggs << _node end
aggregations()
click to toggle source
# File lib/elastic/nodes/concerns/aggregable.rb, line 11 def aggregations @aggs.each end
aggregations=(_aggs)
click to toggle source
# File lib/elastic/nodes/concerns/aggregable.rb, line 7 def aggregations=(_aggs) @aggs = _aggs.dup.to_a end
clone()
click to toggle source
Calls superclass method
# File lib/elastic/nodes/concerns/aggregable.rb, line 25 def clone node = super node.aggregations = aggs.map(&:clone) node end
has_aggregations?()
click to toggle source
# File lib/elastic/nodes/concerns/aggregable.rb, line 3 def has_aggregations? aggs.count > 0 end
simplify()
click to toggle source
Calls superclass method
# File lib/elastic/nodes/concerns/aggregable.rb, line 31 def simplify node = super node.aggregations = aggs.map(&:simplify) node end
traverse(&_block)
click to toggle source
Calls superclass method
# File lib/elastic/nodes/concerns/aggregable.rb, line 20 def traverse(&_block) super aggs.each { |a| a.traverse(&_block) } end
Private Instance Methods
aggs()
click to toggle source
# File lib/elastic/nodes/concerns/aggregable.rb, line 39 def aggs @aggs ||= [] end
load_aggs_results(_raw, _formatter)
click to toggle source
# File lib/elastic/nodes/concerns/aggregable.rb, line 48 def load_aggs_results(_raw, _formatter) {}.tap do |result| aggs.each do |node| result[node.name] = node.handle_result(_raw[node.name.to_s], _formatter) end end end
render_aggs(_into, _options)
click to toggle source
# File lib/elastic/nodes/concerns/aggregable.rb, line 43 def render_aggs(_into, _options) _into['aggs'] = Hash[aggs.map { |a| [a.name.to_s, a.render(_options)] }] if has_aggregations? _into end