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