diff options
author | danielsdeleo <dan@getchef.com> | 2014-03-24 17:18:48 -0700 |
---|---|---|
committer | danielsdeleo <dan@getchef.com> | 2014-03-24 17:22:07 -0700 |
commit | 4a7d3c1a7c2567765fcde8c7bcf14cad5c38839c (patch) | |
tree | cc4899a2644875f87a6dcb3127c1d6b2e7b1dc0a | |
parent | e93949748e68ac3fdec27dae36376ae03e5fb4ba (diff) | |
download | chef-4a7d3c1a7c2567765fcde8c7bcf14cad5c38839c.tar.gz |
Use safe_dup for DeepMerge#deep_merge to avoid TypeError
-rw-r--r-- | lib/chef/mixin/deep_merge.rb | 2 | ||||
-rw-r--r-- | spec/unit/mixin/deep_merge_spec.rb | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/chef/mixin/deep_merge.rb b/lib/chef/mixin/deep_merge.rb index 9cddcbaed6..a8a4737758 100644 --- a/lib/chef/mixin/deep_merge.rb +++ b/lib/chef/mixin/deep_merge.rb @@ -168,7 +168,7 @@ class Chef end def deep_merge(source, dest) - deep_merge!(source.dup, dest.dup) + deep_merge!(safe_dup(source), safe_dup(dest)) end end diff --git a/spec/unit/mixin/deep_merge_spec.rb b/spec/unit/mixin/deep_merge_spec.rb index a42b885283..76f5c68a29 100644 --- a/spec/unit/mixin/deep_merge_spec.rb +++ b/spec/unit/mixin/deep_merge_spec.rb @@ -284,6 +284,10 @@ describe Chef::Mixin::DeepMerge do ret.should == {"property" => ["1","2","3","4","5","6"]} end + it "should not error merging un-dupable objects" do + @dm.deep_merge(nil, 4) + end + end describe "role_merge" do |