Class: Axiom::Algebra::Summarization::Summaries

Inherits:
Object
  • Object
show all
Defined in:
lib/axiom/algebra/summarization/summaries.rb

Overview

Summaries for all aggregate functions

Instance Method Summary collapse

Constructor Details

#initialize(header, summarizers) ⇒ undefined

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Initialize Summaries

Parameters:



19
20
21
22
23
24
25
# 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

Instance Method Details

#summarize_by(tuple) ⇒ self

Execute all summarizers with the tuple, summarized by the header

Examples:

summaries = summaries.summarize_by(header, tuple)

Parameters:

Returns:

  • (self)


37
38
39
40
41
42
43
# 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_hashHash

Return the summaries as a Hash

Examples:

hash = summaries.to_hash

Returns:

  • (Hash)


53
54
55
# File 'lib/axiom/algebra/summarization/summaries.rb', line 53

def to_hash
  @summaries
end