class CnpjUtils::Cnpj
Attributes
numbers[R]
Acessor de leitura para os números
Public Class Methods
new(numbers)
click to toggle source
Inicializador da classe
# File lib/cnpj_utils/cnpj.rb, line 8 def initialize(numbers) if numbers.is_a? String numbers = numbers.split('') elsif numbers.is_a? Integer numbers = numbers.to_s.split('') end @numbers = numbers end
Public Instance Methods
check_remainder(remainder)
click to toggle source
Checa o resto da divisão
# File lib/cnpj_utils/cnpj.rb, line 54 def check_remainder(remainder) if remainder < 2 0 else (11 - remainder) end end
first_digit()
click to toggle source
Gera o primeiro dígito verificador
# File lib/cnpj_utils/cnpj.rb, line 26 def first_digit if @numbers.size == 12 value = 0 multipliers = [5,4,3,2,9,8,7,6,5,4,3,2] multipliers.each_with_index do |mult, index| value += @numbers[index].to_i * mult end check_remainder(value % 11) end end
generate_cnpj()
click to toggle source
Gera o CNPJ propriamente dito
# File lib/cnpj_utils/cnpj.rb, line 19 def generate_cnpj @numbers << first_digit @numbers << second_digit @numbers.join("") end
second_digit()
click to toggle source
Gera o segundo dígito verificador
# File lib/cnpj_utils/cnpj.rb, line 40 def second_digit if @numbers.size == 13 value = 0 multipliers = [6,5,4,3,2,9,8,7,6,5,4,3,2] multipliers.each_with_index do |mult, index| value += @numbers[index].to_i * mult end check_remainder(value % 11) end end