class IdNumberLatam::UyDni
Attributes
digit[R]
Public Class Methods
new(id_number, opts = {})
click to toggle source
Calls superclass method
IdNumberLatam::Base::new
# File lib/id_number_latam/uy_dni.rb, line 7 def initialize(id_number, opts = {}) super @country = :uy @digit = unformat.slice(-1) end
Public Instance Methods
format()
click to toggle source
# File lib/id_number_latam/uy_dni.rb, line 17 def format dni = unformat digit = dni.slice!(-1) formatted_dni = dni.reverse.gsub(/(\d{3})(?=\d)/, '\\1.').reverse [formatted_dni, digit].join("-") end
unformat()
click to toggle source
# File lib/id_number_latam/uy_dni.rb, line 13 def unformat id_number.gsub(/\D/, "") end
valid?()
click to toggle source
# File lib/id_number_latam/uy_dni.rb, line 24 def valid? return false unless valid_length dni = unformat digit = dni.slice!(-1) (10 - (dni.chars.zip("2987634".chars).map { |p| p.map(&:to_i).inject(&:*) }.sum % 10)).to_s == digit end
valid_length()
click to toggle source
# File lib/id_number_latam/uy_dni.rb, line 33 def valid_length unformat.size == 8 end