From 0baac3bf5faa391d0748dccf6b424bfac05c6801 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 25 Feb 2013 14:01:02 -0600 Subject: [PATCH] BuildEnvironment: use separate sets for procs and symbols --- Library/Homebrew/build_environment.rb | 11 +++++++---- Library/Homebrew/test/test_build_environment.rb | 6 ++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/build_environment.rb b/Library/Homebrew/build_environment.rb index 60e09997732e..c10c9fb1c45b 100644 --- a/Library/Homebrew/build_environment.rb +++ b/Library/Homebrew/build_environment.rb @@ -3,10 +3,14 @@ class BuildEnvironment def initialize(*settings) @settings = Set.new(settings) + @procs = Set.new end def <<(o) - @settings << o + case o + when Proc then @procs << o + else @settings << o + end self end @@ -19,12 +23,11 @@ def userpaths? end def modify_build_environment(context=nil) - p = @settings.find { |s| Proc === s } - ENV.instance_exec(context, &p) unless p.nil? + @procs.each { |p| ENV.instance_exec(context, &p) } end def _dump(*) - @settings.dup.reject { |s| Proc === s }.join(":") + @settings.to_a.join(":") end def self._load(s) diff --git a/Library/Homebrew/test/test_build_environment.rb b/Library/Homebrew/test/test_build_environment.rb index 6710662b56b2..31d3cb1cb8a5 100644 --- a/Library/Homebrew/test/test_build_environment.rb +++ b/Library/Homebrew/test/test_build_environment.rb @@ -21,8 +21,10 @@ def test_userpaths? end def test_modify_build_environment - @env << Proc.new { 1 } - assert_equal 1, @env.modify_build_environment + @env << Proc.new { raise StandardError } + assert_raises(StandardError) do + @env.modify_build_environment + end end def test_marshal