Class: Laranja::CPF
Class Method Summary collapse
Methods inherited from Base
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 |