class Identificamex::Rfc::RfcGenerator
Clase responsable de generar un RFC. Recibe el rfc y un `hash` con los valores del nombre, primer apellido, segundo apellido y fecha de nacimiento en caso de ser una persona física, o bien, razón social y fecha de creación en caso de ser una persona moral.
Ejemplos:
generator = RfcGenerator.new(nombre: 'Juan', primer_apellido: 'Barrios', segundo_apellido: 'Fernández', fecha_nacimiento: Date.new(1970, 12, 13)) generator.rfc # => 'BAFJ701213' validator = RfcGenerator.new(nombre: 'Juan', primer_apellido: 'Martínez', segundo_apellido: nil, fecha_nacimiento: Date.new(1970, 12, 13)) generator.rfc # => 'MAJU701213' generator = RfcGenerator.new(razon_social: 'Sonora Industrial Azucarera, S. de R.L', fecha_creacion: Date.new(1983, 03, 05)) generator.rfc # => 'SIA8303054L5' generator = RfcGenerator.new(razon_social: 'Los Viajes Internacionales de Marco Polo, S.A.', fecha_creacion: Date.new(1983, 03, 05)) generator.rfc # => 'VIM8303056B6'
Public Class Methods
new(params)
click to toggle source
# File lib/identificamex/rfc/rfc_generator.rb, line 41 def initialize(params) @nombre_completo = build_nombre_completo(params) @razon_social = build_razon_social(params) @fecha_nacimiento = params[:fecha_nacimiento] @fecha_creacion = params[:fecha_creacion] end
Public Instance Methods
rfc()
click to toggle source
# File lib/identificamex/rfc/rfc_generator.rb, line 48 def rfc @rfc ||= generar_rfc end
Private Instance Methods
build_nombre_completo(params)
click to toggle source
# File lib/identificamex/rfc/rfc_generator.rb, line 60 def build_nombre_completo(params) hash = params_for_nombre(params) if hash.values.any?(&:present?) ::Identificamex::Nombre::NombreCompleto.new(hash) end end
generar_rfc()
click to toggle source
generar_rfc_base()
click to toggle source
# File lib/identificamex/rfc/rfc_generator.rb, line 77 def generar_rfc_base RfcBase.new( nombre: @nombre_completo || @razon_social, fecha_nacimiento: @fecha_nacimiento || @fecha_creacion ) end
homoclave()
click to toggle source
# File lib/identificamex/rfc/rfc_generator.rb, line 84 def homoclave @homoclave ||= Homoclave.new(@rfc_base) end
params_for_nombre(params)
click to toggle source
# File lib/identificamex/rfc/rfc_generator.rb, line 88 def params_for_nombre(params) accepted_keys = %i[nombre primer_apellido segundo_apellido] params.reject{|k, v| !(accepted_keys.member?(k)) } end
rfc_base()
click to toggle source
# File lib/identificamex/rfc/rfc_generator.rb, line 73 def rfc_base @rfc_base ||= generar_rfc_base end