class CpfUtils::Cpf
Attributes
numbers[R]
Acessor de leitura para os números
Public Class Methods
new(numbers)
click to toggle source
Inicializador da classe
# File lib/cpf_utils/cpf.rb, line 8 def initialize(numbers) if numbers.is_a? String numbers = numbers.split('') elsif numbers.is_a? Integer numbers = numbers.to_s.split('') end @numbers = numbers end
Public Instance Methods
check_remainder(remainder)
click to toggle source
Checa o resto da divisão
# File lib/cpf_utils/cpf.rb, line 54 def check_remainder(remainder) if remainder < 2 0 else (11 - remainder) end end
first_digit()
click to toggle source
Gera o primeiro dígito verificador
# File lib/cpf_utils/cpf.rb, line 26 def first_digit if @numbers.size == 9 value = 0 multipliers = [10,9,8,7,6,5,4,3,2] multipliers.each_with_index do |mult, index| value += @numbers[index].to_i * mult end check_remainder(value % 11) end end
generate_cpf()
click to toggle source
Gera o CPF propriamente dito
# File lib/cpf_utils/cpf.rb, line 19 def generate_cpf @numbers << first_digit @numbers << second_digit @numbers.join("") end
second_digit()
click to toggle source
Gera o segundo dígito verificador
# File lib/cpf_utils/cpf.rb, line 40 def second_digit if @numbers.size == 10 value = 0 multipliers = [11,10,9,8,7,6,5,4,3,2] multipliers.each_with_index do |mult, index| value += @numbers[index].to_i * mult end check_remainder(value % 11) end end