Class: Factbase::Agg
Overview
The term ‘agg’ that aggregates.
Instance Method Summary collapse
-
#evaluate(fact, maps, fb) ⇒ Object
Evaluate term on a fact.
-
#initialize(operands = []) ⇒ Agg
constructor
Constructor.
Methods inherited from TermBase
Constructor Details
#initialize(operands = []) ⇒ Agg
Constructor.
11 12 13 14 15 |
# File 'lib/factbase/terms/agg.rb', line 11 def initialize(operands = []) super() @operands = operands @op = :agg end |
Instance Method Details
#evaluate(fact, maps, fb) ⇒ Object
Evaluate term on a fact.
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/factbase/terms/agg.rb', line 22 def evaluate(fact, maps, fb) assert_args(2) selector = @operands[0] unless selector.is_a?(Factbase::Term) || selector.is_a?(Factbase::TermBase) raise "A term is expected, but '#{selector}' provided" end term = @operands[1] unless term.is_a?(Factbase::Term) || term.is_a?(Factbase::TermBase) raise "A term is expected, but '#{term}' provided" end subset = fb.query(selector, maps).each(fb, fact).to_a term.evaluate(nil, subset, fb) end |