2014-06-03 16:27:59 +00:00

31 lines
628 B
Ruby

module Producer
module Core
class Condition
class << self
def evaluate(env, *args, &block)
dsl = DSL.new(env, &block)
return_value = dsl.evaluate *args
Condition.new(dsl.tests, return_value)
end
end
attr_reader :tests, :return_value
def initialize(tests, return_value = nil)
@tests = tests
@return_value = return_value
end
def met?
return !!@return_value if @tests.empty?
@tests.each { |t| return false unless t.pass? }
true
end
def !
!met?
end
end
end
end