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

Ticket #7199: more_inflector_inflections.diff

File more_inflector_inflections.diff, 3.0 kB (added by jeremymcanally, 2 years ago)
  • 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(/(ax|test)is$/i, '\1es') 
    5   inflect.plural(/(octop|vir)us$/i, '\1i') 
     4  inflect.plural(/(emphas|ax|test|cri|diagnos|synops|thes)is$/i, '\1es') 
     5  inflect.plural(/(stimul|hippopotam|octop|vir|syllab|foc|alumn|fung|radi)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') 
     8  inflect.plural(/(buffal|tomat|torped)o$/i, '\1oes') 
    99  inflect.plural(/([ti])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))(.*)(wo)?man/, '\2men') 
     21  inflect.plural(/(addend|strat|dat|medi|memorand|curricul|bacteri)um/, '\1a ') 
     22  inflect.plural(/(nebul|formul|vit|vertebr|alg|alumn)a/, '\1ae') 
    1923 
    2024  inflect.singular(/s$/i, '') 
    2125  inflect.singular(/(n)ews$/i, '\1ews') 
     
    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(/(emphas|cris|ax|test|diagnos|synops|thes)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|ind|vert)ices$/i, '\1ix') 
    4347  inflect.singular(/(quiz)zes$/i, '\1') 
     48  inflect.singular(/(phenomen|criteri)a$/i, '\1on') 
     49  inflect.singular(/(.*)(wo)?men/, '\1\2man') 
     50  inflect.singular(/(addend|strat|dat|medi|memorand|curricul|bacteri)a/, '\1um') 
     51  inflect.singular(/(nebula|formula|vita|vertebra|alga|alumna)e/, '\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 media offspring)) 
    5262end