class CpfGenerator::Cpf

Attributes

numbers[RW]

Public Class Methods

new(numbers) click to toggle source
# File lib/cpf_generator.rb, line 23
def initialize(numbers)
  @numbers = numbers
end

Public Instance Methods

check_remainder(remainder) click to toggle source
# File lib/cpf_generator.rb, line 62
def check_remainder(remainder)
  if remainder < 2
    @numbers << 0
    0
  else
    @numbers << (11 - remainder)
    (11 - remainder)
  end
end
first_dv() click to toggle source
# File lib/cpf_generator.rb, line 40
def first_dv
  value = 0
  multipliers = [10,9,8,7,6,5,4,3,2]

  multipliers.each_with_index do |mult, index|
    value += @numbers[index] * mult
  end

  check_remainder(value % 11)
end
formatted() click to toggle source
# File lib/cpf_generator.rb, line 27
def formatted
  first_dv
  second_dv
  cpf = @numbers.join("")
  "#{cpf[0..2]}.#{cpf[3..5]}.#{cpf[6..8]}-#{cpf[9..11]}"
end
second_dv() click to toggle source
# File lib/cpf_generator.rb, line 51
def second_dv
  value = 0
  multipliers = [11,10,9,8,7,6,5,4,3,2]

  multipliers.each_with_index do |mult, index|
    value += @numbers[index] * mult
  end

  check_remainder(value % 11)
end
unformatted() click to toggle source
# File lib/cpf_generator.rb, line 34
def unformatted
  first_dv
  second_dv
  @numbers.join("")
end