Class: ReportsKit::Reports::Data::GenerateForProperties
- Inherits:
-
Object
- Object
- ReportsKit::Reports::Data::GenerateForProperties
- Defined in:
- lib/reports_kit/reports/data/generate_for_properties.rb
Constant Summary collapse
- ROUND_PRECISION =
3
Instance Attribute Summary collapse
-
#context_record ⇒ Object
Returns the value of attribute context_record.
-
#properties ⇒ Object
Returns the value of attribute properties.
Instance Method Summary collapse
-
#initialize(properties, context_record: nil) ⇒ GenerateForProperties
constructor
A new instance of GenerateForProperties.
- #perform ⇒ Object
Constructor Details
#initialize(properties, context_record: nil) ⇒ GenerateForProperties
Returns a new instance of GenerateForProperties.
9 10 11 12 |
# File 'lib/reports_kit/reports/data/generate_for_properties.rb', line 9 def initialize(properties, context_record: nil) self.properties = properties.deep_symbolize_keys self.context_record = context_record end |
Instance Attribute Details
#context_record ⇒ Object
Returns the value of attribute context_record.
7 8 9 |
# File 'lib/reports_kit/reports/data/generate_for_properties.rb', line 7 def context_record @context_record end |
#properties ⇒ Object
Returns the value of attribute properties.
7 8 9 |
# File 'lib/reports_kit/reports/data/generate_for_properties.rb', line 7 def properties @properties end |
Instance Method Details
#perform ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/reports_kit/reports/data/generate_for_properties.rb', line 14 def perform if composite_operator raise ArgumentError.new('Aggregations require at least one series') if all_serieses.length == 0 dimension_keys_values = Data::AggregateComposite.new(properties, context_record: context_record).perform serieses_dimension_keys_values = { CompositeSeries.new(properties, context_record: context_record) => dimension_keys_values } elsif all_serieses.length == 1 && composite_serieses.length == 1 dimension_keys_values = Data::AggregateComposite.new(composite_serieses.first.properties, context_record: context_record).perform serieses_dimension_keys_values = { all_serieses.first => dimension_keys_values } elsif all_serieses.length == 1 && all_serieses.first.dimensions.length == 2 dimension_keys_values = Data::AggregateTwoDimensions.new(all_serieses.first).perform serieses_dimension_keys_values = { all_serieses.first => dimension_keys_values } serieses_dimension_keys_values = Data::PopulateTwoDimensions.new(serieses_dimension_keys_values).perform elsif all_serieses.length > 0 serieses_dimension_keys_values = serieses_dimension_keys_values_for_one_dimension else raise ArgumentError.new('The configuration of measurse and dimensions is invalid') end serieses_dimension_keys_values end |