Module: Philiprehberger::Inflector::Rules

Defined in:
lib/philiprehberger/inflector/rules.rb

Overview

Built-in pluralization and singularization rules

Constant Summary collapse

PLURALS =
[
  [/quiz$/i, 'quizzes'],
  [/^(oxen)$/i, '\1'],
  [/^(ox)$/i, '\1en'],
  [/^(m|l)ice$/i, '\1ice'],
  [/^(m|l)ouse$/i, '\1ice'],
  [/(passer)s?by$/i, '\1sby'],
  [/(matr|vert|append)ix|ex$/i, '\1ices'],
  [/(x|ch|ss|sh)$/i, '\1es'],
  [/([^aeiouy]|qu)y$/i, '\1ies'],
  [/(hive)$/i, '\1s'],
  [/([^f])fe$/i, '\1ves'],
  [/(ar|l|ea|eo|oa|hoo)f$/i, '\1ves'],
  [/sis$/i, 'ses'],
  [/([ti])a$/i, '\1a'],
  [/([ti])um$/i, '\1a'],
  [/(buffal|tomat|potat|volcan|her)o$/i, '\1oes'],
  [/(bu|mis|gas)s$/i, '\1ses'],
  [/(alias|status)$/i, '\1es'],
  [/(octop|vir)i$/i, '\1i'],
  [/(octop|vir)us$/i, '\1i'],
  [/^(ax|test)is$/i, '\1es'],
  [/s$/i, 's'],
  [/$/, 's']
].freeze
SINGULARS =
[
  [/quizzes$/i, 'quiz'],
  [/(matr)ices$/i, '\1ix'],
  [/(vert|append)ices$/i, '\1ex'],
  [/^(ox)en$/i, '\1'],
  [/(alias|status)es$/i, '\1'],
  [/(octop|vir)i$/i, '\1us'],
  [/(cris|ax|test)es$/i, '\1is'],
  [/(shoe)s$/i, '\1'],
  [/(o)es$/i, '\1'],
  [/(bus)es$/i, '\1'],
  [/^(m|l)ice$/i, '\1ouse'],
  [/(x|ch|ss|sh)es$/i, '\1'],
  [/(m)ovies$/i, '\1ovie'],
  [/(s)eries$/i, '\1eries'],
  [/([^aeiouy]|qu)ies$/i, '\1y'],
  [/([lr])ves$/i, '\1f'],
  [/(tive)s$/i, '\1'],
  [/(hive)s$/i, '\1'],
  [/([^f])ves$/i, '\1fe'],
  [/(t)he(sis|ses)$/i, '\1hesis'],
  [/(analy|diagno|paren|progno|synop|the)ses$/i, '\1sis'],
  [/([ti])a$/i, '\1um'],
  [/(n)ews$/i, '\1ews'],
  [/(ss)$/i, '\1'],
  [/s$/i, '']
].freeze
UNCOUNTABLES =
%w[
  equipment information rice money species series fish sheep jeans police
].freeze