class Axiom::Algebra::Summarization::Summaries
Summaries
for all aggregate functions
Public Class Methods
new(header, summarizers)
click to toggle source
Initialize Summaries
@param [Relation::Header] header
@param [Hash{Symbol => call}] summarizers
@return [undefined]
@api private
# File lib/axiom/algebra/summarization/summaries.rb, line 19 def initialize(header, summarizers) @header = header @summaries = {} summarizers.each do |name, summarizer| @summaries[name] = Summary.new(summarizer) end end
Public Instance Methods
summarize_by(tuple)
click to toggle source
Execute all summarizers with the tuple, summarized by the header
@example
summaries = summaries.summarize_by(header, tuple)
@param [Tuple] tuple
@return [self]
@api public
# File lib/axiom/algebra/summarization/summaries.rb, line 37 def summarize_by(tuple) projection = tuple.project(@header) @summaries.each_value do |summary| summary.summarize_by(projection, tuple) end self end
to_hash()
click to toggle source
Return the summaries as a Hash
@example
hash = summaries.to_hash
@return [Hash]
@api public
# File lib/axiom/algebra/summarization/summaries.rb, line 53 def to_hash @summaries end