Thibault Jouan ed99c191e0 Build conditions with DSL evaluated tests:
In Condition:

  * Modify constructor to accepts tests and a default return value;
  * Implement #met?;
  * Modify #! so that it return the negated value returned by #met?.

  In Condition::DSL:

  * Modify .evaluate to build the condition with tests and the value
    returned by a the evaluated condition block.

  Add a basic Test base class, with env and arguments as attributes.

  Add some spec helpers to build some easily testable kind of Test
instances (as test doubles).
2013-08-18 00:29:36 +00:00

27 lines
489 B
Ruby

module Producer
module Core
class Condition
class << self
def evaluate(env, &block)
DSL.evaluate(env, &block)
end
end
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.success? }
true
end
def !
!met?
end
end
end
end