class Undecided::Decider

Evaluate boolean expression

Public Instance Methods

decide(rule, values, strict = true) click to toggle source

Given a boolean expression and data to replace, return result

# 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
error() click to toggle source
# File lib/undecided/decider.rb, line 20
def error
  raise DeciderError, 'Wrong data to perform'
end