This is a Ruby implementation of John Gruber's Title Case by Paul Mucur.
Simply pass any string to which you wish to apply title casing to the
initializer and then use the
to_title_case method. A
Title instance has
all the methods of the original string and so should be suitable for using
interchangably with it.
require 'title' greeting = Title.new("Hello there") greeting.to_title_case # => "Hello There"
Didn't this library previously re-open the
String class and use DCI?
Yes, but I have since learnt the error of my ways.
Unlike the original Perl implementation, this version does not correctly
capitalise characters such as é and is therefore limited in scope to strings
consisting only of ASCII printable
characters. A workaround would be to stop relying on the Ruby regular
expression patterns of
\W for detecting capital letters,
alphanumeric characters and non-alphanumeric characters respectively.
While it will deal with most common usage where you need a reasonably-correctly-cased sentence to be made suitable for a title, it will not correct mistakes such as lowercase acronyms or errant capital letters:
"at&t" => "At&t" "HellO" => "HellO"