Class DataMapper::Mash
In: lib/dm-core/support/mash.rb
Parent: Hash

This class has dubious semantics and we only have it so that people can write params[:key] instead of params[‘key’].

Methods

[]=   convert_key   convert_value   default   delete   except   except!   fetch   key?   merge   new   stringify_keys!   symbolize_keys   to_hash   update   values_at  

External Aliases

[]= -> regular_writer

Public Class methods

Initializes a new mash.

@param [Hash, Object] constructor

  The default value for the mash. If +constructor+ is a Hash, a new mash
  will be created based on the keys of the hash and no default value will
  be set.

Public Instance methods

Sets the value associated with the specified key.

@param [Object] key The key to set. @param [Object] value The value to set the key to.

@param [Object] key The key to convert.

@param [Object]

  The converted key. If the key was a symbol, it will be converted to a
  string.

@api private

@param [Object] value The value to convert.

@return [Object]

  The converted value. A Hash or an Array of hashes, will be converted to
  their Mash equivalents.

@api private

Gets the default value for the mash.

@param [Object] key

  The default value for the mash. If +key+ is a Symbol and it is a key in
  the mash, then the default value will be set to the value matching the
  key.

@param [Object] key The key to delete from the mash.

Returns a mash that includes everything but the given keys.

@param [Array<String, Symbol>] *keys The mash keys to exclude.

@return [Mash] A new mash without the selected keys.

@example

  { :one => 1, :two => 2, :three => 3 }.except(:one)
    #=> { "two" => 2, "three" => 3 }

Removes the specified keys from the mash.

@param [Array] *keys The mash keys to exclude.

@return [Hash] hash

@example

  mash = { :one => 1, :two => 2, :three => 3 }
  mash.except!(:one, :two)
  mash # => { :three => 3 }

@param [Object] key The key to fetch. @param [Array] *extras Default value.

@return [Object] The value at key or the default value.

Determines whether the mash contains the specified key.

@param [Object] key The key to check for. @return [Boolean] True if the key exists in the mash.

@param [Hash] hash The hash to merge with the mash.

@return [Mash] A new mash with the hash values merged in.

Used to provide the same interface as Hash.

@return [Mash] This mash unchanged.

@return [Hash] The mash as a Hash with symbolized keys.

@return [Hash] The mash as a Hash with string keys.

Updates the mash with the key/value pairs from the specified hash.

@param [Hash] other_hash

  A hash to update values in the mash with. The keys and the values will be
  converted to Mash format.

@return [Mash] The updated mash.

@param [Array] *indices

  The keys to retrieve values for.

@return [Array] The values at each of the provided keys.

[Validate]