class IdNumberLatam::Base

Attributes

country[RW]
id_number[RW]
unformatted_id_number[RW]

Public Class Methods

new(id_number, opts = {}) click to toggle source
# File lib/id_number_latam/base.rb, line 12
def initialize(id_number, opts = {})
  @id_number = id_number
  @country   = opts.delete(:country)&.to_sym
  @dni_class = get_dni_class.new(@id_number) if @country
end

Public Instance Methods

get_dni_class() click to toggle source
# File lib/id_number_latam/base.rb, line 18
def get_dni_class
  return unless @country

  country_dni_class = IdNumberLatam.constants.map(&:to_s).detect { |c| c == "#{@country.capitalize}Dni" }
  unless country_dni_class
    raise "class IdNumberLatam::#{@country.capitalize}Dni not implemented for #{@country} country code"
  end

  IdNumberLatam.const_get country_dni_class
end