module ValidatesCpf::Cpf
Public Class Methods
valid?(value)
click to toggle source
# File lib/validates_cpf/cpf.rb, line 5 def self.valid?(value) value.gsub!(/[^0-9]/, '') return false if @@invalid_cpfs.member?(value) digit = value.slice(-2, 2) control = '' if value.size == 11 factor = 0 2.times do |i| sum = 0 9.times do |j| sum += value.slice(j, 1).to_i * (10 + i - j) end sum += (factor * 2) if i == 1 factor = (sum * 10) % 11 factor = 0 if factor == 10 control << factor.to_s end end control == digit end