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

Ticket #7199: more_inflector_inflections.2.diff

File more_inflector_inflections.2.diff, 3.7 kB (added by jeremymcanally, 2 years ago)

Svn diff - fixed and streamlined, also with more tests

  • activesupport/test/inflector_test.rb

    old new  
    8989    "virus" => "viri", 
    9090    "alias" => "aliases", 
    9191    "portfolio" => "portfolios", 
     92    "human" => "humans", 
     93    "fireman" => "firemen", 
    9294 
    9395    "vertex" => "vertices", 
    9496    "matrix" => "matrices", 
  • activesupport/lib/active_support/inflections.rb

    old new  
    11Inflector.inflections do |inflect| 
    22  inflect.plural(/$/, 's') 
    33  inflect.plural(/s$/i, 's') 
     4  inflect.plural(/(stimul|hippopotam|octop|vir|syllab|foc|alumn|fung|radi)us$/i, '\1i') 
    45  inflect.plural(/(ax|test)is$/i, '\1es') 
    5   inflect.plural(/(octop|vir)us$/i, '\1i') 
    66  inflect.plural(/(alias|status)$/i, '\1es') 
    77  inflect.plural(/(bu)s$/i, '\1ses') 
    8   inflect.plural(/(buffal|tomat)o$/i, '\1oes') 
    9   inflect.plural(/([ti])um$/i, '\1a') 
     8  inflect.plural(/(buffal|tomat|torped)o$/i, '\1oes') 
     9  inflect.plural(/([dti])um$/i, '\1a') 
    1010  inflect.plural(/sis$/i, 'ses') 
    1111  inflect.plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves') 
    1212  inflect.plural(/(hive)$/i, '\1s') 
    1313  inflect.plural(/([^aeiouy]|qu)y$/i, '\1ies') 
    1414  inflect.plural(/(x|ch|ss|sh)$/i, '\1es') 
    15   inflect.plural(/(matr|vert|ind)ix|ex$/i, '\1ices') 
     15  inflect.plural(/(matr|append|vert|ind)ix|ex$/i, '\1ices') 
    1616  inflect.plural(/([m|l])ouse$/i, '\1ice') 
    1717  inflect.plural(/^(ox)$/i, '\1en') 
    1818  inflect.plural(/(quiz)$/i, '\1zes') 
     19  inflect.plural(/(phenomen|criteri)on$/i, '\1a') 
     20  inflect.plural(/^(?!(.*hu|.*ger|.*sha))(.*)(wom|m)an/i, '\2\3en') 
     21  inflect.plural(/(curricul|bacteri|medi)um/i, '\1a') 
     22  inflect.plural(/(nebul|formul|vit|vertebr|alg|alumn)a/i, '\1ae') 
    1923 
    2024  inflect.singular(/s$/i, '') 
    2125  inflect.singular(/(n)ews$/i, '\1ews') 
    22   inflect.singular(/([ti])a$/i, '\1um') 
     26  inflect.singular(/([dti])a$/i, '\1um') 
    2327  inflect.singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i, '\1\2sis') 
    24   inflect.singular(/(^analy)ses$/i, '\1sis') 
     28  inflect.singular(/(^analy|cri|empha)ses$/i, '\1sis') 
    2529  inflect.singular(/([^f])ves$/i, '\1fe') 
    2630  inflect.singular(/(hive)s$/i, '\1') 
    2731  inflect.singular(/(tive)s$/i, '\1') 
     
    3438  inflect.singular(/(bus)es$/i, '\1') 
    3539  inflect.singular(/(o)es$/i, '\1') 
    3640  inflect.singular(/(shoe)s$/i, '\1') 
    37   inflect.singular(/(cris|ax|test)es$/i, '\1is') 
    38   inflect.singular(/(octop|vir)i$/i, '\1us') 
     41  inflect.singular(/(test|ax)es$/i, '\1is') 
     42  inflect.singular(/(stimul|hippopotam|octop|vir|syllab|foc|alumn|fung|radi)i$/i, '\1us') 
    3943  inflect.singular(/(alias|status)es$/i, '\1') 
    4044  inflect.singular(/^(ox)en/i, '\1') 
    4145  inflect.singular(/(vert|ind)ices$/i, '\1ex') 
    42   inflect.singular(/(matr)ices$/i, '\1ix') 
     46  inflect.singular(/(matr|append)ices$/i, '\1ix') 
    4347  inflect.singular(/(quiz)zes$/i, '\1') 
     48  inflect.singular(/(phenomen|criteri)a$/i, '\1on') 
     49  inflect.singular(/(.*)(wo|m)en$/i, '\1\2an') 
     50  inflect.singular(/(medi|curricul|bacteri)a/i, '\1um') 
     51  inflect.singular(/(nebula|formula|vita|vertebra|alga|alumna)e/i, '\1') 
    4452 
    4553  inflect.irregular('person', 'people') 
    46   inflect.irregular('man', 'men') 
    4754  inflect.irregular('child', 'children') 
    4855  inflect.irregular('sex', 'sexes') 
    4956  inflect.irregular('move', 'moves') 
     57  inflect.irregular('tooth', 'teeth') 
     58  inflect.irregular('die', 'dice') 
     59  inflect.irregular('talisman', 'talismans') 
    5060 
    51   inflect.uncountable(%w(equipment information rice money species series fish sheep)) 
     61  inflect.uncountable(%w(equipment information rice money species series fish sheep deer offspring)) 
    5262end