Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/rubocoin/core_extensions/hash_ext.rb
Overview
Hash monkey patches
Instance Method Summary collapse
- #_deep_transform_keys_in_object!(object, &block) ⇒ Object
- #deep_symbolize_keys! ⇒ Object
- #deep_transform_keys!(&block) ⇒ Object
- #symbolize_keys! ⇒ Object
- #transform_keys! ⇒ Object
Instance Method Details
#_deep_transform_keys_in_object!(object, &block) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/rubocoin/core_extensions/hash_ext.rb', line 23 def _deep_transform_keys_in_object!(object, &block) case object when Hash object.keys.each do |key| value = object.delete(key) object[yield(key)] = _deep_transform_keys_in_object!(value, &block) end object when Array object.map! {|e| _deep_transform_keys_in_object!(e, &block)} else object end end |
#deep_symbolize_keys! ⇒ Object
7 8 9 |
# File 'lib/rubocoin/core_extensions/hash_ext.rb', line 7 def deep_symbolize_keys! deep_transform_keys!{ |key| key.to_sym rescue key } end |
#deep_transform_keys!(&block) ⇒ Object
19 20 21 |
# File 'lib/rubocoin/core_extensions/hash_ext.rb', line 19 def deep_transform_keys!(&block) _deep_transform_keys_in_object!(self, &block) end |
#symbolize_keys! ⇒ Object
3 4 5 |
# File 'lib/rubocoin/core_extensions/hash_ext.rb', line 3 def symbolize_keys! transform_keys!{ |key| key.to_sym rescue key } end |
#transform_keys! ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/rubocoin/core_extensions/hash_ext.rb', line 11 def transform_keys! return enum_for(:transform_keys!) unless block_given? keys.each do |key| self[yield(key)] = delete(key) end self end |