Also accepts Symbols and Classes by calling .to_s on the word supplied

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@366 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2005-01-10 16:03:44 +00:00
parent 38e55bac61
commit d239ac40fa

@ -4,7 +4,7 @@ module Inflector
extend self extend self
def pluralize(word) def pluralize(word)
result = word.dup result = word.to_s.dup
plural_rules.each do |(rule, replacement)| plural_rules.each do |(rule, replacement)|
break if result.gsub!(rule, replacement) break if result.gsub!(rule, replacement)
end end
@ -12,7 +12,7 @@ def pluralize(word)
end end
def singularize(word) def singularize(word)
result = word.dup result = word.to_s.dup
singular_rules.each do |(rule, replacement)| singular_rules.each do |(rule, replacement)|
break if result.gsub!(rule, replacement) break if result.gsub!(rule, replacement)
end end
@ -20,15 +20,15 @@ def singularize(word)
end end
def camelize(lower_case_and_underscored_word) def camelize(lower_case_and_underscored_word)
lower_case_and_underscored_word.gsub(/(^|_)(.)/){$2.upcase} lower_case_and_underscored_word.to_s.gsub(/(^|_)(.)/){$2.upcase}
end end
def underscore(camel_cased_word) def underscore(camel_cased_word)
camel_cased_word.gsub(/([A-Z]+)([A-Z])/,'\1_\2').gsub(/([a-z])([A-Z])/,'\1_\2').downcase camel_cased_word.to_s.gsub(/([A-Z]+)([A-Z])/,'\1_\2').gsub(/([a-z])([A-Z])/,'\1_\2').downcase
end end
def demodulize(class_name_in_module) def demodulize(class_name_in_module)
class_name_in_module.gsub(/^.*::/, '') class_name_in_module.to_s.gsub(/^.*::/, '')
end end
def tableize(class_name) def tableize(class_name)