Class: Hash
- Inherits:
 - 
      Object
      
        
- Object
 - Hash
 
 
- Defined in:
 - lib/aspera/hash_ext.rb,
lib/aspera/hash_ext.rb,
lib/aspera/hash_ext.rb,
lib/aspera/hash_ext.rb 
Instance Method Summary collapse
- #deep_do(memory = nil, &block) ⇒ Object
 - #deep_merge(second) ⇒ Object
 - #deep_merge!(second) ⇒ Object
 - #stringify_keys ⇒ Object
 - #symbolize_keys ⇒ Object
 - #transform_keys ⇒ Object
 
Instance Method Details
#deep_do(memory = nil, &block) ⇒ Object
      12 13 14 15 16 17 18 19 20  | 
    
      # File 'lib/aspera/hash_ext.rb', line 12 def deep_do(memory=nil, &block) each do |key, value| if value.is_a?(Hash) value.deep_do(memory, &block) else yield(self, key, value, memory) end end end  | 
  
#deep_merge(second) ⇒ Object
      4 5 6  | 
    
      # File 'lib/aspera/hash_ext.rb', line 4 def deep_merge(second) merge(second){|_key, v1, v2|v1.is_a?(Hash) && v2.is_a?(Hash) ? v1.deep_merge(v2) : v2} end  | 
  
#deep_merge!(second) ⇒ Object
      8 9 10  | 
    
      # File 'lib/aspera/hash_ext.rb', line 8 def deep_merge!(second) merge!(second){|_key, v1, v2|v1.is_a?(Hash) && v2.is_a?(Hash) ? v1.deep_merge!(v2) : v2} end  | 
  
#stringify_keys ⇒ Object
      45 46 47  | 
    
      # File 'lib/aspera/hash_ext.rb', line 45 def stringify_keys return transform_keys(&:to_s) end  | 
  
#symbolize_keys ⇒ Object
      36 37 38  | 
    
      # File 'lib/aspera/hash_ext.rb', line 36 def symbolize_keys return transform_keys(&:to_sym) end  | 
  
#transform_keys ⇒ Object
      26 27 28 29  | 
    
      # File 'lib/aspera/hash_ext.rb', line 26 def transform_keys raise 'missing block' unless block_given? return each_with_object({}){|(k, v), memo|memo[yield(k)] = v} end  |