MINI Sh3ll
2/12/2013 - mmucklo
first draft of unit tests for singularize, update some expressions
2/8/2013 - mmucklo
Update inflection singular, plural and non-inflectable rules from RoR
5/22/2009 - mmucklo
Add static caching (i.e. memoization)
12/18/2008 - Forked from http://kuwamoto.org/2007/12/17/improved-pluralizing-in-php-actionscript-and-ror/ (MIT license)
Original Thanks:
----------------
Thanks to http://www.eval.ca/articles/php-pluralize (MIT license)
http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/inflections.rb (MIT license)
http://www.fortunecity.com/bally/durrus/153/gramch13.html
http://www2.gsu.edu/~wwwesl/egw/crump.htm
Original Changelog:
-------------------
Changes (12/17/07)
Major changes
--
Fixed irregular noun algorithm to use regular expressions just like the original Ruby source.
(this allows for things like fireman -> firemen
Fixed the order of the singular array, which was backwards.
Minor changes
--
Removed incorrect pluralization rule for /([^aeiouy]|qu)ies$/ => $1y
Expanded on the list of exceptions for *o -> *oes, and removed rule for buffalo -> buffaloes
Removed dangerous singularization rule for /([^f])ves$/ => $1fe
Added more specific rules for singularizing lives, wives, knives, sheaves, loaves, and leaves and thieves
Added exception to /(us)es$/ => $1 rule for houses => house and blouses => blouse
Added excpetions for feet, geese and teeth
Added rule for deer -> deer
Changes:
Removed rule for virus -> viri
Added rule for potato -> potatoes
Added rule for *us -> *uses
OHA YOOOO