Class: Hash
- Inherits:
-
Object
show all
- Defined in:
- lib/app/config/deeply.rb,
lib/app/config/deeply.rb,
lib/app/config/deeply.rb,
lib/app/config/deeply.rb,
lib/app/config/deeply.rb
Overview
Instance Method Summary
collapse
Instance Method Details
#deeply_dup ⇒ Object
163
164
165
166
167
168
169
170
171
172
173
174
|
# File 'lib/app/config/deeply.rb', line 163
def deeply_dup
self.each_with_object({}) do |(key, obj), hash|
case obj
when NilClass
hash[key] = nil
when Array, Hash
hash[key] = obj.deeply_dup
else
hash[key] = obj.dup
end
end
end
|
#deeply_map(&block) ⇒ Object
118
119
120
121
122
|
# File 'lib/app/config/deeply.rb', line 118
def deeply_map( &block )
temp = self.deeply_dup
temp.deeply_map!( &block )
temp
end
|
#deeply_map!(&block) ⇒ Object
124
125
126
127
128
129
130
131
132
133
134
135
|
# File 'lib/app/config/deeply.rb', line 124
def deeply_map!( &block )
self.each do |key, obj|
case obj
when NilClass
self[key] = nil
when Array, Hash
self[key].deeply_map!( &block )
else
self[key] = block.call( obj )
end
end
end
|
#deeply_merge(hash) ⇒ Object
89
90
91
92
93
94
95
|
# File 'lib/app/config/deeply.rb', line 89
def deeply_merge( hash )
raise ArgumentError( "type invalid. : %s" % hash ) unless hash.is_a? Hash
temp = self.deeply_dup
temp.deeply_merge!( hash )
temp
end
|
#deeply_merge!(hash) ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/app/config/deeply.rb', line 97
def deeply_merge!( hash )
raise ArgumentError( "type invalid. : %s" % hash ) unless hash.is_a? Hash
hash.each do |key, obj|
case obj
when NilClass
self[key] = nil
when Hash
self[key] = {} if self[key].nil?
self[key].deeply_merge!(obj)
else
self[key] = obj.dup
end
end
end
|
#deeply_stringify_keys ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/app/config/deeply.rb', line 53
def deeply_stringify_keys
self.each_with_object({}) do |(key, obj), hash|
k = key.to_s
case obj
when Array, Hash
hash[k] = obj.deeply_stringify_keys
else
hash[k] = obj
end
end
end
|
#deeply_stringify_keys! ⇒ Object
47
48
49
50
51
|
# File 'lib/app/config/deeply.rb', line 47
def deeply_stringify_keys!
temp = self.deeply_stringify_keys
self.clear
self.merge!( temp )
end
|
#deeply_symbolize_keys ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/app/config/deeply.rb', line 11
def deeply_symbolize_keys
self.each_with_object({}) do |(key, obj), hash|
k = key.to_s.to_sym
case obj
when Array, Hash
hash[k] = obj.deeply_symbolize_keys
else
hash[k] = obj
end
end
end
|
#deeply_symbolize_keys! ⇒ Object
5
6
7
8
9
|
# File 'lib/app/config/deeply.rb', line 5
def deeply_symbolize_keys!
temp = self.deeply_symbolize_keys
self.clear
self.merge!( temp )
end
|