Class: Mj::HashUtils::JsonKeyNormalizer
- Inherits:
-
Object
- Object
- Mj::HashUtils::JsonKeyNormalizer
- Defined in:
- lib/mj/hash_utils/json_key_normalizer.rb
Instance Method Summary collapse
-
#camelize_key(key) ⇒ Object
:reek:TooManyStatements.
- #normalize(item_or_collection) ⇒ Object
Instance Method Details
#camelize_key(key) ⇒ Object
:reek:TooManyStatements
13 14 15 16 17 18 19 |
# File 'lib/mj/hash_utils/json_key_normalizer.rb', line 13 def camelize_key(key) key = key.to_s key = key.sub(%r{^(?:(?=\b|[A-Z_])|\w)/}) { ::Regexp.last_match(0).downcase } key.gsub(%r{(?:_|(/))([a-z\d]*)}) do "#{Regexp.last_match(1)}#{Regexp.last_match(2).capitalize}" end.gsub("/", "::").to_sym end |
#normalize(item_or_collection) ⇒ Object
6 7 8 9 10 |
# File 'lib/mj/hash_utils/json_key_normalizer.rb', line 6 def normalize(item_or_collection) KeyTransformer.new.transform(item_or_collection) do |key| camelize_key(key) end end |