diff options
| author | Jack Nagel | 2013-02-25 14:01:02 -0600 | 
|---|---|---|
| committer | Jack Nagel | 2013-02-25 14:01:02 -0600 | 
| commit | aca48deda0f7bbb9831291dbf47ed3c8e4ae2b9c (patch) | |
| tree | cdc7d47a04f1cb1e3c0694c0297ddb1a0c9b2f70 /Library | |
| parent | 6b96102fad11bc627cebc0c3e937e28971c4678c (diff) | |
| download | brew-aca48deda0f7bbb9831291dbf47ed3c8e4ae2b9c.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  | 
