Class: Laranja::CPF

Inherits:
Base
  • Object
show all
Defined in:
lib/laranja/cpf.rb

Class Method Summary collapse

Methods inherited from Base

strf

Class Method Details

.cpf(uf = nil) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/laranja/cpf.rb', line 4

def self.cpf(uf = nil)
  cpf = '########U'.sub(/U/, uf.nil? ? '#' : uf_code(uf)).gsub(/#/) { rand(10).to_s }
  v = [(0..8).inject(0) { |sum, i| sum + cpf[i].to_i * (10 - i) } % 11]
  v[0] = v[0] < 2 ? 0 : 11 - v[0]
  v[1] = ((0..8).inject(0) { |sum, i| sum + cpf[i].to_i * (11 - i) } + v[0] * 2) % 11
  v[1] = v[1] < 2 ? 0 : 11 - v[1]
  cpf += v.join
end

.formatted(uf = nil) ⇒ Object



13
14
15
16
# File 'lib/laranja/cpf.rb', line 13

def self.formatted(uf = nil)
  c = cpf(uf)
  '%03d.%03d.%03d-%02d' % [ c[0..2].to_i, c[3..5].to_i, c[6..8].to_i, c[9..10].to_i ]
end