Class: Elasticated::SumDistinctAggregation

Inherits:
GroupAggregation show all
Defined in:
lib/elasticated/aggregations/sum_distinct_aggregation.rb

Instance Attribute Summary collapse

Attributes inherited from GroupAggregation

#compact, #key_as_string

Attributes included from Subaggregated

#_subaggregations

Attributes inherited from TermsAggregation

#order_field, #order_method, #size

Attributes inherited from Aggregation

#alias_name, #extra_params, #field

Instance Method Summary collapse

Methods inherited from GroupAggregation

#build, #default_name

Methods included from Subaggregated

#initialize_subaggregations

Methods inherited from TermsAggregation

#build

Methods inherited from Aggregation

#name, #original_name

Methods included from Mixins::Inspectionable

#inspect, #text_for_inspect

Methods included from Mixins::BlockEvaluation

#evaluate

Methods included from Mixins::Clonable

#==, #clone

Constructor Details

#initialize(group_field, operation_type, operation_field, *args) ⇒ SumDistinctAggregation

Returns a new instance of SumDistinctAggregation.



7
8
9
10
# File 'lib/elasticated/aggregations/sum_distinct_aggregation.rb', line 7

def initialize(group_field, operation_type, operation_field, *args)
  super group_field, *args
  self._operation = _subaggregations.send operation_type, operation_field
end

Instance Attribute Details

#_operationObject

warning! this “thing” extends from a multi-value aggregation but is a single-value!



5
6
7
# File 'lib/elasticated/aggregations/sum_distinct_aggregation.rb', line 5

def _operation
  @_operation
end

Instance Method Details

#parse(response) ⇒ Object



12
13
14
15
16
17
# File 'lib/elasticated/aggregations/sum_distinct_aggregation.rb', line 12

def parse(response)
  response['buckets'].inject(0) do |total, element|
    operation_name = _operation.name.to_s # TODO
    total += _subaggregations.parse(element)[operation_name] || 0
  end || 0
end