mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
92f567ab30
This is a follow up to:07c70245a1
As suggested by @fxn this comment should not be visible in the API:07c70245a1 (commitcomment-5331658)
70 lines
2.9 KiB
Ruby
70 lines
2.9 KiB
Ruby
require 'active_support/inflector/inflections'
|
|
|
|
#--
|
|
# Defines the standard inflection rules. These are the starting point for
|
|
# new projects and are not considered complete. The current set of inflection
|
|
# rules is frozen. This means, we do not change them to become more complete.
|
|
# This is a safety measure to keep existing applications from breaking.
|
|
#++
|
|
module ActiveSupport
|
|
Inflector.inflections(:en) do |inflect|
|
|
inflect.plural(/$/, 's')
|
|
inflect.plural(/s$/i, 's')
|
|
inflect.plural(/^(ax|test)is$/i, '\1es')
|
|
inflect.plural(/(octop|vir)us$/i, '\1i')
|
|
inflect.plural(/(octop|vir)i$/i, '\1i')
|
|
inflect.plural(/(alias|status)$/i, '\1es')
|
|
inflect.plural(/(bu)s$/i, '\1ses')
|
|
inflect.plural(/(buffal|tomat)o$/i, '\1oes')
|
|
inflect.plural(/([ti])um$/i, '\1a')
|
|
inflect.plural(/([ti])a$/i, '\1a')
|
|
inflect.plural(/sis$/i, 'ses')
|
|
inflect.plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves')
|
|
inflect.plural(/(hive)$/i, '\1s')
|
|
inflect.plural(/([^aeiouy]|qu)y$/i, '\1ies')
|
|
inflect.plural(/(x|ch|ss|sh)$/i, '\1es')
|
|
inflect.plural(/(matr|vert|ind)(?:ix|ex)$/i, '\1ices')
|
|
inflect.plural(/^(m|l)ouse$/i, '\1ice')
|
|
inflect.plural(/^(m|l)ice$/i, '\1ice')
|
|
inflect.plural(/^(ox)$/i, '\1en')
|
|
inflect.plural(/^(oxen)$/i, '\1')
|
|
inflect.plural(/(quiz)$/i, '\1zes')
|
|
|
|
inflect.singular(/s$/i, '')
|
|
inflect.singular(/(ss)$/i, '\1')
|
|
inflect.singular(/(n)ews$/i, '\1ews')
|
|
inflect.singular(/([ti])a$/i, '\1um')
|
|
inflect.singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i, '\1sis')
|
|
inflect.singular(/(^analy)(sis|ses)$/i, '\1sis')
|
|
inflect.singular(/([^f])ves$/i, '\1fe')
|
|
inflect.singular(/(hive)s$/i, '\1')
|
|
inflect.singular(/(tive)s$/i, '\1')
|
|
inflect.singular(/([lr])ves$/i, '\1f')
|
|
inflect.singular(/([^aeiouy]|qu)ies$/i, '\1y')
|
|
inflect.singular(/(s)eries$/i, '\1eries')
|
|
inflect.singular(/(m)ovies$/i, '\1ovie')
|
|
inflect.singular(/(x|ch|ss|sh)es$/i, '\1')
|
|
inflect.singular(/^(m|l)ice$/i, '\1ouse')
|
|
inflect.singular(/(bus)(es)?$/i, '\1')
|
|
inflect.singular(/(o)es$/i, '\1')
|
|
inflect.singular(/(shoe)s$/i, '\1')
|
|
inflect.singular(/(cris|test)(is|es)$/i, '\1is')
|
|
inflect.singular(/^(a)x[ie]s$/i, '\1xis')
|
|
inflect.singular(/(octop|vir)(us|i)$/i, '\1us')
|
|
inflect.singular(/(alias|status)(es)?$/i, '\1')
|
|
inflect.singular(/^(ox)en/i, '\1')
|
|
inflect.singular(/(vert|ind)ices$/i, '\1ex')
|
|
inflect.singular(/(matr)ices$/i, '\1ix')
|
|
inflect.singular(/(quiz)zes$/i, '\1')
|
|
inflect.singular(/(database)s$/i, '\1')
|
|
|
|
inflect.irregular('person', 'people')
|
|
inflect.irregular('man', 'men')
|
|
inflect.irregular('child', 'children')
|
|
inflect.irregular('sex', 'sexes')
|
|
inflect.irregular('move', 'moves')
|
|
inflect.irregular('zombie', 'zombies')
|
|
|
|
inflect.uncountable(%w(equipment information rice money species series fish sheep jeans police))
|
|
end
|
|
end
|