lib/string.rb
# Makes an underscored, lowercase form from the expression in the string.
#
# Changes '::' to '/' to convert namespaces to paths.
#
# Examples:
#   "ActiveRecord".underscore         # => "active_record"
#   "ActiveRecord::Errors".underscore # => active_record/errors
#
# As a rule of thumb you can think of +underscore+ as the inverse of +camelize+,
# though there are cases where that does not hold:
#
#   "SSLError".underscore.camelize # => "SslError"
Makes an underscored, lowercase form from the expression in the string.



As a rule of thumb you can think of +underscore+ as the inverse of +camelize+,
though there are cases where that does not hold.


Makes an underscored lowercase form from the expression in the string . As a rule of thumb you can think of + underscore + as the inverse of + camelize + though there are cases where that does not hold .
def underscore_string(camel_cased_word)
    word = camel_cased_word.to_s.dup
    word.gsub!(/::/, '/')
    word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
    word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
    word.tr!("-", "_")
    word.downcase!
    word
  end
def underscore_string ( camel_cased_word ) word = camel_cased_word . to_s . dup word . gsub! ( / :: / , '/' ) word . gsub! ( / ([A-Z]+)([A-Z][a-z]) / , '\1_\2' ) word . gsub! ( / ([a-z \d ])([A-Z]) / , '\1_\2' ) word . tr! ( "-" , "_" ) word . downcase! word end
Makes an underscored, lowercase form from the expression in the string.
Makes an underscored lowercase form from the expression in the string .
camel_cased_word