Sha256: da2fa678b674d22117a58e243550c55a0c480b12835da44c509569c3fdec7434

Contents?: true

Size: 644 Bytes

Versions: 4

Compression:

Stored size: 644 Bytes

Contents

class Hash

  # Allows for reverse merging where its the keys in the calling hash that wins over those in the <tt>other_hash</tt>.
  # This is particularly useful for initializing an incoming option hash with default values:
  #
  #   def setup(options = {})
  #     options.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.

  def reverse_merge(other_hash)
    other_hash.merge(self)
  end

  def reverse_merge!(other_hash)
    replace(reverse_merge(other_hash))
  end

  alias_method :reverse_update, :reverse_merge!
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
facets-1.7.0 lib/facets/core/hash/reverse_merge.rb
facets-1.7.30 lib/facets/core/hash/reverse_merge.rb
facets-1.7.38 lib/facets/core/hash/reverse_merge.rb
facets-1.7.46 lib/facets/core/hash/reverse_merge.rb