Module: ActiveSupport::CoreExtensions::Hash::ReverseMerge
- Included in:
- Hash
- Defined in:
- lib/active_support/core_ext/hash/reverse_merge.rb
Overview
Allows for reverse merging where its the keys in the calling hash that wins over those in the other_hash
. This is particularly useful for initializing an incoming option hash with default values:
def setup( = {})
.reverse_merge! :size => 25, :velocity => 10
end
The default :size
and :velocity
is only set if the options
passed in doesn’t already have those keys set.
Instance Method Summary collapse
-
#reverse_merge(other_hash) ⇒ Object
Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second.
-
#reverse_merge!(other_hash) ⇒ Object
(also: #reverse_update)
Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second.
Instance Method Details
#reverse_merge(other_hash) ⇒ Object
Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second.
14 15 16 |
# File 'lib/active_support/core_ext/hash/reverse_merge.rb', line 14 def reverse_merge(other_hash) other_hash.merge(self) end |
#reverse_merge!(other_hash) ⇒ Object Also known as: reverse_update
Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second. Modifies the receiver in place.
20 21 22 |
# File 'lib/active_support/core_ext/hash/reverse_merge.rb', line 20 def reverse_merge!(other_hash) replace(reverse_merge(other_hash)) end |