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(options = {})
  options.reverse_merge! :size => 25, :velocity => 10
end

Using merge, the above example would look as follows:

def setup(options = {})
  { :size => 25, :velocity => 10 }.merge(options)
end

The default :sizeand :velocityare only set if the optionshash passed in doesn't already have the respective key.

Methods
R
Instance Public methods
reverse_merge(other_hash)

Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second.

# File activesupport/lib/active_support/core_ext/hash/reverse_merge.rb, line 21
def reverse_merge(other_hash)
  other_hash.merge(self)
end
reverse_merge!(other_hash)

Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second. Modifies the receiver in place.

Also aliased as: reverse_update
# File activesupport/lib/active_support/core_ext/hash/reverse_merge.rb, line 27
def reverse_merge!(other_hash)
  replace(reverse_merge(other_hash))
end
reverse_update(other_hash)