class Hash

Public Instance Methods

reverse_merge!(other_hash) click to toggle source
# File lib/rhc/core_ext.rb, line 193
def reverse_merge!(other_hash)
  # right wins if there is no left
  merge!( other_hash ){|key,left,right| left }
end
slice(*args) click to toggle source
# File lib/rhc/core_ext.rb, line 187
def slice(*args)
  args.inject({}) do |h, k|
    h[k] = self[k] if has_key?(k)
    h
  end
end
slice!(*args) click to toggle source
# File lib/rhc/core_ext.rb, line 180
def slice!(*args)
  s = []
  args.inject([]) do |a, k|
    s << [k, delete(k)] if has_key?(k)
  end
  s
end
stringify_keys!() click to toggle source
# File lib/rhc/core_ext.rb, line 174
def stringify_keys!
  transform_keys!(:to_s)
end
symbolize_keys!() click to toggle source
# File lib/rhc/core_ext.rb, line 177
def symbolize_keys!
  transform_keys!(:to_sym)
end

Protected Instance Methods

transform_keys!(operation) click to toggle source
# File lib/rhc/core_ext.rb, line 198
def transform_keys!(operation)
  keys.each do |key|
    v = delete(key)
    if v.is_a? Hash
      v.transform_keys!(operation)
    elsif v.is_a? Array
      v.each{ |value| value.transform_keys!(operation) if value.is_a? Hash }
    end
    self[(key.send(operation) rescue key) || key] = v
  end
  self
end