Class: ArtirixDataModels::RawAggregationDataNormaliser

Inherits:
Object
  • Object
show all
Defined in:
lib/artirix_data_models/raw_aggregation_data_normaliser.rb

Constant Summary collapse

IS_NESTED_COUNTS =
->(v) { v.respond_to?(:key?) && v.key?(:doc_count) && v.keys.size == 1 }
FIND_BUCKETS =
->(_k, v, _o) { v.respond_to?(:key?) && v.key?(:buckets) }
FIND_VALUE =
->(_k, v, _o) { v.respond_to?(:key?) && v.key?(:value) }
FIND_COUNTS =
->(_k, v, _o) do
  v.respond_to?(:key) &&
    v.key?(:doc_count) &&
    v.respond_to?(:values) &&
    v.values.any? { |x| IS_NESTED_COUNTS.call(x) }
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aggregations_factory, raw_aggs) ⇒ RawAggregationDataNormaliser

Returns a new instance of RawAggregationDataNormaliser.



17
18
19
20
21
# File 'lib/artirix_data_models/raw_aggregation_data_normaliser.rb', line 17

def initialize(aggregations_factory, raw_aggs)
  @aggregations_factory = aggregations_factory
  @raw_aggs             = raw_aggs
  @list                 = []
end

Instance Attribute Details

#aggregations_factoryObject (readonly)

Returns the value of attribute aggregations_factory.



15
16
17
# File 'lib/artirix_data_models/raw_aggregation_data_normaliser.rb', line 15

def aggregations_factory
  @aggregations_factory
end

#listObject (readonly)

Returns the value of attribute list.



15
16
17
# File 'lib/artirix_data_models/raw_aggregation_data_normaliser.rb', line 15

def list
  @list
end

#raw_aggsObject (readonly)

Returns the value of attribute raw_aggs.



15
16
17
# File 'lib/artirix_data_models/raw_aggregation_data_normaliser.rb', line 15

def raw_aggs
  @raw_aggs
end

Instance Method Details

#normaliseObject Also known as: call



23
24
25
26
27
28
29
30
# File 'lib/artirix_data_models/raw_aggregation_data_normaliser.rb', line 23

def normalise
  return [] unless raw_aggs.present?
  return raw_aggs if Array === raw_aggs

  normalise_hash(raw_aggs)

  list
end