Class: FlowEngine::Evaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/flowengine/evaluator.rb

Overview

Evaluates rule AST nodes against a given answer context. Used by transitions and visibility checks; rule objects implement Rules::Base#evaluate.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(answers) ⇒ Evaluator

Returns a new instance of Evaluator.

Parameters:

  • answers (Hash) —

    answer context to evaluate rules against



12
13
14
# File 'lib/flowengine/evaluator.rb', line 12

def initialize(answers)
  @answers = answers
end

Instance Attribute Details

#answers ⇒ Hash (readonly)

current answer state (step_id => value)

Returns:

  • (Hash) —

    the current value of answers



8
9
10
# File 'lib/flowengine/evaluator.rb', line 8

def answers
  @answers
end

Instance Method Details

#evaluate(rule) ⇒ Boolean

Evaluates a single rule (or returns true if rule is nil).

Parameters:

Returns:

  • (Boolean) —

    result of rule#evaluate(answers), or true when rule is nil



20
21
22
23
24
# File 'lib/flowengine/evaluator.rb', line 20

def evaluate(rule)
  return true if rule.nil?

  rule.evaluate(answers)
end