Class: String

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

Instance Method Summary collapse

Instance Method Details

#generate_cnpjObject Also known as: gerar_cnpj

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

“456983940001”.generate_cnpj => # “61287395000140”



41
42
43
44
45
46
47
48
49
50
# File 'lib/cnpj_utils/string.rb', line 41

def generate_cnpj
  if !!(self =~ /^[0-9]{12}+$/)
    final_cnpj = self

    final_cnpj << CnpjUtils::Cnpj.new(final_cnpj[0..11]).first_digit.to_s
    final_cnpj << CnpjUtils::Cnpj.new(final_cnpj[0..12]).second_digit.to_s

    final_cnpj
  end
end

#generate_cnpj_formattedObject Also known as: gerar_cnpj_formatado

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

“456983940001”.generate_cnpj_formatted => # “61.287.395/0001-40”



55
56
57
# File 'lib/cnpj_utils/string.rb', line 55

def generate_cnpj_formatted
  generate_cnpj.to_cnpj_format
end

#to_cnpj_formatObject Also known as: para_formato_cnpj

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

“61287395000140”.to_cnpj_format => # “61.287.395/0001-40”



32
33
34
35
36
# File 'lib/cnpj_utils/string.rb', line 32

def to_cnpj_format
  if self.valid_cnpj?
    "#{self[0..1]}.#{self[2..4]}.#{self[5..7]}/#{self[8..11]}-#{self[12..13]}"
  end
end

#valid_cnpj?Boolean Also known as: cnpj_valido?

Verifica se um CNPJ é válido:

“61287395000140”.valid_cnpj? => # true “61.287.395/0001-40”.valid_cnpj? => # true

Returns:

  • (Boolean)


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

def valid_cnpj?
  if valid_cnpj_mask?
    original_cnpj = self.gsub(/\.?\/?-?/,"",)
    tested_cnpj = original_cnpj[0..11]

    tested_cnpj << CnpjUtils::Cnpj.new(original_cnpj[0..11]).first_digit.to_s
    tested_cnpj << CnpjUtils::Cnpj.new(tested_cnpj[0..12]).second_digit.to_s

    tested_cnpj == original_cnpj ? true : false
  end
end

#valid_cnpj_mask?Boolean Also known as: mascara_de_cnpj_valida?

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

“61.287.395/0001-40”.valid_cnpj_mask? => # true “45.698..394/0001-54”.valid_cnpj_mask? => # false

Returns:

  • (Boolean)


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

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