Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/aspera/hash_ext.rb,
lib/aspera/hash_ext.rb,
lib/aspera/hash_ext.rb
Instance Method Summary collapse
- #deep_merge(second) ⇒ Object
- #deep_merge!(second) ⇒ Object
- #dig(*path) ⇒ Object
- #symbolize_keys ⇒ Object
Instance Method Details
#deep_merge(second) ⇒ Object
13 14 15 |
# File 'lib/aspera/hash_ext.rb', line 13 def deep_merge(second) self.merge(second){|key,v1,v2|Hash===v1&&Hash===v2 ? v1.deep_merge(v2) : v2} end |
#deep_merge!(second) ⇒ Object
17 18 19 |
# File 'lib/aspera/hash_ext.rb', line 17 def deep_merge!(second) self.merge!(second){|key,v1,v2|Hash===v1&&Hash===v2 ? v1.deep_merge!(v2) : v2} end |
#dig(*path) ⇒ Object
4 5 6 7 8 |
# File 'lib/aspera/hash_ext.rb', line 4 def dig(*path) path.inject(self) do |location, key| location.respond_to?(:keys) ? location[key] : nil end end |
#symbolize_keys ⇒ Object
24 25 26 |
# File 'lib/aspera/hash_ext.rb', line 24 def symbolize_keys return self.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo} end |