lib/refinements/hashes.rb in refinements-5.0.2 vs lib/refinements/hashes.rb in refinements-5.1.0

- old
+ new

@@ -15,32 +15,27 @@ def symbolize_keys dup.symbolize_keys! end - # rubocop:disable Performance/HashEachMethods def symbolize_keys! keys.each { |key| self[key.to_sym] = delete key } self end - # rubocop:enable Performance/HashEachMethods def deep_merge other dup.deep_merge! other end + # :reek:FeatureEnvy def deep_merge! other - other.each do |(other_key, other_value)| - current_value = self[other_key] - - self[other_key] = if current_value.is_a?(Hash) && other_value.is_a?(Hash) - current_value.deep_merge! other_value - else - other_value - end + merge! other do |_key, this_value, other_value| + if this_value.is_a?(Hash) && other_value.is_a?(Hash) + this_value.deep_merge other_value + else + other_value + end end - - self end def reverse_merge other other.merge self end