class MatchReduce::Processor::ResultsBuilder
This class knows how to group together aggregators in order to produce results.
Attributes
resolver[R]
result_by_name[R]
Public Class Methods
new(aggregators, resolver)
click to toggle source
# File lib/match_reduce/processor/results_builder.rb, line 18 def initialize(aggregators, resolver) raise ArgumentError, 'aggregators are required' unless aggregators @result_by_name = aggregators.map { |a| [a.name, ResultBuilder.new(a, resolver)] }.to_h @resolver = resolver freeze end
Public Instance Methods
add(aggregator, record, group_id)
click to toggle source
# File lib/match_reduce/processor/results_builder.rb, line 27 def add(aggregator, record, group_id) tap { result_by_name[aggregator.name].add(record, group_id) } end
results()
click to toggle source
# File lib/match_reduce/processor/results_builder.rb, line 31 def results result_by_name.values.map(&:result) end