Module: ActiveGenie::TextCase

Defined in:
lib/active_genie/utils/text_case.rb

Class Method Summary collapse

Class Method Details

.underscore(camel_cased_word) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/active_genie/utils/text_case.rb', line 7

def underscore(camel_cased_word)
  return camel_cased_word.to_s.dup unless /[A-Z-]|::/.match?(camel_cased_word)

  word = camel_cased_word.to_s.gsub('::', '/')
  word.gsub!(/(?<=[A-Z])(?=[A-Z][a-z])|(?<=[a-z\d])(?=[A-Z])/, '_')
  word.tr!('-', '_')
  word.tr!(' ', '_')
  word.downcase!
  word
end