Module: RandomData::Papers

Included in:
Random
Defined in:
lib/random_data/papers.rb

Overview

Method to create Brazilian CPF number

Instance Method Summary collapse

Instance Method Details

#cnpjObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/random_data/papers.rb', line 23

def cnpj
  n = Array.new(8) {rand(10)} + [0, 0, 0, 1]
  d1 = n[11]*2+n[10]*3+n[9]*4+n[8]*5+n[7]*6+n[6]*7+n[5]*8+n[4]*9+n[3]*2+n[2]*3+n[1]*4+n[0]*5
  d1 = 11 - (d1 % 11)
  d1 = 0 if d1 >= 10

  n << d1

  d2 = n[12]*2+n[11]*3+n[10]*4+n[9]*5+n[8]*6+n[7]*7+n[6]*8+n[5]*9+n[4]*2+n[3]*3+n[2]*4+n[1]*5+n[0]*6
  d2 = 11 - (d2 % 11)
  d2 = 0 if d2 >= 10

  n << d2
  n.join
end

#cpfObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/random_data/papers.rb', line 5

def cpf
  numbers = Array.new(9) {rand(10)}
  2.times do
    start = 2
    digit = 0
    for i in start..(numbers.size+1) do
      digit +=  (numbers.reverse[i-start] * i)
    end

    digit = 11 - (digit % 11)
    digit = 0 if digit >= 10

    start += 1
    numbers << digit
  end
  numbers.join
end

#formated_cnpjObject



39
40
41
42
# File 'lib/random_data/papers.rb', line 39

def formated_cnpj
  cnpj = cnpj()
  "#{cnpj[0..1]}.#{cnpj[2..4]}.#{cnpj[5..7]}/#{cnpj[8..11]}-#{cnpj[12...14]}"
end

#formated_cpfObject



44
45
46
47
# File 'lib/random_data/papers.rb', line 44

def formated_cpf
  cpf = cpf()
  "#{cpf[0..2]}.#{cpf[3..5]}.#{cpf[6..8]}-#{cpf[9..10]}"
end