class Kafo::Condition
Constants
- VARIABLE_RE
Public Class Methods
new(expression, context = [])
click to toggle source
# File lib/kafo/condition.rb, line 6 def initialize(expression, context = []) @expression = expression @context = context end
Public Instance Methods
evaluate()
click to toggle source
# File lib/kafo/condition.rb, line 11 def evaluate !!eval(substitute(@expression)) end
Private Instance Methods
substitute(expression)
click to toggle source
# File lib/kafo/condition.rb, line 17 def substitute(expression) expression.gsub(VARIABLE_RE) do |variable| param = @context.detect { |p| p.name == $1.tr('$','') } raise ConditionError, "can't substitute #{$1}, unknown parameter with such name" if param.nil? variable.gsub!($1, param.condition_value) end end