From 879ec967437d76d9b32bbe90d70384874bafbd59 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 7 Jul 2014 17:34:30 -0500 Subject: [PATCH] Only store one proc per BuildEnvironment instance --- Library/Homebrew/build_environment.rb | 12 +++++------- Library/Homebrew/test/test_build_environment.rb | 6 +++--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/build_environment.rb b/Library/Homebrew/build_environment.rb index d46e4bfb23..c7cb7bc0e5 100644 --- a/Library/Homebrew/build_environment.rb +++ b/Library/Homebrew/build_environment.rb @@ -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 diff --git a/Library/Homebrew/test/test_build_environment.rb b/Library/Homebrew/test/test_build_environment.rb index c2da6d215a..9e148a7bc5 100644 --- a/Library/Homebrew/test/test_build_environment.rb +++ b/Library/Homebrew/test/test_build_environment.rb @@ -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