Class: Bmg::Summarizer::ValueBy

Inherits:
Summarizer
  • Object
show all
Defined in:
lib/bmg/summarizer/value_by.rb

Overview

ValueBy summarizer.

Example:

# direct ruby usage
Bmg::Summarizer.value_by(:qty, :by => :serie).summarize(...)

Constant Summary collapse

DEFAULT_OPTIONS =
{
  :symbolize => false
}

Instance Method Summary collapse

Instance Method Details

#finalize(memo) ⇒ Object

Finalizes the computation.



33
34
35
# File 'lib/bmg/summarizer/value_by.rb', line 33

def finalize(memo)
  default_tuple.merge(memo)
end

#happens(memo, tuple) ⇒ Object

Collects the value



23
24
25
26
27
28
29
30
# File 'lib/bmg/summarizer/value_by.rb', line 23

def happens(memo, tuple)
  by = tuple[options[:by]]
  by = by.to_sym if by && options[:symbolize]
  misuse!(tuple, memo) if memo.has_key?(by)
  memo.tap{|m|
    m[by] = extract_value(tuple)
  }
end

#leastObject

Returns {} as least value.



18
19
20
# File 'lib/bmg/summarizer/value_by.rb', line 18

def least
  {}
end