class Elastic::Nodes::Agg::BaseMetric

Attributes

field[RW]
missing[RW]

Public Class Methods

build(_name, _field, missing: nil) click to toggle source
Calls superclass method Elastic::Nodes::BaseAgg::build
# File lib/elastic/nodes/agg/base_metric.rb, line 3
def self.build(_name, _field, missing: nil)
  super(_name).tap do |node|
    node.field = _field
    node.missing = missing
  end
end

Public Instance Methods

clone() click to toggle source
Calls superclass method Elastic::Nodes::BaseAgg#clone
# File lib/elastic/nodes/agg/base_metric.rb, line 12
def clone
  prepare_clone super
end
handle_result(_raw, _formatter) click to toggle source
# File lib/elastic/nodes/agg/base_metric.rb, line 27
def handle_result(_raw, _formatter)
  # TODO: apply formatter to value
  Elastic::Results::Metric.new _raw['value']
end
render(_options = {}) click to toggle source
# File lib/elastic/nodes/agg/base_metric.rb, line 20
def render(_options = {})
  hash = { 'field' => @field.to_s }
  hash['missing'] = @missing if @missing

  { metric => hash }
end
simplify() click to toggle source
Calls superclass method Elastic::Nodes::BaseAgg#simplify
# File lib/elastic/nodes/agg/base_metric.rb, line 16
def simplify
  prepare_clone super
end

Private Instance Methods

metric() click to toggle source
# File lib/elastic/nodes/agg/base_metric.rb, line 34
def metric
end
prepare_clone(_clone) click to toggle source
# File lib/elastic/nodes/agg/base_metric.rb, line 37
def prepare_clone(_clone)
  _clone.field = @field
  _clone.missing = @missing
  _clone
end