summaryrefslogtreecommitdiff
path: root/lib/chef/mixin/deep_merge.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/mixin/deep_merge.rb')
-rw-r--r--lib/chef/mixin/deep_merge.rb9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/chef/mixin/deep_merge.rb b/lib/chef/mixin/deep_merge.rb
index 5e3327a526..a8a4737758 100644
--- a/lib/chef/mixin/deep_merge.rb
+++ b/lib/chef/mixin/deep_merge.rb
@@ -29,6 +29,7 @@ class Chef
class InvalidSubtractiveMerge < ArgumentError; end
+
OLD_KNOCKOUT_PREFIX = "!merge:".freeze
# Regex to match the "knockout prefix" that was used to indicate
@@ -85,12 +86,8 @@ class Chef
when Hash
if dest.kind_of?(Hash)
source.each do |src_key, src_value|
- if dest.has_key? src_key
- if dest[src_key].nil?
- dest[src_key] = nil
- else
- dest[src_key] = deep_merge!(src_value, dest[src_key])
- end
+ if dest[src_key]
+ dest[src_key] = deep_merge!(src_value, dest[src_key])
else # dest[src_key] doesn't exist so we take whatever source has
raise_if_knockout_used!(src_value)
dest[src_key] = src_value