Module: ActiveReporter::Report::Aggregation
- Included in:
- ActiveReporter::Report
- Defined in:
- lib/active_reporter/report/aggregation.rb
Instance Method Summary collapse
-
#flat_data ⇒ Object
flat hash of { [x1, x2, x3] => y }.
- #hashed_data ⇒ Object
-
#nested_data ⇒ Object
(also: #data)
nested array of [{ key: x3, values: [{ key: x2, values: [{ key: x1, value: y }] }] }].
- #raw_data ⇒ Object
- #source_data ⇒ Object
- #total_data ⇒ Object (also: #totals)
Instance Method Details
#flat_data ⇒ Object
flat hash of { [x1, x2, x3] => y }
10 11 12 |
# File 'lib/active_reporter/report/aggregation.rb', line 10 def flat_data @flat_data ||= flatten_data end |
#hashed_data ⇒ Object
14 15 16 |
# File 'lib/active_reporter/report/aggregation.rb', line 14 def hashed_data @hashed_data ||= hash_data end |
#nested_data ⇒ Object Also known as: data
nested array of
- { key: x3, values: [{ key: x2, values: [{ key: x1, value: y }
-
}] }]
20 21 22 |
# File 'lib/active_reporter/report/aggregation.rb', line 20 def nested_data @nested_data ||= nest_data end |
#raw_data ⇒ Object
4 5 6 |
# File 'lib/active_reporter/report/aggregation.rb', line 4 def raw_data @raw_data ||= aggregate end |
#source_data ⇒ Object
30 31 32 33 34 35 |
# File 'lib/active_reporter/report/aggregation.rb', line 30 def source_data @source_data ||= aggregators.values.reduce(groups) do |relation, aggregator| # append each aggregator into the base relation (groups) relation.merge(aggregator.aggregate(base_relation)) end end |
#total_data ⇒ Object Also known as: totals
25 26 27 |
# File 'lib/active_reporter/report/aggregation.rb', line 25 def total_data @total_data ||= total end |