Class: Inquirex::Evaluator

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

Overview

Evaluates rule AST nodes against a given answer context. 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/inquirex/evaluator.rb', line 12

def initialize(answers)
  @answers = answers
end

Instance Attribute Details

#answersHash (readonly)

current answer state (step_id => value)

Returns:

  • (Hash)

    the current value of answers



8
9
10
# File 'lib/inquirex/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)


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

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

  rule.evaluate(@answers)
end