Module: Fusu::Hash::ReverseMerge

Included in:
Fusu::Hash
Defined in:
lib/fusu/hash/reverse_merge.rb

Instance Method Summary collapse

Instance Method Details

#reverse_merge(hash, other_hash) ⇒ Object

Merges the caller into other_hash. For example,

options = Fusu::Hash.reverse_merge(options, {size: 25, velocity: 10})

is equivalent to

options = { size: 25, velocity: 10 }.merge(options)

This is particularly useful for initializing an options hash with default values.



14
15
16
# File 'lib/fusu/hash/reverse_merge.rb', line 14

def reverse_merge(hash, other_hash)
  other_hash.merge(hash)
end

#reverse_merge!(hash, other_hash) ⇒ Object Also known as: reverse_update

Destructive reverse_merge.



19
20
21
22
# File 'lib/fusu/hash/reverse_merge.rb', line 19

def reverse_merge!(hash, other_hash)
  # right wins if there is no left
  hash.merge!( other_hash ){|key,left,right| left }
end