Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7092

Show
Ignore:
Timestamp:
06/23/07 16:47:47 (1 year ago)
Author:
david
Message:

Added support for pluralization with a different starting letter than the singular version (cow/kine) (closes #4929) [norri_b/hasmanyjosh]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activesupport/CHANGELOG

    r7086 r7092  
    11*SVN* 
     2 
     3* Added support for pluralization with a different starting letter than the singular version (cow/kine) #4929 [norri_b/hasmanyjosh] 
    24 
    35* Demote Hash#to_xml to use XmlSimple#xml_in_string so it can't read files or stdin.  #8453 [candlerb, Jeremy Kemper] 
  • trunk/activesupport/lib/active_support/inflections.rb

    r6886 r7092  
    4848  inflect.irregular('sex', 'sexes') 
    4949  inflect.irregular('move', 'moves') 
     50  inflect.irregular('cow', 'kine') 
    5051 
    5152  inflect.uncountable(%w(equipment information rice money species series fish sheep)) 
  • trunk/activesupport/lib/active_support/inflector.rb

    r6075 r7092  
    4848    #   irregular 'person', 'people' 
    4949    def irregular(singular, plural) 
    50       plural(Regexp.new("(#{singular[0,1]})#{singular[1..-1]}$", "i"), '\1' + plural[1..-1]) 
    51       singular(Regexp.new("(#{plural[0,1]})#{plural[1..-1]}$", "i"), '\1' + singular[1..-1]) 
     50      if singular[0,1].upcase == plural[0,1].upcase 
     51        plural(Regexp.new("(#{singular[0,1]})#{singular[1..-1]}$", "i"), '\1' + plural[1..-1]) 
     52        singular(Regexp.new("(#{plural[0,1]})#{plural[1..-1]}$", "i"), '\1' + singular[1..-1]) 
     53      else 
     54        plural(Regexp.new("#{singular[0,1].upcase}(?i)#{singular[1..-1]}$"), plural[0,1].upcase + plural[1..-1]) 
     55        plural(Regexp.new("#{singular[0,1].downcase}(?i)#{singular[1..-1]}$"), plural[0,1].downcase + plural[1..-1]) 
     56        singular(Regexp.new("#{plural[0,1].upcase}(?i)#{plural[1..-1]}$"), singular[0,1].upcase + singular[1..-1]) 
     57        singular(Regexp.new("#{plural[0,1].downcase}(?i)#{plural[1..-1]}$"), singular[0,1].downcase + singular[1..-1])        
     58      end 
    5259    end 
    5360 
  • trunk/activesupport/test/inflector_test.rb

    r6886 r7092  
    105105    "horse"       => "horses", 
    106106    "prize"       => "prizes", 
    107     "edge"        => "edges" 
     107    "edge"        => "edges", 
     108 
     109    "cow"         => "kine" 
    108110  } 
    109111