Module: Nameable::Latin::Patterns

Defined in:
lib/nameable/latin/patterns.rb

Overview

Regex’s to match the detritus that people add to their names

Constant Summary collapse

PREFIX =
{
  "Mr."    => /^\(*(mr\.*|mister)\)*$/i,
  "Mrs."   => /^\(*(mrs\.*|misses)\)*$/i,
  "Ms."    => /^\(*(ms\.*|miss)\)*$/i,
  "Dr."    => /^\(*(dr\.*|doctor)\)*$/i,
  "Rev."   => /^\(*(rev\.*|reverand)\)*$/i,
  "Fr."    => /^\(*(fr\.*|friar)\)*$/i,
  "Master" => /^\(*(master)\)*$/i,
  "Sir"    => /^\(*(sir)\)*$/i
}
SUFFIX =
{
  "Sr."   => /^\(*(sr\.?|senior)\)*$/i,
  "Jr."   => /^\(*(jr\.?|junior)\)*$/i,
  "Esq."  => /^\(*(esq\.?|esquire)\)*$/i,
  "Ph.D." => /^\(*(p\.?h\.?d\.?)\)*$/i
}
SUFFIX_GENERATIONAL_ROMAN =
/^\(*[IVX.]+\)*$/i
SUFFIX_ACADEMIC =
/^(APR|RPh|MD|MA|DMD|DDS|PharmD|EngD|DPhil|JD|DD|DO|BA|BS|BSc|BE|BFA|MA|MS|MSc|MFA|MLA|MBA)$/i
SUFFIX_PROFESSIONAL =
/^(PE|CSA|CPA|CPL|CME|CEng|OFM|CSV|Douchebag)$/i
SUFFIX_ABBREVIATION =

It should be at least 2 letters

/^[A-Z.]+[A-Z.]+$/
LAST_NAME_PRE_DANGLERS =
/^(mc|vere|von|van|da|de|del|della|di|da|pietro|vanden|du|st|la|ter|ten)$/i
O_LAST_NAME_PRE_CONCATS =
/^(o'|o`|o")$/i