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
|