lib/nameable/latin/patterns.rb in nameable-1.1.3 vs lib/nameable/latin/patterns.rb in nameable-1.1.4
- old
+ new
@@ -1,31 +1,36 @@
module Nameable
class Latin
- ##
# Regex's to match the detritus that people add to their names
module Patterns
PREFIX = {
- "Mr." => /^\(*(mr\.*|mister)\)*$/i,
- "Mrs." => /^\(*(mrs\.*|misses)\)*$/i,
- "Ms." => /^\(*(ms\.*|miss)\)*$/i,
- "Dr." => /^\(*(dr\.*|doctor)\)*$/i,
- "Rev." => /^\(*(rev\.*|reverend)\)*$/i,
- "Fr." => /^\(*(fr\.*|friar)\)*$/i,
- "Master" => /^\(*(master)\)*$/i,
- "Sir" => /^\(*(sir)\)*$/i
- }
+ 'Capt.' => /^\(*(capt\.*|captain)\)*$/i,
+ 'Dame' => /^\(*(dame)\)*$/i,
+ 'Dr.' => /^\(*(dr\.*|doctor)\)*$/i,
+ 'Fr.' => /^\(*(fr\.*|friar|father)\)*$/i,
+ 'Hon.' => /^\(*(hon\.*|honorable)\)*$/i,
+ 'Imam' => /^\(*(imam)\)*$/i,
+ 'Ofc.' => /^\(*(ofc\.*|officer)\)*$/i,
+ 'Mr.' => /^\(*(mr\.*|mister)\)*$/i,
+ 'Mrs.' => /^\(*(mrs\.*|misses)\)*$/i,
+ 'Ms.' => /^\(*(ms\.*|miss)\)*$/i,
+ 'Rev.' => /^\(*(rev\.*|reverend)\)*$/i,
+ 'Master' => /^\(*(master)\)*$/i,
+ 'Rabbi' => /^\(*(rabbi)\)*$/i,
+ 'Sir' => /^\(*(sir)\)*$/i
+ }.freeze
SUFFIX = {
- "Sr." => /^\(*(sr\.?|senior)\)*$/i,
- "Jr." => /^\(*(jr\.?|junior)\)*$/i,
- "Esq." => /^\(*(esq\.?|esquire)\)*$/i,
- "Ph.D." => /^\(*(p\.?h\.?d\.?)\)*$/i
- }
+ 'Sr.' => /^\(*(sr\.?|senior)\)*$/i,
+ 'Jr.' => /^\(*(jr\.?|junior)\)*$/i,
+ 'Esq.' => /^\(*(esq\.?|esquire)\)*$/i,
+ 'Ph.D.' => /^\(*(p\.?h\.?d\.?)\)*$/i
+ }.freeze
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 = /^[A-Z.]+[A-Z.]+$/ # It should be at least 2 letters
+ SUFFIX_PROFESSIONAL = /^(PE|CSA|CPA|CPL|CME|CEng|OFM|CSV)$/i
+ SUFFIX_ABBREVIATION = /^[A-Z]\.?[A-Z]\.?[A-Z]?\.?$/ # 2-3 characters, possibly separated with '.'
# http://www.onlineaspect.com/2009/08/17/splitting-names/
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
end