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
33
34
35
|
# File 'lib/finix/utils.rb', line 8
def indifferent_read_access(base = {})
indifferent = Hash.new do |hash, key|
hash[key.to_s] if key.is_a? Symbol
end
base.each_pair do |key, value|
if value.is_a? Hash
value = indifferent_read_access value
elsif value.respond_to? :each
if value.respond_to? :map!
value.map! do |v|
if v.is_a? Hash
v = indifferent_read_access v
end
v
end
else
value.map do |v|
if v.is_a? Hash
v = indifferent_read_access v
end
v
end
end
end
indifferent[key.to_s] = value
end
indifferent
end
|