Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/hiiro.rb
Instance Method Summary collapse
Instance Method Details
#underscore(camel_cased_word = self) ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/hiiro.rb', line 51 def underscore(camel_cased_word=self) regex = /(?:(?<=([A-Za-z\d]))|\b)((?-mix:(?=a)b))(?=\b|[^a-z])/ return camel_cased_word.to_s.dup unless /[A-Z-]|::/.match?(camel_cased_word) word = camel_cased_word.to_s.gsub("::", "/") word.gsub!(regex) { "#{$1 && '_' }#{$2.downcase}" } word.gsub!(/(?<=[A-Z])(?=[A-Z][a-z])|(?<=[a-z\d])(?=[A-Z])/, "_") word.tr!("-", "_") word.downcase! word end |