revises the regexp used in titleize

The regexp used in titleize matches saxon genitive
and other contractions, only to call capitalize on
the captured text and have the apostrophe upcased
which yields the apostrophe itself. It is more
clear that the regexp matches just what it has to
match.
This commit is contained in:
Xavier Noria 2012-04-07 23:49:28 +02:00
parent cf9664adcf
commit 4b685aad7b
2 changed files with 16 additions and 13 deletions

View File

@ -114,7 +114,7 @@ module ActiveSupport
# "TheManWithoutAPast".titleize # => "The Man Without A Past"
# "raiders_of_the_lost_ark".titleize # => "Raiders Of The Lost Ark"
def titleize(word)
humanize(underscore(word)).gsub(/\b(['`]?[a-z])/) { $1.capitalize }
humanize(underscore(word)).gsub(/\b(?<!['`])[a-z]/) { $&.capitalize }
end
# Create the name of a table like Rails does for models to table names. This method

View File

@ -211,18 +211,21 @@ module InflectorTestCases
}
MixtureToTitleCase = {
'active_record' => 'Active Record',
'ActiveRecord' => 'Active Record',
'action web service' => 'Action Web Service',
'Action Web Service' => 'Action Web Service',
'Action web service' => 'Action Web Service',
'actionwebservice' => 'Actionwebservice',
'Actionwebservice' => 'Actionwebservice',
"david's code" => "David's Code",
"David's code" => "David's Code",
"david's Code" => "David's Code",
"Freds" => "Freds",
"Fred`s" => "Fred`s"
'active_record' => 'Active Record',
'ActiveRecord' => 'Active Record',
'action web service' => 'Action Web Service',
'Action Web Service' => 'Action Web Service',
'Action web service' => 'Action Web Service',
'actionwebservice' => 'Actionwebservice',
'Actionwebservice' => 'Actionwebservice',
"david's code" => "David's Code",
"David's code" => "David's Code",
"david's Code" => "David's Code",
"sgt. pepper's" => "Sgt. Pepper's",
"i've just seen a face" => "I've Just Seen A Face",
"maybe you'll be there" => "Maybe You'll Be There",
"Freds" => "Freds",
"Fred`s" => "Fred`s"
}
OrdinalNumbers = {