processo_utilities 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 983b673b284160f5fa23c6471e69cd3fc33fb4d2
4
- data.tar.gz: 9999535f3bbbb72d450e9aae69d2256ed6779234
3
+ metadata.gz: 164e6e7db3f24f659fffee6e0335cde9d5194179
4
+ data.tar.gz: ad291c9f569cdb7f6daf386c0b658c26fb5b191e
5
5
  SHA512:
6
- metadata.gz: aaf387d2ea0d221b6b3d45c2276194a66532d7adf62476e0f7445838ca1fdf19d37ed4f66ac8fb55091609525aa231f3d49a2b51dd9d7be4c0873a6181046d4d
7
- data.tar.gz: e3dc4c35ac6e9fe444fa5c42894286d7a349c113b3f8582aee68c5628fecc48ef0cc903574eea07dcafc4f81f642811768c4cee77de0224d6f7f01afe4b3c222
6
+ metadata.gz: a9e11afb937a578c4e102dfdb7b39ea6d334e086adcd0d876e88f8d6574e0594d8bc3c1fdfc8cbdab852522d6bd234d2cedb5b14946ed0f50d279f56f2b6edcf
7
+ data.tar.gz: cb58a58761fc540776a3583774707cc44e10cfca3bd4651498b8e55bbf9a92a1776e64941d4f40f1f2b8922500301e22ef7c19ae92487d7e1e5dd02124d27d4e
data/README.md ADDED
@@ -0,0 +1,6 @@
1
+ Processo Utilities
2
+ ==================
3
+
4
+ ###Instalação
5
+
6
+ `gem install processo_utilities`
@@ -6,8 +6,54 @@ module ProcessoUtilities
6
6
  end
7
7
 
8
8
  def self.insere_formatacao(cnpj)
9
- raise "Tamanho do cnpj inválido" unless cnpj.length == 14
9
+ tamanho_valido?(cnpj)
10
10
  cnpj.insert(12, '-').insert(8, '/').insert(5, '.').insert(2, '.')
11
11
  end
12
+
13
+ def self.cnpj_valido?(cnpj)
14
+ cnpj = remove_formatacao(cnpj)
15
+ tamanho_valido?(cnpj)
16
+
17
+ return true if cnpj[12..13] == calcula_digito_verificador(cnpj)
18
+
19
+ false
20
+ end
21
+
22
+ def self.calcula_digito_verificador(cnpj)
23
+ primeiro_digito = calcula_digito_verificador_individual(cnpj[0..11], 5)
24
+ segundo_digito = calcula_digito_verificador_individual(cnpj[0..11] + primeiro_digito.to_s, 6)
25
+ primeiro_digito.to_s + segundo_digito.to_s
26
+ end
27
+
28
+ private
29
+
30
+ def self.tamanho_valido?(cnpj)
31
+ raise "Tamanho do cnpj inválido" unless cnpj.length == 14
32
+ end
33
+
34
+ def self.calcula_digito_verificador_individual(cnpj, max)
35
+ soma_total = 0
36
+
37
+ (2..9).each do |index|
38
+ soma_total = soma_total + (cnpj[max + 8 - index].to_i * index)
39
+ end
40
+
41
+ (2..max).each do |index|
42
+ soma_total = soma_total + (cnpj[max - index].to_i * index)
43
+ end
44
+
45
+ divisao_inteira = soma_total / 11;
46
+ resto = soma_total % 11;
47
+
48
+ if resto < 2
49
+ digito_calculado = 0
50
+ else
51
+ digito_calculado = 11 - resto
52
+ end
53
+
54
+ digito_calculado
55
+ end
56
+
57
+
12
58
  end
13
59
  end
@@ -6,9 +6,49 @@ module ProcessoUtilities
6
6
  end
7
7
 
8
8
  def self.insere_formatacao(cpf)
9
- raise "Tamanho do cpf inválido" unless cpf.length == 11
9
+ tamanho_valido?(cpf)
10
10
  cpf.insert(9, '-').insert(6, '.').insert(3, '.')
11
11
  end
12
+
13
+ def self.cpf_valido?(cpf)
14
+ cpf = remove_formatacao(cpf)
15
+ tamanho_valido?(cpf)
16
+
17
+ return true if cpf[9..10] == calcula_digito_verificador(cpf)
18
+
19
+ false
20
+ end
21
+
22
+ def self.calcula_digito_verificador(cpf)
23
+ primeiro_digito = calcula_digito_verificador_individual(cpf[0..8], 10)
24
+ segundo_digito = calcula_digito_verificador_individual(cpf[0..8] + primeiro_digito.to_s, 11)
25
+ primeiro_digito.to_s + segundo_digito.to_s
26
+ end
27
+
28
+ private
29
+
30
+ def self.tamanho_valido?(cpf)
31
+ raise "Tamanho do cpf inválido" unless cpf.length == 11
32
+ end
33
+
34
+ def self.calcula_digito_verificador_individual(cpf, max)
35
+ soma_total = 0
36
+
37
+ (2..max).each do |index|
38
+ soma_total = soma_total + (cpf[max - index].to_i * index)
39
+ end
40
+
41
+ divisao_inteira = soma_total / 11;
42
+ resto = soma_total % 11;
43
+
44
+ if resto < 2
45
+ digito_calculado = 0
46
+ else
47
+ digito_calculado = 11 - resto
48
+ end
49
+
50
+ digito_calculado
51
+ end
12
52
 
13
53
  end
14
54
  end
@@ -13,7 +13,10 @@ describe ProcessoUtilities::CnpjUtilities do
13
13
  expect(ProcessoUtilities::CnpjUtilities.insere_formatacao("36463891000160")).to eql("36.463.891/0001-60")
14
14
  end
15
15
 
16
- it "valida o cnpj"
16
+ it "valida o cnpj" do
17
+ expect(ProcessoUtilities::CnpjUtilities.cnpj_valido?("36.463.891/0001-60")).to be_true
18
+ expect(ProcessoUtilities::CnpjUtilities.cnpj_valido?("36.463.892/0001-60")).to be_false
19
+ end
17
20
 
18
21
 
19
22
 
@@ -13,7 +13,10 @@ describe ProcessoUtilities::CpfUtilities do
13
13
  expect(ProcessoUtilities::CpfUtilities.insere_formatacao("80131878611")).to eql("801.318.786-11")
14
14
  end
15
15
 
16
- it "valida o cpf"
16
+ it "valida o cpf" do
17
+ expect(ProcessoUtilities::CpfUtilities.cpf_valido?("801.318.786-11")).to be_true
18
+ expect(ProcessoUtilities::CpfUtilities.cpf_valido?("801.318.785-11")).to be_false
19
+ end
17
20
 
18
21
 
19
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: processo_utilities
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Adolfo Froede Lutz
@@ -16,7 +16,7 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
- - README.rdoc
19
+ - README.md
20
20
  - lib/processo_utilities.rb
21
21
  - lib/processo/processo_formatter.rb
22
22
  - spec/processo/processo_formatter_spec.rb
data/README.rdoc DELETED
File without changes