Module: CpfUtilsDio

Defined in:
lib/cpf_utils_dio.rb,
lib/cpf_utils_dio/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.cpf_valido?(cpf) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/cpf_utils_dio.rb', line 12

def self.cpf_valido?(cpf)
  cpf = cpf.to_s.scan(/\d/).map(&:to_i)

  return false unless cpf.length == 11
  return false if cpf.uniq.length == 1

  sum1 = (0..8).inject(0) { |sum, i| sum + cpf[i] * (10 - i) }
  sum2 = (0..9).inject(0) { |sum, i| sum + cpf[i] * (11 - i) }

  dv1 = sum1 % 11
  dv1 = dv1 < 2 ? 0 : 11 - dv1

  dv2 = sum2 % 11
  dv2 = dv2 < 2 ? 0 : 11 - dv2

  cpf[9] == dv1 && cpf[10] == dv2
end

.formatar(cpf) ⇒ Object



8
9
10
# File 'lib/cpf_utils_dio.rb', line 8

def self.formatar(cpf)
  cpf.gsub(/(\d{3})(\d{3})(\d{3})(\d{2})/, '\1.\2.\3-\4')
end