diff options
| author | Jack Nagel | 2013-02-25 14:01:02 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-02-25 14:01:02 -0600 |
| commit | 0baac3bf5faa391d0748dccf6b424bfac05c6801 (patch) | |
| tree | 5ab513cc618c78851c852483c8f06a3c7c654bda /Library | |
| parent | fc9a869edb7da16b44cc48a158f1740b694e7b0a (diff) | |
| download | homebrew-0baac3bf5faa391d0748dccf6b424bfac05c6801.tar.bz2 | |
BuildEnvironment: use separate sets for procs and symbols
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/build_environment.rb | 11 | ||||
| -rw-r--r-- | 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 60e099977..c10c9fb1c 100644 --- a/Library/Homebrew/build_environment.rb +++ b/Library/Homebrew/build_environment.rb @@ -3,10 +3,14 @@ require 'set' 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 @@ class BuildEnvironment 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 6710662b5..31d3cb1cb 100644 --- a/Library/Homebrew/test/test_build_environment.rb +++ b/Library/Homebrew/test/test_build_environment.rb @@ -21,8 +21,10 @@ class BuildEnvironmentTests < Test::Unit::TestCase 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 |
