class Dossier::Segment::Summary
Constants
- HeaderError
Attributes
average[R]
count[R]
headers[R]
sum[R]
sums[R]
Public Class Methods
new(headers)
click to toggle source
# File lib/dossier/segment/summary.rb, line 7 def initialize(headers) @headers = headers.map(&:to_s) @count = 0 @sums = headers.map { 0 } end
Public Instance Methods
<<(row)
click to toggle source
# File lib/dossier/segment/summary.rb, line 13 def <<(row) @count += 1 row.each_with_index { |v, i| sums[i] += parse(v) } self end
Private Instance Methods
index_of(key)
click to toggle source
# File lib/dossier/segment/summary.rb, line 31 def index_of(key) indexes[key.to_s] ||= headers.index(key.to_s) or raise_missing_header(key) end
indexes()
click to toggle source
# File lib/dossier/segment/summary.rb, line 35 def indexes @indexes ||= {} end
parse(value)
click to toggle source
# File lib/dossier/segment/summary.rb, line 39 def parse(value) BigDecimal.new(value.to_s) end
raise_missing_header(key)
click to toggle source
# File lib/dossier/segment/summary.rb, line 43 def raise_missing_header(key) raise HeaderError.new %Q[No such header '#{key}' in headers: #{headers.join(', ')}] end