requirement: call satisfied? from modify_build_environment.

This commit is contained in:
Mike McQuaid 2018-01-23 11:26:00 +00:00
parent 7879272689
commit 46633af76a

View File

@ -51,9 +51,10 @@ class Requirement
# Overriding #satisfied? is deprecated. # Overriding #satisfied? is deprecated.
# Pass a block or boolean to the satisfy DSL method instead. # Pass a block or boolean to the satisfy DSL method instead.
def satisfied? def satisfied?
result = self.class.satisfy.yielder { |p| instance_eval(&p) } satisfy = self.class.satisfy
@satisfied_result = result return true unless satisfy
return false unless result @satisfied_result = satisfy.yielder { |p| instance_eval(&p) }
return false unless @satisfied_result
true true
end end
@ -74,9 +75,8 @@ class Requirement
# Overriding #modify_build_environment is deprecated. # Overriding #modify_build_environment is deprecated.
# Pass a block to the env DSL method instead. # Pass a block to the env DSL method instead.
# Note: #satisfied? should be called before invoking this method
# as the env modifications may depend on its side effects.
def modify_build_environment def modify_build_environment
satisfied?
instance_eval(&env_proc) if env_proc instance_eval(&env_proc) if env_proc
# XXX If the satisfy block returns a Pathname, then make sure that it # XXX If the satisfy block returns a Pathname, then make sure that it