Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/aspera/hash_ext.rb,
lib/aspera/hash_ext.rb,
lib/aspera/hash_ext.rb

Instance Method Summary collapse

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_keysObject



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