Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/core_ext/hash/deep_merge.rb,
lib/core_ext/hash/symbolize_keys.rb,
lib/core_ext/hash/deep_stringify_keys.rb

Instance Method Summary collapse

Instance Method Details

#deep_merge(other) ⇒ Object



2
3
4
5
# File 'lib/core_ext/hash/deep_merge.rb', line 2

def deep_merge(other)
  merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : (v2 || v1) }
  merge(other, &merger)
end

#deep_stringify_keysObject



2
3
4
5
6
7
8
9
# File 'lib/core_ext/hash/deep_stringify_keys.rb', line 2

def deep_stringify_keys
  inject({}) { |result, (key, value)|
    value = value.deep_stringify_keys if value.is_a?(Hash)
    key = key.to_s if key.is_a?(Symbol)
    result[key] = value
    result
  }
end

#symbolize_keysObject



2
3
4
5
6
7
8
# File 'lib/core_ext/hash/symbolize_keys.rb', line 2

def symbolize_keys
  inject({}) { |result, (key, value)|
    key = key.to_sym if key.respond_to?(:to_sym)
    result[key] = value
    result
  }
end