class Identificamex::Nombre::NombreCompleto

Public Class Methods

new(params) click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 10
def initialize(params)
  @nombre                        = mayusculas(params[:nombre])
  @primer_apellido               = mayusculas(params[:primer_apellido])
  @segundo_apellido              = mayusculas(params[:segundo_apellido])
  @nombre_simplificado           = normalizar_nombre(@nombre)
  @primer_apellido_simplificado  = normalizar_apellido(@primer_apellido)
  @segundo_apellido_simplificado = normalizar_apellido(@segundo_apellido)
end

Public Instance Methods

siglas() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 19
def siglas
  @siglas ||= PalabraInconveniente.convertir(extraer_siglas)
end
to_s() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 23
def to_s
  "#{@primer_apellido} #{@segundo_apellido} #{@nombre}"
end

Private Instance Methods

extraer_siglas() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 39
def extraer_siglas
  if siglas_apellidos_completa?
    siglas_apellidos + primera_letra_nombre
  else
    siglas_apellidos + primeras_dos_letras_nombre
  end
end
generar_siglas_apellidos() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 55
def generar_siglas_apellidos
  return @segundo_apellido_simplificado[0, 2] if sin_primer_apellido?
  return @primer_apellido_simplificado[0, 2] if sin_segundo_apellido?
  primera_letra_primer_apellido +
    primera_vocal_interna_primer_apellido.to_s +
    primera_letra_segundo_apellido
end
normalizar_apellido(apellido) click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 35
def normalizar_apellido(apellido)
  NormalizadorApellido.new(apellido).normalizar if apellido
end
normalizar_nombre(nombre) click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 31
def normalizar_nombre(nombre)
  NormalizadorNombre.new(nombre).normalizar if nombre
end
primera_letra_nombre() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 86
def primera_letra_nombre
  @nombre_simplificado[0] if @nombre_simplificado.present?
end
primera_letra_primer_apellido() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 71
def primera_letra_primer_apellido
  @primer_apellido_simplificado[0] if @primer_apellido_simplificado.present?
end
primera_letra_segundo_apellido() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 82
def primera_letra_segundo_apellido
  @segundo_apellido_simplificado[0] if @segundo_apellido_simplificado.present?
end
primera_vocal_interna_primer_apellido() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 75
def primera_vocal_interna_primer_apellido
  return unless @primer_apellido_simplificado.present?
  apellido = @primer_apellido_simplificado[1..-1]
  posicion_primera_vocal = apellido =~ /[AEIOU]/
  apellido[posicion_primera_vocal] if posicion_primera_vocal
end
primeras_dos_letras_nombre() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 90
def primeras_dos_letras_nombre
  @nombre_simplificado[0, 2] if @nombre_simplificado.present?
end
siglas_apellidos() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 47
def siglas_apellidos
  @siglas_apellidos ||= generar_siglas_apellidos
end
siglas_apellidos_completa?() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 51
def siglas_apellidos_completa?
  siglas_apellidos.length == 3
end
sin_primer_apellido?() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 63
def sin_primer_apellido?
  @primer_apellido_simplificado.nil?
end
sin_segundo_apellido?() click to toggle source
# File lib/identificamex/nombre/nombre_completo.rb, line 67
def sin_segundo_apellido?
  @segundo_apellido_simplificado.nil?
end