Method: Frontline::Inflector#underscore
- Defined in:
- lib/frontline/inflect.rb
#underscore(camel_cased_word) ⇒ Object
155 156 157 158 159 160 161 162 163 164 |
# File 'lib/frontline/inflect.rb', line 155 def underscore(camel_cased_word) word = camel_cased_word.to_s.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 |