Class: CpfGenerator::Cpf

Inherits:
Object
  • Object
show all
Defined in:
lib/cpf_generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(numbers) ⇒ Cpf

Returns a new instance of Cpf.



23
24
25
# File 'lib/cpf_generator.rb', line 23

def initialize(numbers)
  @numbers = numbers
end

Instance Attribute Details

#numbersObject

Returns the value of attribute numbers.



21
22
23
# File 'lib/cpf_generator.rb', line 21

def numbers
  @numbers
end

Instance Method Details

#check_remainder(remainder) ⇒ Object



62
63
64
65
66
67
68
69
70
# 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_dvObject



40
41
42
43
44
45
46
47
48
49
# 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

#formattedObject



27
28
29
30
31
32
# 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_dvObject



51
52
53
54
55
56
57
58
59
60
# 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

#unformattedObject



34
35
36
37
38
# File 'lib/cpf_generator.rb', line 34

def unformatted
  first_dv
  second_dv
  @numbers.join("")
end