class Hash

Public Instance Methods

deep_dup() click to toggle source

Returns a deep copy of hash.

# File lib/riak/core_ext/deep_dup.rb, line 4
def deep_dup
  duplicate = self.dup
  duplicate.each_pair do |k, v|
    tv = duplicate[k]
    duplicate[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_dup : v
  end
  duplicate
end
slice(*keys) click to toggle source
# File lib/riak/core_ext/slice.rb, line 3
def slice(*keys)
  allowed = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys)
  hash = {}
  allowed.each { |k| hash[k] = self[k] if has_key?(k) }
  hash
end
slice!(*keys) click to toggle source
# File lib/riak/core_ext/slice.rb, line 10
def slice!(*keys)
  keys = keys.map! { |key| convert_key(key) } if respond_to?(:convert_key)
  omit = slice(*self.keys - keys)
  hash = slice(*keys)
  replace(hash)
  omit
end
stringify_keys() click to toggle source
# File lib/riak/core_ext/stringify_keys.rb, line 3
def stringify_keys
  inject({}) do |hash, pair|
    hash[pair[0].to_s] = pair[1]
    hash
  end
end
symbolize_keys() click to toggle source
# File lib/riak/core_ext/symbolize_keys.rb, line 3
def symbolize_keys
  inject({}) do |hash, pair|
    hash[pair[0].to_sym] = pair[1]
    hash
  end
end
to_param(namespace = nil) click to toggle source
# File lib/riak/core_ext/to_param.rb, line 25
def to_param(namespace = nil)
  collect do |key, value|
    value.to_query(namespace ? "#{namespace}[#{key}]" : key)
  end.sort * '&'
end