class Swarm::ExpressionEvaluator

Attributes

expression[R]

Public Class Methods

new(expression) click to toggle source
# File lib/swarm/evaluation/expression_evaluator.rb, line 10
def initialize(expression)
  @expression = expression
end

Public Instance Methods

all_conditions_met?() click to toggle source
# File lib/swarm/evaluation/expression_evaluator.rb, line 22
def all_conditions_met?
  conditions.all? { |type, exp|
    check_condition(type, exp)
  }
end
check_condition(type, exp) click to toggle source
# File lib/swarm/evaluation/expression_evaluator.rb, line 28
def check_condition(type, exp)
  unless ["if", "unless"].include?(type)
    raise ArgumentError.new("Not a conditional")
  end
  result = eval(exp)
  type == "if" ? result : !result
end
conditions() click to toggle source
# File lib/swarm/evaluation/expression_evaluator.rb, line 36
def conditions
  Swarm::Support.slice(arguments, "if", "unless")
end
eval(string) click to toggle source
# File lib/swarm/evaluation/expression_evaluator.rb, line 18
def eval(string)
  workitem_context.instance_eval(string)
end
workitem_context() click to toggle source
# File lib/swarm/evaluation/expression_evaluator.rb, line 14
def workitem_context
  @workitem_context ||= WorkitemContext.new(workitem)
end