From: Trans Date: 2008-03-01T22:31:00+09:00 Subject: capitalize and downcase I've always wondered why String#capitalize downcases the whole string before it upcases the first letter. It's easy to subsequently downcase the string if that's what is wanted, but it's more cumbersome to capitalize the first letter on it's own. Ie. Currently, "the ATeam".capitalize #=> "The ateam" "the ATeam".sub(/\A(.)/){ $1.upcase } #=> "The ATeam" if otherwise, "the ATeam".capitalize.downcase #=> "The ateam" "the ATeam".capitalize #=> "The ATeam" It may seem minor, but it also can have cascading effects. For instance I have a #camelcase method. It UppperCamelCases every word of a string. But it you pass false as an argument it lowerCamelCases every word. If we wanted to lowerCamelCase every word, except for the first, it would be nice to do string.camelcase(false).capitalize. But we can't do that. Moreover it means lowerCamelCase + captialize != UpperCamelCase, which is odd. T.