Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/cpf_utils/string.rb

Instance Method Summary collapse

Instance Method Details

#blacklisted_cpf?Boolean

Verifica se o CPF é faz parte da blacklist A blacklist consiste em CPFs inválidos como ‘111.111.111-11’ e seus derivados

“11111111111”.blacklisted_cpf? => # true

Returns:

  • (Boolean)


69
70
71
72
73
# File 'lib/cpf_utils/string.rb', line 69

def blacklisted_cpf?
  wihout_mask = self.gsub(/\.?-?/,"",)
  first_number = wihout_mask[0]
  wihout_mask.count(first_number) == 11 ? true : false
end

#generate_cpfObject Also known as: gerar_cpf

Para gerar um número de CPF a partir de um número candidato:

“456983948”.generate_cpf => # “45698394823”



46
47
48
49
50
51
52
53
54
55
# File 'lib/cpf_utils/string.rb', line 46

def generate_cpf
  if !!(self =~ /^[0-9]{9}+$/)
    final_cpf = self

    final_cpf << CpfUtils::Cpf.new(final_cpf[0..8]).first_digit.to_s
    final_cpf << CpfUtils::Cpf.new(final_cpf[0..9]).second_digit.to_s

    final_cpf
  end
end

#generate_cpf_formattedObject Also known as: gerar_cpf_formatado

Gera um número de CPF formatado a partir de um número candidato:

“456983948”.generate_cpf_formatted => # “456.983.948-23”



60
61
62
# File 'lib/cpf_utils/string.rb', line 60

def generate_cpf_formatted
  generate_cpf.to_cpf_format
end

#to_cpf_formatObject Also known as: para_formato_cpf

Para formatar um número válido de CPF:

“45698394823”.to_cpf_format => # “456.983.948-23”



35
36
37
38
39
40
41
# File 'lib/cpf_utils/string.rb', line 35

def to_cpf_format
   cleaned_cpf = self.gsub(/\.?-?/,"",)
  
  if cleaned_cpf.valid_cpf?
    "#{cleaned_cpf[0..2]}.#{cleaned_cpf[3..5]}.#{cleaned_cpf[6..8]}-#{cleaned_cpf[9..11]}"
  end
end

#valid_cpf?Boolean Also known as: cpf_valido?

Verifica se um CPF é válido:

“47238051923”.valid_cpf? => # true “472.380.519-23”.valid_cpf? => # true

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/cpf_utils/string.rb', line 17

def valid_cpf?
  if valid_cpf_mask?
    original_cpf = self.gsub(/\.?-?/,"",)
    tested_cpf = original_cpf[0..8]

    tested_cpf << CpfUtils::Cpf.new(original_cpf[0..8]).first_digit.to_s
    tested_cpf << CpfUtils::Cpf.new(tested_cpf[0..9]).second_digit.to_s

    valid_cpf = (tested_cpf == original_cpf) ? true : false
    blacklisted_cpf = !self.blacklisted_cpf?

    (valid_cpf == blacklisted_cpf) ? true : false
  end
end

#valid_cpf_mask?Boolean Also known as: mascara_de_cpf_valida?

Verifica se uma máscara de CPF é válida:

“456.983.948-23”.valid_cpf_mask? => # true “456.983..948-23”.valid_cpf_mask? => # false

Returns:

  • (Boolean)


7
8
9
10
11
# File 'lib/cpf_utils/string.rb', line 7

def valid_cpf_mask?
  without_mask = !!(self =~ /^[0-9]{11}+$/)
  with_mask = !!(self =~ /^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
  with_mask || without_mask
end