Class: ArtirixDataModels::AggregationBuilder

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aggregations_factory:, definition:, aggregation_class: Aggregation, metric_aggregation_class: MetricAggregation, value_class: Aggregation::Value) ⇒ AggregationBuilder

Returns a new instance of AggregationBuilder.



6
7
8
9
10
11
12
# File 'lib/artirix_data_models/aggregation_builder.rb', line 6

def initialize(aggregations_factory:, definition:, aggregation_class: Aggregation, metric_aggregation_class: MetricAggregation, value_class: Aggregation::Value)
  @aggregations_factory     = aggregations_factory
  @definition               = definition
  @aggregation_class        = aggregation_class
  @metric_aggregation_class = metric_aggregation_class || aggregation_class
  @value_class              = value_class
end

Instance Attribute Details

#aggregation_classObject (readonly)

Returns the value of attribute aggregation_class.



4
5
6
# File 'lib/artirix_data_models/aggregation_builder.rb', line 4

def aggregation_class
  @aggregation_class
end

#aggregations_factoryObject (readonly)

Returns the value of attribute aggregations_factory.



4
5
6
# File 'lib/artirix_data_models/aggregation_builder.rb', line 4

def aggregations_factory
  @aggregations_factory
end

#definitionObject (readonly)

Returns the value of attribute definition.



4
5
6
# File 'lib/artirix_data_models/aggregation_builder.rb', line 4

def definition
  @definition
end

#metric_aggregation_classObject (readonly)

Returns the value of attribute metric_aggregation_class.



4
5
6
# File 'lib/artirix_data_models/aggregation_builder.rb', line 4

def metric_aggregation_class
  @metric_aggregation_class
end

#value_classObject (readonly)

Returns the value of attribute value_class.



4
5
6
# File 'lib/artirix_data_models/aggregation_builder.rb', line 4

def value_class
  @value_class
end

Instance Method Details

#buildObject Also known as: call



14
15
16
17
18
19
20
# File 'lib/artirix_data_models/aggregation_builder.rb', line 14

def build
  if is_metric?
    metric_aggregation_class.new agg_name, value
  else
    aggregation_class.new agg_name, buckets
  end
end