Class: Differential::Calculator::Report

Inherits:
Object
  • Object
show all
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

#totals

Instance Method Details

#add(record, side) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
32
33
34
# File 'lib/differential/calculator/report.rb', line 25

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

#groupsObject



21
22
23
# File 'lib/differential/calculator/report.rb', line 21

def groups
  groups_by_id.values
end