aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-07-01 16:57:58 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-07-01 16:57:58 +0000
commit64612db7cf85aee8434e7b9b4fd8d6d0249c60e4 (patch)
treec58c03bf10907601c2e134068f53dfb0bd2fc05f /activesupport/lib/active_support
parent5ddffc8c24635fe44cd66f78d7b5e2f7091e34d6 (diff)
downloadrails-64612db7cf85aee8434e7b9b4fd8d6d0249c60e4.tar.gz
rails-64612db7cf85aee8434e7b9b4fd8d6d0249c60e4.tar.bz2
rails-64612db7cf85aee8434e7b9b4fd8d6d0249c60e4.zip
Added new rules to the Inflector to deal with more unusual plurals mouse/louse => mice/lice, information => information, ox => oxen #1571 [foamdino@gmail.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1582 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r--activesupport/lib/active_support/inflector.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/inflector.rb b/activesupport/lib/active_support/inflector.rb
index 2f2b37f52a..dc0d57b901 100644
--- a/activesupport/lib/active_support/inflector.rb
+++ b/activesupport/lib/active_support/inflector.rb
@@ -58,6 +58,9 @@ module Inflector
def plural_rules #:doc:
[
[/(fish)$/i, '\1\2'], # fish
+ [/(information)$/i, '\1'], # information (plural noun)
+ [/^(ox)$/i, '\1\2en'], # ox
+ [/([m|l])ouse/i, '\1ice'], # mouse, louse
[/(x|ch|ss|sh)$/i, '\1es'], # search, switch, fix, box, process, address
[/(series)$/i, '\1\2'],
[/([^aeiouy]|qu)ies$/i, '\1y'],
@@ -68,6 +71,8 @@ module Inflector
[/(p)erson$/i, '\1\2eople'], # person, salesperson
[/(m)an$/i, '\1\2en'], # man, woman, spokesman
[/(c)hild$/i, '\1\2hildren'], # child
+ [/(o)$/i, '\1\2es'], # buffalo, tomato
+ [/(bu)s$/i, '\1\2ses'], # bus
[/s$/i, 's'], # no change (compatibility)
[/$/, 's']
]
@@ -76,6 +81,10 @@ module Inflector
def singular_rules #:doc:
[
[/(f)ish$/i, '\1\2ish'],
+ [/^(ox)en/i, '\1'],
+ [/(o)es/i, '\1'],
+ [/(bus)es$/i, '\1'],
+ [/([m|l])ice/i, '\1ouse'],
[/(x|ch|ss|sh)es$/i, '\1'],
[/(m)ovies$/i, '\1\2ovie'],
[/(s)eries$/i, '\1\2eries'],