Class: String

Inherits:
Object show all
Defined in:
lib/eye/utils/mini_active_support.rb

Instance Method Summary collapse

Instance Method Details

#underscoreObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/eye/utils/mini_active_support.rb', line 30

def underscore
  word = self.dup
  word.gsub!('::', '/')
  word.gsub!(/(?:([A-Za-z\d])|^)((?=a)b)(?=\b|[^a-z])/) { "#{$1}#{$1 && '_'}#{$2.downcase}" }
  word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
  word.tr!('-', '_')
  word.downcase!
  word
end