diff options
| author | Jack Nagel | 2013-09-13 09:51:23 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-09-13 09:57:53 -0500 |
| commit | f2ebc0e32546146f6a4773c8386b3e19df1f784e (patch) | |
| tree | 6679ae85fc5db39c4c1d93ad51e7bdce27fc5191 | |
| parent | 448ce269804afa6a8914323e07edcd0ce1d9d1c4 (diff) | |
| download | brew-f2ebc0e32546146f6a4773c8386b3e19df1f784e.tar.bz2 | |
Stop mutating dependency specifications
| -rw-r--r-- | Library/Homebrew/dependency_collector.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_dependency_collector.rb | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index 378e12cbb..8d0aac452 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -40,7 +40,7 @@ class DependencyCollector def build(spec) spec, tags = case spec - when Hash then spec.shift + when Hash then destructure_spec_hash(spec) else spec end @@ -49,6 +49,10 @@ class DependencyCollector private + def destructure_spec_hash(spec) + spec.each { |o| return o } + end + def parse_spec(spec, tags) case spec when String diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb index dafc83da0..f12fef797 100644 --- a/Library/Homebrew/test/test_dependency_collector.rb +++ b/Library/Homebrew/test/test_dependency_collector.rb @@ -128,4 +128,11 @@ class DependencyCollectorTests < Test::Unit::TestCase def test_raises_typeerror_for_unknown_types assert_raises(TypeError) { @d.add(Object.new) } end + + def test_does_not_mutate_dependency_spec + spec = { 'foo' => :optional } + copy = spec.dup + @d.add(spec) + assert_equal copy, spec + end end |
