Resource: do not mutate passed-in specs hash
This commit is contained in:
parent
40c0ed8a9a
commit
167017f89a
@ -99,8 +99,8 @@ class Resource
|
|||||||
def url val=nil, specs={}
|
def url val=nil, specs={}
|
||||||
return @url if val.nil?
|
return @url if val.nil?
|
||||||
@url = val
|
@url = val
|
||||||
@using = specs.delete(:using)
|
|
||||||
@specs.merge!(specs)
|
@specs.merge!(specs)
|
||||||
|
@using = @specs.delete(:using)
|
||||||
end
|
end
|
||||||
|
|
||||||
def version val=nil
|
def version val=nil
|
||||||
|
|||||||
@ -40,6 +40,14 @@ class ResourceTests < Test::Unit::TestCase
|
|||||||
assert_equal GitDownloadStrategy, @resource.download_strategy
|
assert_equal GitDownloadStrategy, @resource.download_strategy
|
||||||
end
|
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
|
def test_version
|
||||||
@resource.version('1.0')
|
@resource.version('1.0')
|
||||||
assert_version_equal '1.0', @resource.version
|
assert_version_equal '1.0', @resource.version
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user