File: active_support/inflections.rb

Overview
Module Structure
Code

Overview

Module Structure

  module: <Toplevel Module>
module: ActiveSupport    #1

Code

   1  module ActiveSupport
   2    Inflector.inflections do |inflect|
   3      inflect.plural(/$/, 's')
   4      inflect.plural(/s$/i, 's')
   5      inflect.plural(/(ax|test)is$/i, '\1es')
   6      inflect.plural(/(octop|vir)us$/i, '\1i')
   7      inflect.plural(/(alias|status)$/i, '\1es')
   8      inflect.plural(/(bu)s$/i, '\1ses')
   9      inflect.plural(/(buffal|tomat)o$/i, '\1oes')
  10      inflect.plural(/([ti])um$/i, '\1a')
  11      inflect.plural(/sis$/i, 'ses')
  12      inflect.plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves')
  13      inflect.plural(/(hive)$/i, '\1s')
  14      inflect.plural(/([^aeiouy]|qu)y$/i, '\1ies')
  15      inflect.plural(/(x|ch|ss|sh)$/i, '\1es')
  16      inflect.plural(/(matr|vert|ind)(?:ix|ex)$/i, '\1ices')
  17      inflect.plural(/([m|l])ouse$/i, '\1ice')
  18      inflect.plural(/^(ox)$/i, '\1en')
  19      inflect.plural(/(quiz)$/i, '\1zes')
  20 
  21      inflect.singular(/s$/i, '')
  22      inflect.singular(/(n)ews$/i, '\1ews')
  23      inflect.singular(/([ti])a$/i, '\1um')
  24      inflect.singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i, '\1\2sis')
  25      inflect.singular(/(^analy)ses$/i, '\1sis')
  26      inflect.singular(/([^f])ves$/i, '\1fe')
  27      inflect.singular(/(hive)s$/i, '\1')
  28      inflect.singular(/(tive)s$/i, '\1')
  29      inflect.singular(/([lr])ves$/i, '\1f')
  30      inflect.singular(/([^aeiouy]|qu)ies$/i, '\1y')
  31      inflect.singular(/(s)eries$/i, '\1eries')
  32      inflect.singular(/(m)ovies$/i, '\1ovie')
  33      inflect.singular(/(x|ch|ss|sh)es$/i, '\1')
  34      inflect.singular(/([m|l])ice$/i, '\1ouse')
  35      inflect.singular(/(bus)es$/i, '\1')
  36      inflect.singular(/(o)es$/i, '\1')
  37      inflect.singular(/(shoe)s$/i, '\1')
  38      inflect.singular(/(cris|ax|test)es$/i, '\1is')
  39      inflect.singular(/(octop|vir)i$/i, '\1us')
  40      inflect.singular(/(alias|status)es$/i, '\1')
  41      inflect.singular(/^(ox)en/i, '\1')
  42      inflect.singular(/(vert|ind)ices$/i, '\1ex')
  43      inflect.singular(/(matr)ices$/i, '\1ix')
  44      inflect.singular(/(quiz)zes$/i, '\1')
  45      inflect.singular(/(database)s$/i, '\1')
  46 
  47      inflect.irregular('person', 'people')
  48      inflect.irregular('man', 'men')
  49      inflect.irregular('child', 'children')
  50      inflect.irregular('sex', 'sexes')
  51      inflect.irregular('move', 'moves')
  52      inflect.irregular('cow', 'kine')
  53 
  54      inflect.uncountable(%w(equipment information rice money species series fish sheep jeans))
  55    end
  56  end