Module: Ambience::CoreExt::Hash
- Defined in:
- lib/ambience/core_ext.rb
Instance Method Summary collapse
-
#deep_merge(other_hash) ⇒ Object
Returns a new Hash with self and
other_hashmerged recursively. -
#deep_merge!(other_hash) ⇒ Object
Returns a new Hash with self and
other_hashmerged recursively.
Instance Method Details
#deep_merge(other_hash) ⇒ Object
Returns a new Hash with self and other_hash merged recursively. Implementation from ActiveSupport::CoreExtensions::Hash::DeepMerge.
7 8 9 10 11 12 13 |
# File 'lib/ambience/core_ext.rb', line 7 def deep_merge(other_hash) merge(other_hash) do |key, oldval, newval| oldval = oldval.to_hash if oldval.respond_to? :to_hash newval = newval.to_hash if newval.respond_to? :to_hash oldval.class.to_s == "Hash" && newval.class.to_s == "Hash" ? oldval.deep_merge(newval) : newval end end |
#deep_merge!(other_hash) ⇒ Object
Returns a new Hash with self and other_hash merged recursively. Modifies the receiver in place. Implementation from ActiveSupport::CoreExtensions::Hash::DeepMerge.
17 18 19 |
# File 'lib/ambience/core_ext.rb', line 17 def deep_merge!(other_hash) replace deep_merge(other_hash) end |