class Identificamex::Nombre::RazonSocial

Public Class Methods

new(razon_social) click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 7
def initialize(razon_social)
  @razon_social = normalizar(razon_social)
end

Public Instance Methods

siglas() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 11
def siglas
  tres_letras_de_razon_social
end
to_s() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 15
def to_s
  @razon_social
end

Private Instance Methods

abreviaturas() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 63
def abreviaturas
  [
    /COMPAÑIA/,
    /CIA/,
    /\ASOCIEDAD/,
    /\ASOC/,
    / S EN N ?C\z/,
    / S EN C\z/,
    / S DE R ?L\z/,
    / S EN C POR A\z/,
    / S ?A\z/,
    / S ?A DE C ?V\z/,
    / S ?N ?C\z/,
    / S ?C\z/,
    / A ?C\z/,
    / A EN P\z/,
    / S ?C ?L\z/,
    / S ?C DE R ?L DE C ?V\z/,
    / S ?C ?S\z/
  ]
end
eliminar_abreviaturas(str) click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 55
def eliminar_abreviaturas(str)
  abreviaturas.inject(str) { |str, a| str.gsub(a, '') }.strip
end
normalizar(str) click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 21
def normalizar(str)
  eliminar_abreviaturas(mayusculas(str))
end
palabras_a_considerar() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 33
def palabras_a_considerar
  @palabras_a_considerar ||= palabras_razon_social[0, 3]
end
palabras_especiales() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 59
def palabras_especiales
  %w[DE Y DEL LOS LAS LA EL PARA EN]
end
palabras_razon_social() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 51
def palabras_razon_social
  @razon_social.split - palabras_especiales
end
siglas_dos_palabras() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 41
def siglas_dos_palabras
  palabras_a_considerar[0][0] + palabras_a_considerar[1][0, 2]
end
siglas_palabra_unica() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 45
def siglas_palabra_unica
  letras = palabras_a_considerar.first[0, 3]
  letras += "X" * (3 - letras.length) if letras.length < 3
  letras
end
siglas_tres_palabras() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 37
def siglas_tres_palabras
  palabras_a_considerar.map{|l| l[0]}.join
end
tres_letras_de_razon_social() click to toggle source
# File lib/identificamex/nombre/razon_social.rb, line 25
def tres_letras_de_razon_social
  case palabras_a_considerar.count
  when 3 then siglas_tres_palabras
  when 2 then siglas_dos_palabras
  else siglas_palabra_unica
  end
end