class Identificamex::Nombre::NormalizadorNombre

Clase base para normalizar las cadenas de nombres y apellidos. La clase se encarga de convertir a mayúsculas las cadenas y recorre los nombres para descartar los nombres ignorados.

Los nombres ignorados deben ser provistos por las clases que hereden. Para nombres, se ignoran los siguientes: `%w[JOSE MARIA DE LA DEL LOS]`.

Ejemplo:

NormalizadorNombre.new('María del Carmen').normalizar
# => CARMEN

NormalizadorNombre.new('José Mario').normalizar
# => MARIO

NormalizadorNombre.new('María de los Ángeles').normalizar
# => ANGELES

NormalizadorNombre.new('José de Jesús').normalizar
# => JESUS

NormalizadorNombre.new('María').normalizar
# => MARIA

NormalizadorNombre.new('José Mario').normalizar
# => MARIO

NormalizadorNombre.new('José').normalizar
# => JOSE

Public Class Methods

new(nombre) click to toggle source
# File lib/identificamex/nombre/normalizador_nombre.rb, line 39
def initialize(nombre)
  @nombre = mayusculas(nombre)
end

Public Instance Methods

normalizar() click to toggle source
# File lib/identificamex/nombre/normalizador_nombre.rb, line 43
def normalizar
  nombre_aceptado || primer_nombre
end

Private Instance Methods

nombre_aceptado() click to toggle source
# File lib/identificamex/nombre/normalizador_nombre.rb, line 49
def nombre_aceptado
  (nombres - nombres_ignorados).first
end
nombres() click to toggle source
# File lib/identificamex/nombre/normalizador_nombre.rb, line 61
def nombres
  @nombres ||= @nombre.split
end
nombres_ignorados() click to toggle source
# File lib/identificamex/nombre/normalizador_nombre.rb, line 57
def nombres_ignorados
  %w[JOSE MARIA DE LA DEL LOS]
end
primer_nombre() click to toggle source
# File lib/identificamex/nombre/normalizador_nombre.rb, line 53
def primer_nombre
  nombres.first
end