mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
d66e7835be
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
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
|