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'
|
require 'set'
|
||||||
|
|
||||||
class BuildEnvironment
|
class BuildEnvironment
|
||||||
|
attr_accessor :proc
|
||||||
|
|
||||||
def initialize(*settings)
|
def initialize(*settings)
|
||||||
@settings = Set.new(settings)
|
@settings = Set.new(settings)
|
||||||
@procs = Set.new
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def merge(*args)
|
def merge(*args)
|
||||||
@ -11,10 +12,7 @@ class BuildEnvironment
|
|||||||
end
|
end
|
||||||
|
|
||||||
def <<(o)
|
def <<(o)
|
||||||
case o
|
@settings << o
|
||||||
when Proc then @procs << o
|
|
||||||
else @settings << o
|
|
||||||
end
|
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -27,7 +25,7 @@ class BuildEnvironment
|
|||||||
end
|
end
|
||||||
|
|
||||||
def modify_build_environment(receiver)
|
def modify_build_environment(receiver)
|
||||||
@procs.each { |p| receiver.instance_eval(&p) }
|
receiver.instance_eval(&proc)
|
||||||
end
|
end
|
||||||
|
|
||||||
def _dump(*)
|
def _dump(*)
|
||||||
@ -43,7 +41,7 @@ module BuildEnvironmentDSL
|
|||||||
def env(*settings, &block)
|
def env(*settings, &block)
|
||||||
@env ||= BuildEnvironment.new
|
@env ||= BuildEnvironment.new
|
||||||
if block_given?
|
if block_given?
|
||||||
@env << block
|
@env.proc = block
|
||||||
else
|
else
|
||||||
@env.merge(settings)
|
@env.merge(settings)
|
||||||
end
|
end
|
||||||
|
@ -21,7 +21,7 @@ class BuildEnvironmentTests < Homebrew::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_modify_build_environment
|
def test_modify_build_environment
|
||||||
@env << Proc.new { raise StandardError }
|
@env.proc = Proc.new { raise StandardError }
|
||||||
assert_raises(StandardError) do
|
assert_raises(StandardError) do
|
||||||
@env.modify_build_environment(self)
|
@env.modify_build_environment(self)
|
||||||
end
|
end
|
||||||
@ -36,14 +36,14 @@ class BuildEnvironmentTests < Homebrew::TestCase
|
|||||||
|
|
||||||
def test_env_block
|
def test_env_block
|
||||||
foo = mock("foo")
|
foo = mock("foo")
|
||||||
@env << Proc.new { foo.some_message }
|
@env.proc = Proc.new { foo.some_message }
|
||||||
foo.expects(:some_message)
|
foo.expects(:some_message)
|
||||||
@env.modify_build_environment(self)
|
@env.modify_build_environment(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_env_block_with_argument
|
def test_env_block_with_argument
|
||||||
foo = mock("foo")
|
foo = mock("foo")
|
||||||
@env << Proc.new { |x| x.some_message }
|
@env.proc = Proc.new { |x| x.some_message }
|
||||||
foo.expects(:some_message)
|
foo.expects(:some_message)
|
||||||
@env.modify_build_environment(foo)
|
@env.modify_build_environment(foo)
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user