def underscore(camel_cased_word)
      return camel_cased_word unless camel_cased_word =~ /[A-Z-]/

      word = camel_cased_word.to_s

      word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
      word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')

      word.downcase!

      word
    end
def underscore(camel_cased_word)
      return camel_cased_word unless camel_cased_word =~ /[A-Z-]/

      word = camel_cased_word.to_s

      word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
      word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')

      word.downcase!

      word
    end
Makes an underscored, lowercase form from the expression in the string.

 @see ActiveSupport
   It's MIT-Licensed