br_documents 0.1.3 → 0.2.2

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.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/config.yml +40 -0
  3. data/.rubocop.yml +73 -0
  4. data/.tool-versions +1 -0
  5. data/Gemfile +1 -1
  6. data/Gemfile.lock +79 -42
  7. data/README.md +33 -0
  8. data/Rakefile +4 -4
  9. data/br_documents.gemspec +26 -19
  10. data/lib/br_documents/cnpj_cpf/cnpj.rb +2 -2
  11. data/lib/br_documents/cnpj_cpf/cpf.rb +2 -2
  12. data/lib/br_documents/cnpj_cpf/document.rb +9 -9
  13. data/lib/br_documents/cnpj_validator.rb +4 -4
  14. data/lib/br_documents/commons/mod11.rb +1 -2
  15. data/lib/br_documents/commons/mod14.rb +1 -2
  16. data/lib/br_documents/cpf_validator.rb +4 -4
  17. data/lib/br_documents/{gtin/gtin.rb → gtin.rb} +3 -3
  18. data/lib/br_documents/gtin_validator.rb +6 -6
  19. data/lib/br_documents/ie/ac.rb +3 -2
  20. data/lib/br_documents/ie/al.rb +2 -1
  21. data/lib/br_documents/ie/am.rb +3 -2
  22. data/lib/br_documents/ie/ap.rb +20 -16
  23. data/lib/br_documents/ie/ba.rb +28 -25
  24. data/lib/br_documents/ie/base.rb +1 -1
  25. data/lib/br_documents/ie/ce.rb +3 -2
  26. data/lib/br_documents/ie/df.rb +3 -2
  27. data/lib/br_documents/ie/es.rb +2 -1
  28. data/lib/br_documents/ie/factory.rb +3 -3
  29. data/lib/br_documents/ie/go.rb +3 -2
  30. data/lib/br_documents/ie/ma.rb +2 -1
  31. data/lib/br_documents/ie/mg.rb +14 -17
  32. data/lib/br_documents/ie/ms.rb +2 -1
  33. data/lib/br_documents/ie/mt.rb +6 -5
  34. data/lib/br_documents/ie/pa.rb +3 -2
  35. data/lib/br_documents/ie/pattern1.rb +10 -7
  36. data/lib/br_documents/ie/pattern2.rb +9 -8
  37. data/lib/br_documents/ie/pb.rb +3 -2
  38. data/lib/br_documents/ie/pe.rb +10 -10
  39. data/lib/br_documents/ie/pi.rb +2 -1
  40. data/lib/br_documents/ie/pr.rb +3 -2
  41. data/lib/br_documents/ie/rj.rb +3 -2
  42. data/lib/br_documents/ie/rn.rb +19 -16
  43. data/lib/br_documents/ie/ro.rb +16 -13
  44. data/lib/br_documents/ie/rr.rb +4 -3
  45. data/lib/br_documents/ie/rs.rb +3 -2
  46. data/lib/br_documents/ie/sc.rb +3 -2
  47. data/lib/br_documents/ie/se.rb +3 -2
  48. data/lib/br_documents/ie/sp.rb +17 -14
  49. data/lib/br_documents/ie/to.rb +6 -5
  50. data/lib/br_documents/ie_validator.rb +7 -7
  51. data/lib/br_documents/suframa.rb +46 -0
  52. data/lib/br_documents/suframa_validator.rb +8 -0
  53. data/lib/br_documents/version.rb +1 -1
  54. data/lib/br_documents.rb +3 -3
  55. data/spec/br_documents/cnpj_cpf/cnpj_spec.rb +59 -0
  56. data/spec/br_documents/cnpj_cpf/cpf_spec.rb +59 -0
  57. data/spec/br_documents/cnpj_validator_spec.rb +36 -0
  58. data/spec/br_documents/cpf_validator_spec.rb +36 -0
  59. data/spec/{gtin → br_documents}/gtin_spec.rb +4 -4
  60. data/spec/{gtin_validator_spec.rb → br_documents/gtin_validator_spec.rb} +14 -14
  61. data/spec/br_documents/ie/ac_spec.rb +43 -0
  62. data/spec/br_documents/ie/al_spec.rb +36 -0
  63. data/spec/br_documents/ie/am_spec.rb +43 -0
  64. data/spec/br_documents/ie/ap_spec.rb +36 -0
  65. data/spec/br_documents/ie/ba_spec.rb +69 -0
  66. data/spec/br_documents/ie/ce_spec.rb +16 -0
  67. data/spec/br_documents/ie/df_spec.rb +43 -0
  68. data/spec/br_documents/ie/es_spec.rb +16 -0
  69. data/spec/br_documents/ie/factory_spec.rb +202 -0
  70. data/spec/br_documents/ie/go_spec.rb +43 -0
  71. data/spec/br_documents/ie/ma_spec.rb +16 -0
  72. data/spec/br_documents/ie/mg_spec.rb +43 -0
  73. data/spec/br_documents/ie/ms_spec.rb +16 -0
  74. data/spec/br_documents/ie/mt_spec.rb +49 -0
  75. data/spec/br_documents/ie/pa_spec.rb +43 -0
  76. data/spec/br_documents/ie/pb_spec.rb +16 -0
  77. data/spec/br_documents/ie/pe_spec.rb +62 -0
  78. data/spec/br_documents/ie/pi_spec.rb +16 -0
  79. data/spec/br_documents/ie/pr_spec.rb +36 -0
  80. data/spec/br_documents/ie/rj_spec.rb +43 -0
  81. data/spec/br_documents/ie/rn_spec.rb +62 -0
  82. data/spec/br_documents/ie/ro_spec.rb +62 -0
  83. data/spec/br_documents/ie/rr_spec.rb +43 -0
  84. data/spec/br_documents/ie/rs_spec.rb +41 -0
  85. data/spec/br_documents/ie/sc_spec.rb +43 -0
  86. data/spec/br_documents/ie/se_spec.rb +16 -0
  87. data/spec/br_documents/ie/shared_examples_for_pattern1.rb +33 -0
  88. data/spec/br_documents/ie/shared_examples_for_to_remove_all_masks.rb +16 -0
  89. data/spec/br_documents/ie/sp_spec.rb +45 -0
  90. data/spec/br_documents/ie/to_spec.rb +100 -0
  91. data/spec/{ie_validator_spec.rb → br_documents/ie_validator_spec.rb} +12 -9
  92. data/spec/br_documents/suframa_spec.rb +73 -0
  93. data/spec/br_documents/suframa_validator_spec.rb +36 -0
  94. data/spec/spec_helper.rb +6 -6
  95. data/spec/support/utilities.rb +2 -2
  96. metadata +177 -99
  97. data/.circleci/config.yml +0 -42
  98. data/spec/cnpj_cpf/cnpj_spec.rb +0 -59
  99. data/spec/cnpj_cpf/cpf_spec.rb +0 -59
  100. data/spec/cnpj_validator_spec.rb +0 -36
  101. data/spec/cpf_validator_spec.rb +0 -36
  102. data/spec/ie/ac_spec.rb +0 -43
  103. data/spec/ie/al_spec.rb +0 -36
  104. data/spec/ie/am_spec.rb +0 -43
  105. data/spec/ie/ap_spec.rb +0 -36
  106. data/spec/ie/ba_spec.rb +0 -69
  107. data/spec/ie/ce_spec.rb +0 -16
  108. data/spec/ie/df_spec.rb +0 -43
  109. data/spec/ie/es_spec.rb +0 -16
  110. data/spec/ie/factory_spec.rb +0 -203
  111. data/spec/ie/go_spec.rb +0 -43
  112. data/spec/ie/ma_spec.rb +0 -16
  113. data/spec/ie/mg_spec.rb +0 -43
  114. data/spec/ie/ms_spec.rb +0 -16
  115. data/spec/ie/mt_spec.rb +0 -44
  116. data/spec/ie/pa_spec.rb +0 -43
  117. data/spec/ie/pb_spec.rb +0 -16
  118. data/spec/ie/pe_spec.rb +0 -62
  119. data/spec/ie/pi_spec.rb +0 -16
  120. data/spec/ie/pr_spec.rb +0 -36
  121. data/spec/ie/rj_spec.rb +0 -43
  122. data/spec/ie/rn_spec.rb +0 -62
  123. data/spec/ie/ro_spec.rb +0 -62
  124. data/spec/ie/rr_spec.rb +0 -43
  125. data/spec/ie/rs_spec.rb +0 -41
  126. data/spec/ie/sc_spec.rb +0 -43
  127. data/spec/ie/se_spec.rb +0 -16
  128. data/spec/ie/shared_examples_for_pattern1.rb +0 -33
  129. data/spec/ie/shared_examples_for_to_remove_all_masks.rb +0 -17
  130. data/spec/ie/sp_spec.rb +0 -45
  131. data/spec/ie/to_spec.rb +0 -100
data/spec/ie/ro_spec.rb DELETED
@@ -1,62 +0,0 @@
1
- require "spec_helper"
2
- require_relative "shared_examples_for_to_remove_all_masks"
3
-
4
- describe BrDocuments::IE::RO do
5
- describe "#formatted" do
6
- context "when having 9 digits" do
7
- it "returns a formatted ie" do
8
- ie = described_class.new("123456789")
9
- expect(ie.formatted).to eq "123.45678-9"
10
- end
11
- end
12
-
13
- context "when having 14 digits" do
14
- it "returns a formatted ie" do
15
- ie = described_class.new("12345678901234")
16
- expect(ie.formatted).to eq "1234567890123-4"
17
- end
18
- end
19
- end
20
-
21
- describe "#valid?" do
22
- it "is invalid with malformed number" do
23
- ["20.049.788-6", "2.004.978-86", "937.03AB1-6"].each do |number|
24
- ie = described_class.new(number)
25
- expect(ie).to_not be_valid
26
- end
27
- end
28
-
29
- it "is invalid with length different to 9 or 14" do
30
- ["1234567", "123456789012", "12345678901234567"].each do |number|
31
- ie = described_class.new(number)
32
- expect(ie).to_not be_valid
33
- end
34
- end
35
-
36
- context "when having 9 digits" do
37
- it "is invalid with invalid check number" do
38
- ie = described_class.new("134725252")
39
- expect(ie).to_not be_valid
40
- end
41
-
42
- it "is valid with valid number" do
43
- ie = described_class.new("101625213")
44
- expect(ie).to be_valid
45
- end
46
- end
47
-
48
- context "when having 14 digits" do
49
- it "is invalid with invalid check number" do
50
- ie = described_class.new("02539835229263")
51
- expect(ie).to_not be_valid
52
- end
53
-
54
- it "is valid with valid number" do
55
- ie = described_class.new("00000003497861")
56
- expect(ie).to be_valid
57
- end
58
- end
59
-
60
- include_examples "for to remove all masks", "0000000062521-3"
61
- end
62
- end
data/spec/ie/rr_spec.rb DELETED
@@ -1,43 +0,0 @@
1
- require "spec_helper"
2
- require_relative "shared_examples_for_to_remove_all_masks"
3
-
4
- describe BrDocuments::IE::RR do
5
- describe "#formatted" do
6
- it "returns a formatted ie" do
7
- ie = described_class.new("123456789")
8
- expect(ie.formatted).to eq "12345678-9"
9
- end
10
- end
11
-
12
- describe "#valid?" do
13
- it "is invalid with malformed number" do
14
- ["24.410.109-5", "2456128-32", "24AB0559-6"].each do |number|
15
- ie = described_class.new(number)
16
- expect(ie).to_not be_valid
17
- end
18
- end
19
-
20
- it "is invalid with length different to 9" do
21
- ["1234567", "123456789"].each do |number|
22
- ie = described_class.new(number)
23
- expect(ie).to_not be_valid
24
- end
25
- end
26
-
27
- it "is invalid with invalid check number" do
28
- ["242131962", "247318099"].each do |number|
29
- ie = described_class.new(number)
30
- expect(ie).to_not be_valid
31
- end
32
- end
33
-
34
- it "is valid with valid number" do
35
- ["241432573", "240886456"].each do |number|
36
- ie = described_class.new(number)
37
- expect(ie).to be_valid
38
- end
39
- end
40
-
41
- include_examples "for to remove all masks", "24088645-6"
42
- end
43
- end
data/spec/ie/rs_spec.rb DELETED
@@ -1,41 +0,0 @@
1
- require "spec_helper"
2
- require_relative "shared_examples_for_to_remove_all_masks"
3
-
4
- describe BrDocuments::IE::RS do
5
- describe "#formatted" do
6
- it "returns a formatted ie" do
7
- ie = described_class.new("1234567890")
8
- expect(ie.formatted).to eq "123/4567890"
9
- end
10
- end
11
-
12
- describe "#valid?" do
13
- it "is invalid with malformed number" do
14
- ie = described_class.new("17/70169293")
15
- expect(ie).to_not be_valid
16
- end
17
-
18
- it "is invalid with length different to 10" do
19
- ["123456789", "12345678901"].each do |number|
20
- ie = described_class.new(number)
21
- expect(ie).to_not be_valid
22
- end
23
- end
24
-
25
- it "is invalid with invalid check number" do
26
- ["1770169292", "034/0112114"].each do |number|
27
- ie = described_class.new(number)
28
- expect(ie).to_not be_valid
29
- end
30
- end
31
-
32
- it "is valid with valid number" do
33
- ["1770169293", "034/0112115"].each do |number|
34
- ie = described_class.new(number)
35
- expect(ie).to be_valid
36
- end
37
- end
38
-
39
- include_examples "for to remove all masks", "034/0112115"
40
- end
41
- end
data/spec/ie/sc_spec.rb DELETED
@@ -1,43 +0,0 @@
1
- require "spec_helper"
2
- require_relative "shared_examples_for_to_remove_all_masks"
3
-
4
- describe BrDocuments::IE::SC do
5
- describe "#formatted" do
6
- it "returns a formatted ie" do
7
- ie = described_class.new("123456789")
8
- expect(ie.formatted).to eq "123.456.789"
9
- end
10
- end
11
-
12
- describe "#valid?" do
13
- it "is invalid with malformed number" do
14
- ["253.66.7852", "25.4062.407", "A12345678"].each do |number|
15
- ie = described_class.new(number)
16
- expect(ie).to_not be_valid
17
- end
18
- end
19
-
20
- it "is invalid with length different to 9" do
21
- ["1234567890", "12345678"].each do |number|
22
- ie = described_class.new(number)
23
- expect(ie).to_not be_valid
24
- end
25
- end
26
-
27
- it "is invalid with invalid check number" do
28
- ["253667853", "254.062.408"].each do |number|
29
- ie = described_class.new(number)
30
- expect(ie).to_not be_valid
31
- end
32
- end
33
-
34
- it "is valid with valid number" do
35
- ["253667852", "254.062.407"].each do |number|
36
- ie = described_class.new(number)
37
- expect(ie).to be_valid
38
- end
39
- end
40
-
41
- include_examples "for to remove all masks", "254.062.407"
42
- end
43
- end
data/spec/ie/se_spec.rb DELETED
@@ -1,16 +0,0 @@
1
- require "spec_helper"
2
- require_relative "shared_examples_for_pattern1"
3
- require_relative "shared_examples_for_to_remove_all_masks"
4
-
5
- describe BrDocuments::IE::SE do
6
- describe "#formatted" do
7
- it "returns a formatted ie" do
8
- ie = described_class.new("123456789")
9
- expect(ie.formatted).to eq "12345678-9"
10
- end
11
- end
12
-
13
- it_behaves_like "a pattern1", "SE"
14
-
15
- include_examples "for to remove all masks", "12345678-9"
16
- end
@@ -1,33 +0,0 @@
1
- require "spec_helper"
2
-
3
- shared_examples "a pattern1" do |uf|
4
- describe BrDocuments::IE::Factory, "#valid?" do
5
- it "is invalid with malformed number" do
6
- ["1922212-21", "72.219.398-0", "63BA9943-8"].each do |number|
7
- ie = described_class.create(uf, number)
8
- expect(ie).to_not be_valid
9
- end
10
- end
11
-
12
- it "is invalid with length different to 9" do
13
- ["1234567", "12345678901"].each do |number|
14
- ie = described_class.create(uf, number)
15
- expect(ie).to_not be_valid
16
- end
17
- end
18
-
19
- it "is invalid with invalid check number" do
20
- ["226905727", "662637732"].each do |number|
21
- ie = described_class.create(uf, number)
22
- expect(ie).to_not be_valid
23
- end
24
- end
25
-
26
- it "is valid with valid number" do
27
- ["732766940", "665822081"].each do |number|
28
- ie = described_class.create(uf, number)
29
- expect(ie).to be_valid
30
- end
31
- end
32
- end
33
- end
@@ -1,17 +0,0 @@
1
- require "spec_helper"
2
-
3
- shared_examples "for to remove all masks" do |valid_number_with_mask|
4
- describe "#valid?" do
5
-
6
- context "when the number is valid" do
7
- subject { described_class.new(valid_number_with_mask) }
8
-
9
- it "removes the mask" do
10
- expect(subject).to be_valid
11
-
12
- only_numbers = valid_number_with_mask.gsub(/[\.\/-]/, "")
13
- expect(valid_number_with_mask).to eq only_numbers
14
- end
15
- end
16
- end
17
- end
data/spec/ie/sp_spec.rb DELETED
@@ -1,45 +0,0 @@
1
- require "spec_helper"
2
- require_relative "shared_examples_for_to_remove_all_masks"
3
-
4
- describe BrDocuments::IE::SP do
5
- describe "#formatted" do
6
- context "when having 12 digits" do
7
- it "returns a formatted ie" do
8
- ie = described_class.new("110042490114")
9
- expect(ie.formatted).to eq "110.042.490.114"
10
- end
11
- end
12
-
13
- context "when having 13 digits" do
14
- it "returns a formatted ie" do
15
- ie = described_class.new("P011004243002")
16
- expect(ie.formatted).to eq "P-01100424.3/002"
17
- end
18
- end
19
- end
20
-
21
- describe "#valid?" do
22
- it "is invalid with malformed number" do
23
- ["36.9107.395114", "527.08212.8110"].each do |number|
24
- ie = described_class.new(number)
25
- expect(ie).to_not be_valid
26
- end
27
- end
28
-
29
- it "is invalid with invalid check number" do
30
- ["110042490113", "110.042.491.114", "P-01100424.4/002"].each do |number|
31
- ie = described_class.new(number)
32
- expect(ie).to_not be_valid
33
- end
34
- end
35
-
36
- it "is valid with valid number" do
37
- ["110042490114", "110.042.490.114", "P-01100424.3/002"].each do |number|
38
- ie = described_class.new(number)
39
- expect(ie).to be_valid
40
- end
41
- end
42
-
43
- include_examples "for to remove all masks", "P-01100424.3/002"
44
- end
45
- end
data/spec/ie/to_spec.rb DELETED
@@ -1,100 +0,0 @@
1
- require "spec_helper"
2
- require_relative "shared_examples_for_to_remove_all_masks"
3
-
4
- describe BrDocuments::IE::TO do
5
- describe "#formatted" do
6
- context "when having 9 digits" do
7
- subject { described_class.new("123456789") }
8
-
9
- it "returns a formatted ie" do
10
- expect(subject.formatted).to eq "12.345678-9"
11
- end
12
- end
13
-
14
- context "when having 11 digits" do
15
- subject { described_class.new("12345678901") }
16
-
17
- it "returns a formatted ie" do
18
- expect(subject.formatted).to eq "12.34.567890-1"
19
- end
20
- end
21
- end
22
-
23
- describe "#valid?" do
24
- it "is invalid with malformed number" do
25
- ["2.903.593.362-3", "29.02.79268-45", "29.02.5AB420-5"].each do |number|
26
- ie = described_class.new(number)
27
- expect(ie).to_not be_valid
28
- end
29
- end
30
-
31
- it "is invalid with length different of 9 or 11" do
32
- ["12345678", "1234567890", "123456789012"].each do |number|
33
- ie = described_class.new(number)
34
- expect(ie).to_not be_valid
35
- end
36
- end
37
-
38
- context "when having 9 digits" do
39
- it "is invalid with invalid check number" do
40
- ["290227835", "294083153"].each do |number|
41
- ie = described_class.new(number)
42
- expect(ie).to_not be_valid
43
- end
44
- end
45
-
46
- it "is invalid with correct check number but invalid mask" do
47
- ["29-022783-6", "29.408315.4"].each do |number|
48
- ie = described_class.new(number)
49
- expect(ie).to_not be_valid
50
- end
51
- end
52
-
53
- it "is valid with valid number" do
54
- ["290227836", "294083154"].each do |number|
55
- ie = described_class.new(number)
56
- expect(ie).to be_valid
57
- end
58
- end
59
-
60
- it "is valid with valid masked number" do
61
- ["29.022783-6", "29.408315-4"].each do |number|
62
- ie = described_class.new(number)
63
- expect(ie).to be_valid
64
- end
65
- end
66
- end
67
-
68
- context "when having 11 digits" do
69
- it "is invalid with invalid check number" do
70
- ["29023864406", "29023864409"].each do |number|
71
- ie = described_class.new(number)
72
- expect(ie).to_not be_valid
73
- end
74
- end
75
-
76
- it "is invalid with correct check number but invalid mask" do
77
- ["29-99.200143-6", "29.99.231741.7"].each do |number|
78
- ie = described_class.new(number)
79
- expect(ie).to_not be_valid
80
- end
81
- end
82
-
83
- it "is valid with valid number" do
84
- ["29992001436", "29992317417"].each do |number|
85
- ie = described_class.new(number)
86
- expect(ie).to be_valid
87
- end
88
- end
89
-
90
- it "is valid with valid masked number" do
91
- ["29.99.200143-6", "29.99.231741-7"].each do |number|
92
- ie = described_class.new(number)
93
- expect(ie).to be_valid
94
- end
95
- end
96
- end
97
-
98
- include_examples "for to remove all masks", "29.99.231741-7"
99
- end
100
- end