29 lines
574 B
Ruby
29 lines
574 B
Ruby
module Producer
|
|
module Core
|
|
class Condition
|
|
class << self
|
|
def evaluate(env, &block)
|
|
dsl = DSL.new(env, &block)
|
|
return_value = dsl.evaluate
|
|
Condition.new(dsl.tests, return_value)
|
|
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.pass? }
|
|
true
|
|
end
|
|
|
|
def !
|
|
!met?
|
|
end
|
|
end
|
|
end
|
|
end
|