Class: Differential::Calculator::Report
- Inherits:
-
Object
- Object
- Differential::Calculator::Report
- Includes:
- HasTotals
- Defined in:
- lib/differential/calculator/report.rb
Overview
This class is responsible for building an entire report. Usage:
-
Instantiate a Reader.
-
Instantiate a Report.
-
Feed in dataset(s) into the Reader to generate Record objects.
-
Feed in Record objects, generated by a Reader, by calling Report#add.
The Report object will keep running sums and deltas of all added records.
Instance Method Summary collapse
Methods included from HasTotals
Instance Method Details
#add(record, side) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/differential/calculator/report.rb', line 29 def add(record, side) raise ArgumentError, 'record is required' unless record raise ArgumentError, 'side is required' unless side totals.add(record.value, side) upsert_group(record, side) self end |
#groups ⇒ Object
25 26 27 |
# File 'lib/differential/calculator/report.rb', line 25 def groups groups_by_id.values end |
#sorted_groups ⇒ Object
21 22 23 |
# File 'lib/differential/calculator/report.rb', line 21 def sorted_groups groups.sort_by { |group| group.id.value } end |