From ed675808e36e019bb6464d3c665e7c90d13baa20 Mon Sep 17 00:00:00 2001 From: Rolf Bjaanes Date: Tue, 15 Dec 2009 18:36:28 +0100 Subject: [PATCH] Changed the way inflections for uncountables work for 'funky jeans' --- activesupport/lib/active_support/inflections.rb | 2 +- .../lib/active_support/inflector/inflections.rb | 2 +- activesupport/test/inflector_test_cases.rb | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/activesupport/lib/active_support/inflections.rb b/activesupport/lib/active_support/inflections.rb index 8fb3fa9..e7b5387 100644 --- a/activesupport/lib/active_support/inflections.rb +++ b/activesupport/lib/active_support/inflections.rb @@ -51,6 +51,6 @@ module ActiveSupport inflect.irregular('move', 'moves') inflect.irregular('cow', 'kine') - inflect.uncountable(%w(equipment information rice money species series fish sheep)) + inflect.uncountable(%w(equipment information rice money species series fish sheep jeans)) end end diff --git a/activesupport/lib/active_support/inflector/inflections.rb b/activesupport/lib/active_support/inflector/inflections.rb index 785e245..3caf78b 100644 --- a/activesupport/lib/active_support/inflector/inflections.rb +++ b/activesupport/lib/active_support/inflector/inflections.rb @@ -148,7 +148,7 @@ module ActiveSupport def singularize(word) result = word.to_s.dup - if inflections.uncountables.include?(result.downcase) + if inflections.uncountables.any? { |inflection| result =~ /#{inflection}\Z/i } result else inflections.singulars.each { |(rule, replacement)| break if result.gsub!(rule, replacement) } diff --git a/activesupport/test/inflector_test_cases.rb b/activesupport/test/inflector_test_cases.rb index 2fa94b8..8fbfb45 100644 --- a/activesupport/test/inflector_test_cases.rb +++ b/activesupport/test/inflector_test_cases.rb @@ -12,7 +12,9 @@ module InflectorTestCases "stack" => "stacks", "wish" => "wishes", "fish" => "fish", - + "jeans" => "jeans", + "funky jeans" => "funky jeans", + "category" => "categories", "query" => "queries", "ability" => "abilities", -- 1.6.4.4