Module: Gorillib::Hashlike::ReverseMerge
- Included in:
- Hash
- Defined in:
- lib/gorillib/hashlike/reverse_merge.rb
Instance Method Summary collapse
-
#reverse_merge(other_hash) ⇒ Object
Allows for reverse merging two hashes where the keys in the calling hash take precedence over those in the
other_hash
. -
#reverse_merge!(other_hash) ⇒ Object
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
Allows for reverse merging two hashes where the keys in the calling hash take precedence over those in the other_hash
. This is particularly useful for initializing an option hash with default values:
def setup( = {})
.reverse_merge! :size => 25, :velocity => 10
end
Using merge
, the above example would look as follows:
def setup( = {})
{ :size => 25, :velocity => 10 }.merge()
end
The default :size
and :velocity
are only set if the options
hash passed in doesn’t already have the respective key.
19 20 21 |
# File 'lib/gorillib/hashlike/reverse_merge.rb', line 19 def reverse_merge(other_hash) other_hash.merge(self) end |
#reverse_merge!(other_hash) ⇒ Object
Performs the opposite of merge
, with the keys and values from the first hash taking precedence over the second. Modifies the receiver in place.
25 26 27 |
# File 'lib/gorillib/hashlike/reverse_merge.rb', line 25 def reverse_merge!(other_hash) merge!( other_hash ){|k,o,n| o } end |