Class: Mj::HashUtils::KeyUnderscorer

Inherits:
Object
  • Object
show all
Defined in:
lib/mj/hash_utils/key_underscorer.rb

Instance Method Summary collapse

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