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 :size and :velocity are only set if the options hash passed in doesn‘t already have the respective key.

Methods
Public Instance 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
21:         def reverse_merge(other_hash)
22:           other_hash.merge(self)
23:         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.

This method is also aliased as reverse_update
    # File activesupport/lib/active_support/core_ext/hash/reverse_merge.rb, line 27
27:         def reverse_merge!(other_hash)
28:           replace(reverse_merge(other_hash))
29:         end
reverse_update(other_hash)

Alias for reverse_merge!