Class: Darthjee::CoreExt::Hash::KeyChanger
- Defined in:
- lib/darthjee/core_ext/hash/key_changer.rb
Instance Method Summary collapse
- #camelize_keys(settings = {}) ⇒ Object
- #change_keys(settings = {}, &block) ⇒ Object
- #change_text(options = {}) ⇒ Object
-
#initialize(hash) ⇒ KeyChanger
constructor
A new instance of KeyChanger.
- #remap(keys_map) ⇒ Object
- #underscore_keys(settings = {}) ⇒ Object
Constructor Details
#initialize(hash) ⇒ KeyChanger
Returns a new instance of KeyChanger.
7 8 9 |
# File 'lib/darthjee/core_ext/hash/key_changer.rb', line 7 def initialize(hash) @hash = hash end |
Instance Method Details
#camelize_keys(settings = {}) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/darthjee/core_ext/hash/key_changer.rb', line 31 def camelize_keys(settings = {}) ({ uppercase_first_letter: true }, settings) type = [:uppercase_first_letter] ? :upper : :lower change_keys do |k| k.camelize(type) end end |
#change_keys(settings = {}, &block) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/darthjee/core_ext/hash/key_changer.rb', line 19 def change_keys(settings = {}, &block) ({ recursive: true }, settings) if [:recursive] hash.deep_transform_keys!(&block) else hash.transform_keys!(&block) end end |
#change_text(options = {}) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/darthjee/core_ext/hash/key_changer.rb', line 49 def change_text( = {}) ({ type: :keep }, ) change_keys do |key| cast_new_key yield(key), key.class end end |
#remap(keys_map) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/darthjee/core_ext/hash/key_changer.rb', line 11 def remap(keys_map) new_hash = {} keys_map.each do |o, n| new_hash[n] = hash.delete(o) end hash.merge! new_hash end |
#underscore_keys(settings = {}) ⇒ Object
43 44 45 46 47 |
# File 'lib/darthjee/core_ext/hash/key_changer.rb', line 43 def underscore_keys(settings = {}) ({}, settings) change_keys(&:underscore) end |