Module: HashAddOn

Defined in:
lib/hash_add_on.rb,
lib/utils/hash_add_on.rb

Class Method Summary collapse

Class Method Details

.symbolize_keys_recursive_for_hash(hash, downcase) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/hash_add_on.rb', line 2

def self.symbolize_keys_recursive_for_hash(hash, downcase)
  if hash.is_a? Hash
    sym_hash = {}
    
    hash.each{|key, value| 
      if (downcase)
        if (key.is_a? String)
          down_key = key.downcase
        else 
          down_key = key.to_s.downcase
        end
      else
        down_key = key
      end
      sym_hash[down_key.to_sym] = value
    }
    
    sym_hash.keys.each{|key|
      if (sym_hash[key].is_a? Hash or sym_hash[key].is_a? Array)
        sym_hash[key] = self.symbolize_keys_recursive_for_hash(sym_hash[key], downcase)
      end
      }
    return sym_hash  
  elsif hash.is_a? Array
    hash = hash.collect{|val| self.symbolize_keys_recursive_for_hash(val, downcase)}
    return hash
  else
    return hash
  end
  
end