diff options
| author | Jack Nagel | 2013-10-11 20:21:41 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-10-11 20:21:41 -0500 |
| commit | 167017f89aaab05943d69ff127854bd52ca3455f (patch) | |
| tree | aa5c590bb04582b8fd11e1d5f1e26f25a80e8891 /Library | |
| parent | 40c0ed8a9a2c7355da6cf880b0d541afa8a2b60c (diff) | |
| download | brew-167017f89aaab05943d69ff127854bd52ca3455f.tar.bz2 | |
Resource: do not mutate passed-in specs hash
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/resource.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_resource.rb | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/Library/Homebrew/resource.rb b/Library/Homebrew/resource.rb index 922fbfa59..c7d73ffa7 100644 --- a/Library/Homebrew/resource.rb +++ b/Library/Homebrew/resource.rb @@ -99,8 +99,8 @@ class Resource def url val=nil, specs={} return @url if val.nil? @url = val - @using = specs.delete(:using) @specs.merge!(specs) + @using = @specs.delete(:using) end def version val=nil diff --git a/Library/Homebrew/test/test_resource.rb b/Library/Homebrew/test/test_resource.rb index a649ad142..50ebd4c0f 100644 --- a/Library/Homebrew/test/test_resource.rb +++ b/Library/Homebrew/test/test_resource.rb @@ -40,6 +40,14 @@ class ResourceTests < Test::Unit::TestCase assert_equal GitDownloadStrategy, @resource.download_strategy end + def test_does_not_mutate_specs_hash + specs = { :using => :git, :branch => 'master' } + @resource.url('foo', specs) + assert_equal({ :branch => 'master' }, @resource.specs) + assert_equal(:git, @resource.using) + assert_equal({ :using => :git, :branch => 'master' }, specs) + end + def test_version @resource.version('1.0') assert_version_equal '1.0', @resource.version |
