Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/the_role_api/hash.rb
Overview
load ‘the_role/hash.rb’ - UPDATE, BUT NOT RELOAD [for console testing]
Instance Method Summary collapse
- #deep_reset(default = nil) ⇒ Object
- #deep_reset!(default = nil) ⇒ Object
- #deep_stringify_keys ⇒ Object
- #deep_stringify_keys! ⇒ Object
- #deep_transform_keys(&block) ⇒ Object
- #deep_transform_keys!(&block) ⇒ Object
- #underscorify_keys ⇒ Object
- #underscorify_keys! ⇒ Object
Instance Method Details
#deep_reset(default = nil) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/the_role_api/hash.rb', line 48 def deep_reset(default = nil) hash = dup hash.each do |key, value| hash[key] = hash[key].is_a?(Hash) ? hash[key].deep_reset(default) : default end hash end |
#deep_reset!(default = nil) ⇒ Object
56 57 58 |
# File 'lib/the_role_api/hash.rb', line 56 def deep_reset!(default = nil) replace deep_reset(default) end |
#deep_stringify_keys ⇒ Object
28 29 30 |
# File 'lib/the_role_api/hash.rb', line 28 def deep_stringify_keys deep_transform_keys{ |key| key.to_s } end |
#deep_stringify_keys! ⇒ Object
32 33 34 |
# File 'lib/the_role_api/hash.rb', line 32 def deep_stringify_keys! deep_transform_keys!{ |key| key.to_s } end |
#deep_transform_keys(&block) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/the_role_api/hash.rb', line 10 def deep_transform_keys(&block) result = {} each do |key, value| result[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys(&block) : value end result end |
#deep_transform_keys!(&block) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/the_role_api/hash.rb', line 18 def deep_transform_keys!(&block) keys.each do |key| value = delete(key) self[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys!(&block) : value end self end |
#underscorify_keys ⇒ Object
38 39 40 |
# File 'lib/the_role_api/hash.rb', line 38 def underscorify_keys deep_transform_keys{ |key| key.to_slug_param(sep: '_') } end |
#underscorify_keys! ⇒ Object
42 43 44 |
# File 'lib/the_role_api/hash.rb', line 42 def underscorify_keys! replace underscorify_keys end |