Class: CnpjUtils::Cnpj
- Inherits:
-
Object
- Object
- CnpjUtils::Cnpj
- Defined in:
- lib/cnpj_utils/cnpj.rb
Instance Attribute Summary collapse
-
#numbers ⇒ Object
readonly
Acessor de leitura para os números.
Instance Method Summary collapse
-
#check_remainder(remainder) ⇒ Object
Checa o resto da divisão.
-
#first_digit ⇒ Object
Gera o primeiro dígito verificador.
-
#generate_cnpj ⇒ Object
Gera o CNPJ propriamente dito.
-
#initialize(numbers) ⇒ Cnpj
constructor
Inicializador da classe.
-
#second_digit ⇒ Object
Gera o segundo dígito verificador.
Constructor Details
Instance Attribute Details
#numbers ⇒ Object (readonly)
Acessor de leitura para os números
5 6 7 |
# File 'lib/cnpj_utils/cnpj.rb', line 5 def numbers @numbers end |
Instance Method Details
#check_remainder(remainder) ⇒ Object
Checa o resto da divisão
54 55 56 57 58 59 60 |
# File 'lib/cnpj_utils/cnpj.rb', line 54 def check_remainder(remainder) if remainder < 2 0 else (11 - remainder) end end |
#first_digit ⇒ Object
Gera o primeiro dígito verificador
26 27 28 29 30 31 32 33 34 35 36 37 |
# 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 ⇒ Object
Gera o CNPJ propriamente dito
19 20 21 22 23 |
# File 'lib/cnpj_utils/cnpj.rb', line 19 def generate_cnpj @numbers << first_digit @numbers << second_digit @numbers.join("") end |
#second_digit ⇒ Object
Gera o segundo dígito verificador
40 41 42 43 44 45 46 47 48 49 50 51 |
# 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 |