cnpj_utils 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4f5a743199e16a48ece16505917acefc348c166f
4
+ data.tar.gz: 7741e5bf1b25670f57d2190a022bf45ecf5e8ac0
5
+ SHA512:
6
+ metadata.gz: 614863a451a1ecae3ad92c3258f26e3f316ff0ddcc08975db905a5c28d674a97cec56164637b225102018c147d1e177d696bd4d49d9758960920a3e8688e0490
7
+ data.tar.gz: 606c5c76c4c029995c64c5557280027a64556d481ad23ec0c16d48855685d8f54232cd3bed82ff1d87683a5392b725b027df86a0f41b0756c85e32aeaa7f22c4
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format nested
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ rvm:
2
+ - 1.9.2
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
6
+ script: "bundle exec rspec spec"
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in cnpj_utils.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Jackson Pires
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # CnpjUtils
2
+
3
+ CnpjUtils é uma suite de funcionalidades para CNPJ.
4
+ O CnpjUtils é capaz de gerar CNPJ para testes no formado tradicional ou apenas numérico, testa se determinado número de CNPJ é válido, gera dígitos verificadores para determinado número candidato a CNPJ, dentre outras coisas.
5
+
6
+ ## Instalação
7
+
8
+ Adicione essa linha na Gemfile da sua aplicação:
9
+
10
+ gem 'cnpj_utils'
11
+
12
+ E então execute:
13
+
14
+ $ bundle
15
+
16
+ Ou instale você mesmo, conforme abaixo:
17
+
18
+ $ gem install cnpj_utils
19
+
20
+ ## Uso
21
+
22
+ O CnpjUtils é muito fácil de usar, por exempo:
23
+
24
+ # Para gerar um número de CNPJ:
25
+ CnpjUtils.cnpj => # "61287395000140"
26
+
27
+ # Para gerar um CNPJ formatado:
28
+ CnpjUtils.cnpj_formatted => # "61.287.395/0001-40"
29
+
30
+ # Para verificar se um CNPJ é válido:
31
+ CnpjUtils.valid_cnpj?("61287395000140") => # true
32
+ CnpjUtils.valid_cnpj?(61287395000140) => # true
33
+ CnpjUtils.valid_cnpj?("61.287.395/0001-40") => # true
34
+
35
+ # Outra forma de verificar se um CNPJ é válido:
36
+ "61287395000140".valid_cnpj? => # true
37
+ "61.287.395/0001-40".valid_cnpj? => # true
38
+
39
+ # Para verificar se uma máscara de CNPJ é válida:
40
+ "61.287.395/0001-40".valid_cnpj_mask? => # true
41
+ "61.287..395/0001-40".valid_cnpj_mask? => # false
42
+
43
+ # Para formatar um número válido de CNPJ:
44
+ "61287395000140".to_cnpj_format => # "61.287.395/0001-40"
45
+
46
+ # Para gerar um número de CNPJ a partir de um número candidato de 12 dígitos:
47
+ "612873950001".generate_cnpj => # "61287395000140"
48
+
49
+ # Para gerar um número de CNPJ formatado a partir de um número candidato de 12 dígitos:
50
+ "612873950001".generate_cnpj_formatted => # "61.287.395/0001-40"
51
+
52
+ Também é possível usar métodos em português:
53
+
54
+ # Para gerar um número de CNPJ:
55
+ CnpjUtils.cnpj => # "61287395000140"
56
+
57
+ # Para gerar um CNPJ formatado:
58
+ CnpjUtils.cnpj_formatado => # "61.287.395/0001-40"
59
+
60
+ # Para verificar se um CNPJ é válido:
61
+ CnpjUtils.cnpj_valido?("61287395000140") => # true
62
+ CnpjUtils.cnpj_valido?(61287395000140) => # true
63
+ CnpjUtils.cnpj_valido?("61.287.395/0001-40") => # true
64
+
65
+ # Outra forma de verificar se um CNPJ é válido:
66
+ "61287395000140".cnpj_valido? => # true
67
+ "61.287.395/0001-40".cnpj_valido? => # true
68
+
69
+ # Para verificar se uma máscara de CNPJ é válida:
70
+ "61.287.395/0001-40".mascara_de_cnpj_valida? => # true
71
+ "61.287..395/0001-40".mascara_de_cnpj_valida? => # false
72
+
73
+ # Para formatar um número válido de CNPJ:
74
+ "61287395000140".para_formato_cnpj => # "61.287.395/0001-40"
75
+
76
+ # Para gerar um número de CNPJ a partir de um número candidato de 12 dígitos:
77
+ "612873950001".gerar_cnpj => # "61287395000140"
78
+
79
+ # Para gerar um número de CNPJ formatado a partir de um número candidato de 12 dígitos:
80
+ "612873950001".gerar_cnpj_formatado => # "61.287.395/0001-40"
81
+
82
+ ## Contribuindo
83
+
84
+ 1. Faça um Fork
85
+ 2. Crie um branch para a nova funcionalidade (`git checkout -b minha-nova-funcionalidade`)
86
+ 3. Faça o commit de suas alterações (`git commit -am 'Adicionada nova funcionalidade'`)
87
+ 4. Faça um push da sua nova funconalidade (`git push origin minha-nova-funcionalidade`)
88
+ 5. Submeta uma nova Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cnpj_utils/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "cnpj_utils"
8
+ spec.version = CnpjUtils::VERSION
9
+ spec.authors = ["Jackson Pires"]
10
+ spec.email = ["jackson.pires@gmail.com"]
11
+ spec.description = %q{Uma suíte de funcionalidades para o CNPJ.}
12
+ spec.summary = %q{Gera CNPJ para testes no formado tradicional ou apenas
13
+ numérico, testa se determinado número de CNPJ
14
+ é válido, além muitas outras funcionalidades descritas
15
+ na documentação.}
16
+ spec.homepage = "https://github.com/jacksonpires/cnpj_utils"
17
+ spec.license = "MIT"
18
+
19
+ spec.files = `git ls-files`.split($/)
20
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec", "~> 2.14.1"
27
+ end
@@ -0,0 +1,62 @@
1
+ module CnpjUtils
2
+ class Cnpj
3
+
4
+ # Acessor de leitura para os números
5
+ attr_reader :numbers
6
+
7
+ # Inicializador da classe
8
+ def initialize(numbers)
9
+ if numbers.is_a? String
10
+ numbers = numbers.split('')
11
+ elsif numbers.is_a? Fixnum
12
+ numbers = numbers.to_s.split('')
13
+ end
14
+
15
+ @numbers = numbers
16
+ end
17
+
18
+ # Gera o CNPJ propriamente dito
19
+ def generate_cnpj
20
+ @numbers << first_digit
21
+ @numbers << second_digit
22
+ @numbers.join("")
23
+ end
24
+
25
+ # Gera o primeiro dígito verificador
26
+ def first_digit
27
+ if @numbers.size == 12
28
+ value = 0
29
+ multipliers = [5,4,3,2,9,8,7,6,5,4,3,2]
30
+
31
+ multipliers.each_with_index do |mult, index|
32
+ value += @numbers[index].to_i * mult
33
+ end
34
+
35
+ check_remainder(value % 11)
36
+ end
37
+ end
38
+
39
+ # Gera o segundo dígito verificador
40
+ def second_digit
41
+ if @numbers.size == 13
42
+ value = 0
43
+ multipliers = [6,5,4,3,2,9,8,7,6,5,4,3,2]
44
+
45
+ multipliers.each_with_index do |mult, index|
46
+ value += @numbers[index].to_i * mult
47
+ end
48
+
49
+ check_remainder(value % 11)
50
+ end
51
+ end
52
+
53
+ # Checa o resto da divisão
54
+ def check_remainder(remainder)
55
+ if remainder < 2
56
+ 0
57
+ else
58
+ (11 - remainder)
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,73 @@
1
+ class String
2
+
3
+ # Verifica se uma máscara de CNPJ é válida:
4
+ #
5
+ # "61.287.395/0001-40".valid_cnpj_mask? => # true
6
+ # "45.698..394/0001-54".valid_cnpj_mask? => # false
7
+ def valid_cnpj_mask?
8
+ without_mask = !!(self =~ /^[0-9]{14}+$/)
9
+ with_mask = !!(self =~ /^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
10
+ with_mask || without_mask
11
+ end
12
+
13
+ # Verifica se um CNPJ é válido:
14
+ #
15
+ # "61287395000140".valid_cnpj? => # true
16
+ # "61.287.395/0001-40".valid_cnpj? => # true
17
+ def valid_cnpj?
18
+ if valid_cnpj_mask?
19
+ original_cnpj = self.gsub(/\.?\/?/,"",)
20
+ tested_cnpj = original_cnpj[0..11]
21
+
22
+ tested_cnpj << CnpjUtils::Cnpj.new(original_cnpj[0..11]).first_digit.to_s
23
+ tested_cnpj << CnpjUtils::Cnpj.new(tested_cnpj[0..12]).second_digit.to_s
24
+
25
+ tested_cnpj == original_cnpj ? true : false
26
+ end
27
+ end
28
+
29
+ # Para formatar um número válido de CNPJ:
30
+ #
31
+ # "61287395000140".to_cnpj_format => # "61.287.395/0001-40"
32
+ def to_cnpj_format
33
+ if self.valid_cnpj?
34
+ "#{self[0..1]}.#{self[2..4]}.#{self[5..7]}/#{self[8..11]}-#{self[12..13]}"
35
+ end
36
+ end
37
+
38
+ # Para gerar um número de CNPJ a partir de um número candidato:
39
+ #
40
+ # "456983940001".generate_cnpj => # "61287395000140"
41
+ def generate_cnpj
42
+ if !!(self =~ /^[0-9]{12}+$/)
43
+ final_cnpj = self
44
+
45
+ final_cnpj << CnpjUtils::Cnpj.new(final_cnpj[0..11]).first_digit.to_s
46
+ final_cnpj << CnpjUtils::Cnpj.new(final_cnpj[0..12]).second_digit.to_s
47
+
48
+ final_cnpj
49
+ end
50
+ end
51
+
52
+ # Gera um número de CNPJ formatado a partir de um número candidato:
53
+ #
54
+ # "456983940001".generate_cnpj_formatted => # "61.287.395/0001-40"
55
+ def generate_cnpj_formatted
56
+ generate_cnpj.to_cnpj_format
57
+ end
58
+
59
+ # Apelido 'mascara_de_cnpj_valida' para o método valid_cnpj_mask
60
+ alias_method :mascara_de_cnpj_valida?, :valid_cnpj_mask?
61
+
62
+ # Apelido 'cnpj_valido?' para o método valid_cnpj?
63
+ alias_method :cnpj_valido?, :valid_cnpj?
64
+
65
+ # Apelido 'para_formato_cnpj' para o método to_cnpj_format
66
+ alias_method :para_formato_cnpj, :to_cnpj_format
67
+
68
+ # Apelido 'gerar_cnpj' para o método generate_cnpj
69
+ alias_method :gerar_cnpj, :generate_cnpj
70
+
71
+ # Apelido 'gerar_cnpj_formatado' para o método generate_cnpj_formatted
72
+ alias_method :gerar_cnpj_formatado, :generate_cnpj_formatted
73
+ end
@@ -0,0 +1,3 @@
1
+ module CnpjUtils
2
+ VERSION = "1.0.0"
3
+ end
data/lib/cnpj_utils.rb ADDED
@@ -0,0 +1,58 @@
1
+ require "cnpj_utils/version"
2
+ require "cnpj_utils/string"
3
+ require "cnpj_utils/cnpj"
4
+
5
+ module CnpjUtils
6
+
7
+ # Gera um número de CNPJ.
8
+ #
9
+ # Exemplo:
10
+ # CnpjUtils.cnpj => # "61287395000140"
11
+ def self.cnpj
12
+ Cnpj.new(sample_numbers).generate_cnpj
13
+ end
14
+
15
+ # Gera um número de Cnpj formatado.
16
+ #
17
+ # Exemplo:
18
+ # CnpjUtils.cnpj_formatted => # "61.287.395/0001-40"
19
+ def self.cnpj_formatted
20
+ Cnpj.new(sample_numbers).generate_cnpj.to_cnpj_format
21
+ end
22
+
23
+ # Gera um número de Cnpj formatado.
24
+ #
25
+ # Exemplo:
26
+ # CnpjUtils.cnpj_formatado => # "61.287.395/0001-40"
27
+ def self.cnpj_formatado
28
+ self.cnpj_formatted
29
+ end
30
+
31
+ # Verifica se um Cnpj é válido.
32
+ #
33
+ # Exemplo:
34
+ # CnpjUtils.valid_cnpj?(61287395000140) => # true
35
+ # CnpjUtils.valid_cnpj?("61287395000140") => # true
36
+ # CnpjUtils.valid_cnpj?("61.287.395/0001-40") => # true
37
+ def self.valid_cnpj?(cnpj_number)
38
+ cnpj_number.to_s.valid_cnpj?
39
+ end
40
+
41
+ # Verifica se um Cnpj é válido.
42
+ #
43
+ # Exemplo:
44
+ # CnpjUtils.cnpj_valido?(61287395000140) => # true
45
+ # CnpjUtils.cnpj_valido?("61287395000140") => # true
46
+ # CnpjUtils.cnpj_valido?("61.287.395/0001-40") => # true
47
+ def self.cnpj_valido?(cnpj_number)
48
+ self.valid_cnpj?(cnpj_number)
49
+ end
50
+
51
+ private
52
+
53
+ # Sorteia 12 números para compor um novo Cnpj
54
+ def self.sample_numbers
55
+ cnpj_candidate = [*0..9].sample(8)
56
+ cnpj_candidate.concat [0,0,0,1]
57
+ end
58
+ end
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+
3
+ describe CnpjUtils do
4
+
5
+ context 'CnpjUtils::Cnpj' do
6
+
7
+ it "#initialize - Text" do
8
+ cnpj = CnpjUtils::Cnpj.new("123456780001")
9
+ expect(cnpj.numbers).to be_a_kind_of(Array)
10
+ expect(cnpj.numbers.size).to eql(12)
11
+ end
12
+
13
+ it "#initialize - Fixnum" do
14
+ cnpj = CnpjUtils::Cnpj.new(123456780001)
15
+ expect(cnpj.numbers).to be_a_kind_of(Array)
16
+ expect(cnpj.numbers.size).to eql(12)
17
+ end
18
+
19
+ it "#initialize - Array" do
20
+ cnpj = CnpjUtils::Cnpj.new([1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 1])
21
+ expect(cnpj.numbers).to be_a_kind_of(Array)
22
+ expect(cnpj.numbers.size).to eql(12)
23
+ end
24
+
25
+ it "#generate_cnpj" do
26
+ cnpj = CnpjUtils::Cnpj.new("123456780001")
27
+ complete_cnpj = cnpj.generate_cnpj
28
+ expect(complete_cnpj.size).to eql(14)
29
+ end
30
+
31
+ it "#first_digit" do
32
+ cnpj = CnpjUtils::Cnpj.new("612873950001")
33
+ first_digit = cnpj.first_digit
34
+ expect(first_digit).to eql(4)
35
+ end
36
+
37
+ it "#first_digit - false" do
38
+ cnpj = CnpjUtils::Cnpj.new("123")
39
+ first_digit = cnpj.first_digit
40
+ expect(first_digit).to be_false
41
+ end
42
+
43
+ it "#second_digit" do
44
+ cnpj = CnpjUtils::Cnpj.new("6128739500014")
45
+ second_digit = cnpj.second_digit
46
+ expect(second_digit).to eql(0)
47
+ end
48
+
49
+ it "#second_digit - false" do
50
+ cnpj = CnpjUtils::Cnpj.new("123")
51
+ second_digit = cnpj.second_digit
52
+ expect(second_digit).to be_false
53
+ end
54
+
55
+ it "#check_remainder" do
56
+ cnpj = CnpjUtils::Cnpj.new("123456780001")
57
+ expect(cnpj.check_remainder(0)).to eql(0)
58
+ expect(cnpj.check_remainder(1)).to eql(0)
59
+ expect(cnpj.check_remainder(2)).to eql(9)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,75 @@
1
+ require "spec_helper"
2
+
3
+ describe String do
4
+ it "#valid_cnpj_mask?" do
5
+ expect("61.287.395/0001-40".valid_cnpj_mask?).to be_true
6
+ expect("61287395000140".valid_cnpj_mask?).to be_true
7
+ end
8
+
9
+ it "#mascara_de_cnpj_valida?" do
10
+ expect("61.287.395/0001-40".mascara_de_cnpj_valida?).to be_true
11
+ expect("61287395000140".mascara_de_cnpj_valida?).to be_true
12
+ end
13
+
14
+ it "#valid_cnpj_mask? - be false" do
15
+ expect("45.698.394//0001-54".valid_cnpj_mask?).to be_false
16
+ expect("45.698..394/0001-54".valid_cnpj_mask?).to be_false
17
+ expect("45.698.394/00O1-54".valid_cnpj_mask?).to be_false
18
+ end
19
+
20
+ it "#mascara_de_cnpj_valida? - be false" do
21
+ expect("45.698.394//0001-54".mascara_de_cnpj_valida?).to be_false
22
+ expect("45.698..394/0001-54".mascara_de_cnpj_valida?).to be_false
23
+ expect("45.698.394/00O1-54".mascara_de_cnpj_valida?).to be_false
24
+ end
25
+
26
+ it "#valid_cnpj?" do
27
+ cnpj = CnpjUtils.cnpj
28
+ expect(cnpj.valid_cnpj?).to be_true
29
+ end
30
+
31
+ it "#cnpj_valido?" do
32
+ cnpj = CnpjUtils.cnpj
33
+ expect(cnpj.cnpj_valido?).to be_true
34
+ end
35
+
36
+ it "#to_cnpj_format?" do
37
+ cnpj = CnpjUtils.cnpj
38
+ expect(cnpj.to_cnpj_format).to match(/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
39
+ end
40
+
41
+ it "#para_formato_cnpj?" do
42
+ cnpj = CnpjUtils.cnpj
43
+ expect(cnpj.para_formato_cnpj).to match(/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
44
+ end
45
+
46
+ it "#generate_cnpj" do
47
+ valid_cnpj = CnpjUtils.cnpj
48
+ final_cnpj = valid_cnpj[0..11].generate_cnpj
49
+
50
+ expect(final_cnpj).to be_a_kind_of(String)
51
+ expect(final_cnpj.length).to eql(14)
52
+ end
53
+
54
+ it "#gerar_cnpj" do
55
+ valid_cnpj = CnpjUtils.cnpj
56
+ final_cnpj = valid_cnpj[0..11].gerar_cnpj
57
+
58
+ expect(final_cnpj).to be_a_kind_of(String)
59
+ expect(final_cnpj.length).to eql(14)
60
+ end
61
+
62
+ it "#gerar_cnpj_formatado" do
63
+ valid_cnpj = CnpjUtils.cnpj
64
+ final_cnpj = valid_cnpj[0..11].gerar_cnpj_formatado
65
+
66
+ expect(final_cnpj).to match(/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
67
+ end
68
+
69
+ it "#generate_cnpj_formatted" do
70
+ valid_cnpj = CnpjUtils.cnpj
71
+ final_cnpj = valid_cnpj[0..11].generate_cnpj_formatted
72
+
73
+ expect(final_cnpj).to match(/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
74
+ end
75
+ end
@@ -0,0 +1,41 @@
1
+ require "spec_helper"
2
+
3
+ describe CnpjUtils do
4
+
5
+ it ".cnpj" do
6
+ valid_cnpj = CnpjUtils.cnpj
7
+ expect(valid_cnpj).to be_a_kind_of(String)
8
+ expect(valid_cnpj.length).to eql(14)
9
+ end
10
+
11
+ it ".cnpj_formatted" do
12
+ valid_cnpj = CnpjUtils.cnpj_formatted
13
+ expect(valid_cnpj).to match(/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
14
+ end
15
+
16
+ it ".cnpj_formatado" do
17
+ valid_cnpj = CnpjUtils.cnpj_formatado
18
+ expect(valid_cnpj).to match(/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
19
+ end
20
+
21
+ it ".valid_cnpj?" do
22
+ valid_cnpj = CnpjUtils.cnpj
23
+ expect(CnpjUtils.valid_cnpj? valid_cnpj).to be_true
24
+ end
25
+
26
+ it ".cnpj_valido?" do
27
+ cnpj_valido = CnpjUtils.cnpj
28
+ expect(CnpjUtils.cnpj_valido? cnpj_valido).to be_true
29
+ end
30
+
31
+ it ".valid_cnpj? - be false" do
32
+ invalid_cnpj = "12.345.678/0001-12"
33
+ expect(CnpjUtils.valid_cnpj? invalid_cnpj).to be_false
34
+ end
35
+
36
+ it ".sample_numbers" do
37
+ numbers = CnpjUtils.sample_numbers
38
+ expect(numbers.size).to eql(12)
39
+ expect(numbers).to be_a_kind_of(Array)
40
+ end
41
+ end
@@ -0,0 +1,2 @@
1
+ require "cnpj_utils"
2
+ require_relative "../lib/cnpj_utils/cnpj"
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cnpj_utils
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jackson Pires
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 2.14.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.14.1
55
+ description: Uma suíte de funcionalidades para o CNPJ.
56
+ email:
57
+ - jackson.pires@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - .rspec
64
+ - .travis.yml
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - cnpj_utils.gemspec
70
+ - lib/cnpj_utils.rb
71
+ - lib/cnpj_utils/cnpj.rb
72
+ - lib/cnpj_utils/string.rb
73
+ - lib/cnpj_utils/version.rb
74
+ - spec/cnpj_utils/cnpj.rb
75
+ - spec/cnpj_utils/string_spec.rb
76
+ - spec/cpnj_utils_spec.rb
77
+ - spec/spec_helper.rb
78
+ homepage: https://github.com/jacksonpires/cnpj_utils
79
+ licenses:
80
+ - MIT
81
+ metadata: {}
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 2.0.3
99
+ signing_key:
100
+ specification_version: 4
101
+ summary: Gera CNPJ para testes no formado tradicional ou apenas numérico, testa se
102
+ determinado número de CNPJ é válido, além muitas outras funcionalidades descritas
103
+ na documentação.
104
+ test_files:
105
+ - spec/cnpj_utils/cnpj.rb
106
+ - spec/cnpj_utils/string_spec.rb
107
+ - spec/cpnj_utils_spec.rb
108
+ - spec/spec_helper.rb