summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanielsdeleo <dan@getchef.com>2014-03-24 17:18:48 -0700
committerdanielsdeleo <dan@getchef.com>2014-03-24 17:22:07 -0700
commit4a7d3c1a7c2567765fcde8c7bcf14cad5c38839c (patch)
treecc4899a2644875f87a6dcb3127c1d6b2e7b1dc0a
parente93949748e68ac3fdec27dae36376ae03e5fb4ba (diff)
downloadchef-4a7d3c1a7c2567765fcde8c7bcf14cad5c38839c.tar.gz
Use safe_dup for DeepMerge#deep_merge to avoid TypeError
-rw-r--r--lib/chef/mixin/deep_merge.rb2
-rw-r--r--spec/unit/mixin/deep_merge_spec.rb4
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