Class: Mj::HashUtils::KeyUnderscorer
- Inherits:
-
Object
- Object
- Mj::HashUtils::KeyUnderscorer
- Defined in:
- lib/mj/hash_utils/key_underscorer.rb
Instance Method Summary collapse
- #underscorize(item_or_collection) ⇒ Object
-
#underscorize_key(key) ⇒ Object
:reek:TooManyStatements.
Instance Method Details
#underscorize(item_or_collection) ⇒ Object
6 7 8 9 10 |
# File 'lib/mj/hash_utils/key_underscorer.rb', line 6 def underscorize(item_or_collection) KeyTransformer.new.transform(item_or_collection) do |key| underscorize_key(key) end end |
#underscorize_key(key) ⇒ Object
:reek:TooManyStatements
13 14 15 16 17 18 19 20 |
# File 'lib/mj/hash_utils/key_underscorer.rb', line 13 def underscorize_key(key) key = key.to_s key = key.gsub("::", "/") key = key.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') key = key.gsub(/([a-z\d])([A-Z])/, '\1_\2') key = key.tr("-", "_") key.downcase.to_sym end |