mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Only store one proc per BuildEnvironment instance
This commit is contained in:
parent
9e7f5dc261
commit
879ec96743
@ -1,9 +1,10 @@
|
||||
require 'set'
|
||||
|
||||
class BuildEnvironment
|
||||
attr_accessor :proc
|
||||
|
||||
def initialize(*settings)
|
||||
@settings = Set.new(settings)
|
||||
@procs = Set.new
|
||||
end
|
||||
|
||||
def merge(*args)
|
||||
@ -11,10 +12,7 @@ class BuildEnvironment
|
||||
end
|
||||
|
||||
def <<(o)
|
||||
case o
|
||||
when Proc then @procs << o
|
||||
else @settings << o
|
||||
end
|
||||
@settings << o
|
||||
self
|
||||
end
|
||||
|
||||
@ -27,7 +25,7 @@ class BuildEnvironment
|
||||
end
|
||||
|
||||
def modify_build_environment(receiver)
|
||||
@procs.each { |p| receiver.instance_eval(&p) }
|
||||
receiver.instance_eval(&proc)
|
||||
end
|
||||
|
||||
def _dump(*)
|
||||
@ -43,7 +41,7 @@ module BuildEnvironmentDSL
|
||||
def env(*settings, &block)
|
||||
@env ||= BuildEnvironment.new
|
||||
if block_given?
|
||||
@env << block
|
||||
@env.proc = block
|
||||
else
|
||||
@env.merge(settings)
|
||||
end
|
||||
|
@ -21,7 +21,7 @@ class BuildEnvironmentTests < Homebrew::TestCase
|
||||
end
|
||||
|
||||
def test_modify_build_environment
|
||||
@env << Proc.new { raise StandardError }
|
||||
@env.proc = Proc.new { raise StandardError }
|
||||
assert_raises(StandardError) do
|
||||
@env.modify_build_environment(self)
|
||||
end
|
||||
@ -36,14 +36,14 @@ class BuildEnvironmentTests < Homebrew::TestCase
|
||||
|
||||
def test_env_block
|
||||
foo = mock("foo")
|
||||
@env << Proc.new { foo.some_message }
|
||||
@env.proc = Proc.new { foo.some_message }
|
||||
foo.expects(:some_message)
|
||||
@env.modify_build_environment(self)
|
||||
end
|
||||
|
||||
def test_env_block_with_argument
|
||||
foo = mock("foo")
|
||||
@env << Proc.new { |x| x.some_message }
|
||||
@env.proc = Proc.new { |x| x.some_message }
|
||||
foo.expects(:some_message)
|
||||
@env.modify_build_environment(foo)
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user