Class: Undecided::Decider

Inherits:
Object
  • Object
show all
Defined in:
lib/undecided/decider.rb

Overview

Evaluate boolean expression

Instance Method Summary collapse

Instance Method Details

#decide(rule, values, strict = true) ⇒ Object

Given a boolean expression and data to replace, return result



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/undecided/decider.rb', line 7

def decide(rule, values, strict = true)
  rule = rule.clone
  values = values.clone
  error unless Undecided::Evaluator.valid?(rule, values, strict)
  # Sanitize data
  # Eval rules and values after process it, with safe data
  final_expression = Converter.replacing_variables(rule, values)
  eval final_expression
rescue => e
  puts e.message
  error
end

#errorObject

Raises:



20
21
22
# File 'lib/undecided/decider.rb', line 20

def error
  raise DeciderError, 'Wrong data to perform'
end