br_documents 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +5 -5
  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 -40
  7. data/README.md +33 -0
  8. data/Rakefile +4 -4
  9. data/br_documents.gemspec +26 -19
  10. data/lib/br_documents.rb +3 -3
  11. data/lib/br_documents/cnpj_cpf/cnpj.rb +2 -2
  12. data/lib/br_documents/cnpj_cpf/cpf.rb +2 -2
  13. data/lib/br_documents/cnpj_cpf/document.rb +9 -9
  14. data/lib/br_documents/cnpj_validator.rb +4 -4
  15. data/lib/br_documents/commons/mod11.rb +1 -2
  16. data/lib/br_documents/commons/mod14.rb +20 -0
  17. data/lib/br_documents/cpf_validator.rb +4 -4
  18. data/lib/br_documents/{gtin/gtin.rb → gtin.rb} +3 -3
  19. data/lib/br_documents/gtin_validator.rb +6 -6
  20. data/lib/br_documents/ie/ac.rb +3 -2
  21. data/lib/br_documents/ie/al.rb +2 -1
  22. data/lib/br_documents/ie/am.rb +3 -2
  23. data/lib/br_documents/ie/ap.rb +20 -16
  24. data/lib/br_documents/ie/ba.rb +28 -25
  25. data/lib/br_documents/ie/base.rb +1 -1
  26. data/lib/br_documents/ie/ce.rb +3 -2
  27. data/lib/br_documents/ie/df.rb +3 -2
  28. data/lib/br_documents/ie/es.rb +2 -1
  29. data/lib/br_documents/ie/factory.rb +3 -3
  30. data/lib/br_documents/ie/go.rb +3 -2
  31. data/lib/br_documents/ie/ma.rb +2 -1
  32. data/lib/br_documents/ie/mg.rb +14 -17
  33. data/lib/br_documents/ie/ms.rb +2 -1
  34. data/lib/br_documents/ie/mt.rb +6 -5
  35. data/lib/br_documents/ie/pa.rb +3 -2
  36. data/lib/br_documents/ie/pattern1.rb +10 -7
  37. data/lib/br_documents/ie/pattern2.rb +9 -8
  38. data/lib/br_documents/ie/pb.rb +3 -2
  39. data/lib/br_documents/ie/pe.rb +10 -10
  40. data/lib/br_documents/ie/pi.rb +2 -1
  41. data/lib/br_documents/ie/pr.rb +3 -2
  42. data/lib/br_documents/ie/rj.rb +3 -2
  43. data/lib/br_documents/ie/rn.rb +19 -16
  44. data/lib/br_documents/ie/ro.rb +17 -14
  45. data/lib/br_documents/ie/rr.rb +4 -3
  46. data/lib/br_documents/ie/rs.rb +3 -2
  47. data/lib/br_documents/ie/sc.rb +3 -2
  48. data/lib/br_documents/ie/se.rb +3 -2
  49. data/lib/br_documents/ie/sp.rb +17 -14
  50. data/lib/br_documents/ie/to.rb +6 -5
  51. data/lib/br_documents/ie_validator.rb +16 -15
  52. data/lib/br_documents/suframa.rb +46 -0
  53. data/lib/br_documents/suframa_validator.rb +8 -0
  54. data/lib/br_documents/version.rb +1 -1
  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 +44 -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/br_documents/ie_validator_spec.rb +86 -0
  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 +9 -6
  95. data/spec/support/utilities.rb +2 -2
  96. metadata +175 -97
  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
  132. data/spec/ie_validator_spec.rb +0 -73
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: af282960d7eec2aace8577ece140037ae92bccc7
4
- data.tar.gz: 6a0949192d3fa4e7629b3616607a4ce1a7fa69d6
2
+ SHA256:
3
+ metadata.gz: b0a6d2e8fbb2f732b7eafcab92276a9e4504b69ac7c4073e079981dde8852c28
4
+ data.tar.gz: 0e7dc0f1c2d7512f6276ff2a4e53e7188260edb26c9e760f8ee7602e7e32bfbb
5
5
  SHA512:
6
- metadata.gz: faae22eac35ea67c6c76d94987fbf4202d50e7dbb97b08d871f8284a5da121c79636aed37e61f275bcabfe91f8fa6aff248536556c343e55687368494b3ef4aa
7
- data.tar.gz: 5ee7e4460d07128179bff951441ca1cb7ab8b214187ca1122e846d72303d84bac591c54af2514374682b86e4df0e558a55fe72db4f1a52035c52881e6b32b949
6
+ metadata.gz: cbce964fa8b997275d73f14d884a8a7ce2523f6cfc70dc4571a257651b89721de258408fe852a6808d9bd22d7e49a652e1e024adeec634e78a490ea78900893b
7
+ data.tar.gz: 9831579ab419ef1272b28729a3baad5e6e86d7373fa057da6e63c16a0b0a977832f837e435dde1e4e1448b5875cc84d292c8e77250826220a5fa240867eae2c9
@@ -0,0 +1,40 @@
1
+ name: Tests
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ linter:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+
11
+ - uses: actions/checkout@v2
12
+
13
+ - uses: ruby/setup-ruby@v1
14
+ with:
15
+ ruby-version: 2.7.3
16
+ bundler-cache: true
17
+
18
+ - run: bundle exec rubocop --display-cop-names --parallel
19
+
20
+ rspec:
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - uses: actions/checkout@v2
25
+
26
+ - uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: 2.7.3
29
+ bundler-cache: true
30
+
31
+ - run: |
32
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
33
+ chmod +x ./cc-test-reporter
34
+
35
+ - run: |
36
+ ./cc-test-reporter before-build
37
+ bundle exec rspec
38
+ ./cc-test-reporter after-build -r $CC_TEST_REPORTER_ID --exit-code $?
39
+ env:
40
+ CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}}
data/.rubocop.yml ADDED
@@ -0,0 +1,73 @@
1
+ # You can find more information about RuboCop pending cops policy
2
+ # https://docs.rubocop.org/rubocop/versioning.html#pending-cops
3
+ #
4
+ # These are the default options. The .rubocop.yml inherit and
5
+ # override all the default options.
6
+ # https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml
7
+ require:
8
+ - rubocop-rails
9
+ - rubocop-performance
10
+ - rubocop-rspec
11
+ - rubocop-rake
12
+ AllCops:
13
+ TargetRubyVersion: 2.7.3
14
+ DisplayCopNames: true
15
+ DisplayStyleGuide: true
16
+ NewCops: enable
17
+
18
+ # Offense count: 1
19
+ # Configuration parameters: Include.
20
+ # Include: **/*.gemspec
21
+ Gemspec/RequiredRubyVersion:
22
+ Exclude:
23
+ - 'br_documents.gemspec'
24
+
25
+ # Offense count: 1
26
+ # Configuration parameters: Include.
27
+ # Include: **/*.gemspec
28
+ Gemspec/RubyVersionGlobalsUsage:
29
+ Exclude:
30
+ - 'br_documents.gemspec'
31
+
32
+ # Offense count: 1
33
+ # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
34
+ Metrics/AbcSize:
35
+ Max: 20
36
+
37
+ Metrics/BlockLength:
38
+ Exclude:
39
+ - 'spec/**/*.rb'
40
+
41
+ Style/Documentation:
42
+ Enabled: false
43
+
44
+ RSpec/NamedSubject:
45
+ Enabled: false # default: true
46
+
47
+ RSpec/MultipleExpectations:
48
+ Enabled: false # default: true
49
+
50
+ RSpec/NestedGroups:
51
+ Enabled: false # default: true
52
+
53
+ Style/RegexpLiteral:
54
+ Enabled: false # default: true
55
+
56
+ Style/FrozenStringLiteralComment:
57
+ EnforcedStyle: never # default: always
58
+
59
+ # Offense count: 39
60
+ # Cop supports --auto-correct.
61
+ Style/RedundantRegexpEscape:
62
+ Enabled: false
63
+
64
+ # Offense count: 1
65
+ # Cop supports --auto-correct.
66
+ # Configuration parameters: EnforcedStyle.
67
+ # SupportedStyles: use_perl_names, use_english_names
68
+ Style/SpecialGlobalVars:
69
+ Exclude:
70
+ - 'br_documents.gemspec'
71
+
72
+ Style/WordArray:
73
+ EnforcedStyle: brackets
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.7.4
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
data/Gemfile.lock CHANGED
@@ -1,52 +1,86 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- br_documents (0.1.1)
4
+ br_documents (0.2.1)
5
5
  activemodel (>= 4.0.0)
6
6
  i18n (>= 0.6.5)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activemodel (5.2.3)
12
- activesupport (= 5.2.3)
13
- activesupport (5.2.3)
11
+ activemodel (6.1.3.2)
12
+ activesupport (= 6.1.3.2)
13
+ activesupport (6.1.3.2)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
- i18n (>= 0.7, < 2)
16
- minitest (~> 5.1)
17
- tzinfo (~> 1.1)
18
- byebug (10.0.2)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ zeitwerk (~> 2.3)
19
+ ast (2.4.2)
20
+ byebug (11.1.3)
19
21
  codeclimate-test-reporter (1.0.7)
20
22
  simplecov
21
- concurrent-ruby (1.1.5)
22
- diff-lcs (1.3)
23
- docile (1.1.5)
24
- i18n (1.6.0)
23
+ concurrent-ruby (1.1.9)
24
+ diff-lcs (1.4.4)
25
+ docile (1.4.0)
26
+ i18n (1.8.10)
25
27
  concurrent-ruby (~> 1.0)
26
- json (2.0.3)
27
- minitest (5.11.3)
28
- rake (12.0.0)
29
- rspec (3.5.0)
30
- rspec-core (~> 3.5.0)
31
- rspec-expectations (~> 3.5.0)
32
- rspec-mocks (~> 3.5.0)
33
- rspec-core (3.5.4)
34
- rspec-support (~> 3.5.0)
35
- rspec-expectations (3.5.0)
28
+ minitest (5.14.4)
29
+ parallel (1.20.1)
30
+ parser (3.0.1.1)
31
+ ast (~> 2.4.1)
32
+ rack (2.2.3)
33
+ rainbow (3.0.0)
34
+ rake (13.0.6)
35
+ regexp_parser (2.1.1)
36
+ rexml (3.2.5)
37
+ rspec (3.10.0)
38
+ rspec-core (~> 3.10.0)
39
+ rspec-expectations (~> 3.10.0)
40
+ rspec-mocks (~> 3.10.0)
41
+ rspec-core (3.10.1)
42
+ rspec-support (~> 3.10.0)
43
+ rspec-expectations (3.10.1)
36
44
  diff-lcs (>= 1.2.0, < 2.0)
37
- rspec-support (~> 3.5.0)
38
- rspec-mocks (3.5.0)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-mocks (3.10.2)
39
47
  diff-lcs (>= 1.2.0, < 2.0)
40
- rspec-support (~> 3.5.0)
41
- rspec-support (3.5.0)
42
- simplecov (0.14.0)
43
- docile (~> 1.1.0)
44
- json (>= 1.8, < 3)
45
- simplecov-html (~> 0.10.0)
46
- simplecov-html (0.10.0)
47
- thread_safe (0.3.6)
48
- tzinfo (1.2.5)
49
- thread_safe (~> 0.1)
48
+ rspec-support (~> 3.10.0)
49
+ rspec-support (3.10.2)
50
+ rubocop (1.15.0)
51
+ parallel (~> 1.10)
52
+ parser (>= 3.0.0.0)
53
+ rainbow (>= 2.2.2, < 4.0)
54
+ regexp_parser (>= 1.8, < 3.0)
55
+ rexml
56
+ rubocop-ast (>= 1.5.0, < 2.0)
57
+ ruby-progressbar (~> 1.7)
58
+ unicode-display_width (>= 1.4.0, < 3.0)
59
+ rubocop-ast (1.7.0)
60
+ parser (>= 3.0.1.1)
61
+ rubocop-performance (1.11.4)
62
+ rubocop (>= 1.7.0, < 2.0)
63
+ rubocop-ast (>= 0.4.0)
64
+ rubocop-rails (2.10.1)
65
+ activesupport (>= 4.2.0)
66
+ rack (>= 1.1)
67
+ rubocop (>= 1.7.0, < 2.0)
68
+ rubocop-rake (0.5.1)
69
+ rubocop
70
+ rubocop-rspec (2.3.0)
71
+ rubocop (~> 1.0)
72
+ rubocop-ast (>= 1.1.0)
73
+ ruby-progressbar (1.11.0)
74
+ simplecov (0.21.2)
75
+ docile (~> 1.1)
76
+ simplecov-html (~> 0.11)
77
+ simplecov_json_formatter (~> 0.1)
78
+ simplecov-html (0.12.3)
79
+ simplecov_json_formatter (0.1.3)
80
+ tzinfo (2.0.4)
81
+ concurrent-ruby (~> 1.0)
82
+ unicode-display_width (2.0.0)
83
+ zeitwerk (2.4.2)
50
84
 
51
85
  PLATFORMS
52
86
  ruby
@@ -54,11 +88,16 @@ PLATFORMS
54
88
  DEPENDENCIES
55
89
  br_documents!
56
90
  bundler (>= 1.3)
57
- byebug (= 10.0.2)
58
- codeclimate-test-reporter
59
- rake (>= 10.1.0)
60
- rspec (>= 3.0.0)
61
- simplecov (>= 0.9.0)
91
+ byebug (= 11.1.3)
92
+ codeclimate-test-reporter (>= 1.0.7)
93
+ rake (>= 13.0.3)
94
+ rspec (>= 3.10.0)
95
+ rubocop (~> 1.15.0)
96
+ rubocop-performance (~> 1.11.3)
97
+ rubocop-rails (~> 2.10.1)
98
+ rubocop-rake (>= 0.5.1)
99
+ rubocop-rspec (~> 2.3.0)
100
+ simplecov (>= 0.21.2)
62
101
 
63
102
  BUNDLED WITH
64
- 1.16.4
103
+ 2.1.4
data/README.md CHANGED
@@ -115,6 +115,29 @@ pj.ie = "111.111.111"
115
115
  pj.valid? # => false
116
116
  ```
117
117
 
118
+ #### SUFRAMA
119
+
120
+ ```ruby
121
+ class Person < ActiveRecord::Base
122
+
123
+ attr_accessor :suframa
124
+
125
+ validates :suframa,
126
+ suframa: true
127
+ end
128
+
129
+
130
+ pj = Person.new
131
+ pj.suframa = "100698107"
132
+ pj.valid? # => true
133
+
134
+ pj.suframa = "10.0698.107" # with mask
135
+ pj.valid? # => true
136
+
137
+ pj.suframa = "11.1111.111"
138
+ pj.valid? # => false
139
+ ```
140
+
118
141
  ### Ruby
119
142
 
120
143
  #### CNPJ
@@ -147,6 +170,16 @@ ie.formatted # => "254.062.407"
147
170
  ie.valid? # => true
148
171
  ```
149
172
 
173
+ #### SUFRAMA
174
+
175
+ ```ruby
176
+ require "br_documents"
177
+
178
+ suframa = BrDocuments::Suframa.new("100698107")
179
+ suframa.formatted # => "10.0698.107"
180
+ suframa.valid? # => true
181
+ ```
182
+
150
183
  ## Environment variables
151
184
 
152
185
  The following variables are necessary to be set:
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require "rspec/core/rake_task"
2
- require "bundler/gem_tasks"
1
+ require 'rspec/core/rake_task'
2
+ require 'bundler/gem_tasks'
3
3
 
4
4
  task default: :spec
5
5
  RSpec::Core::RakeTask.new
6
6
 
7
7
  desc "Open an irb session preloaded class's"
8
- task :console do
9
- sh "irb -rubygems -I lib -r br_documents.rb"
8
+ task console: :enviroment do
9
+ sh 'irb -rubygems -I lib -r br_documents.rb'
10
10
  end
data/br_documents.gemspec CHANGED
@@ -1,30 +1,37 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "br_documents/version"
3
+ require 'br_documents/version'
5
4
 
5
+ # rubocop:disable Metrics/BlockLength
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "br_documents"
7
+ spec.name = 'br_documents'
8
8
  spec.version = BrDocuments::VERSION
9
- spec.authors = ["ASSEINFO - Sistemas de Informação"]
10
- spec.email = ["asseinfo@asseinfo.com.br"]
11
- spec.description = "Validates brazilian documents like CPF, CNPJ and IE."
12
- spec.summary = "Validates brazilian documents like CPF, CNPJ and IE. It can be used with active record or just in ruby."
13
- spec.homepage = "http://github.com/asseinfo/br_documents"
14
- spec.license = "MIT"
9
+ spec.authors = ['ASSEINFO - Sistemas de Informação']
10
+ spec.email = ['asseinfo@asseinfo.com.br']
11
+ spec.description = 'Validates brazilian documents like CPF, CNPJ and IE.'
12
+ spec.summary = 'Validates brazilian documents like CPF, CNPJ and IE. It can be used with active record '\
13
+ 'or just in ruby.'
14
+ spec.homepage = 'http://github.com/asseinfo/br_documents'
15
+ spec.license = 'MIT'
15
16
 
16
17
  spec.files = `git ls-files`.split($/)
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
20
21
 
21
- spec.add_dependency "activemodel", ">= 4.0.0"
22
- spec.add_dependency "i18n", ">= 0.6.5"
22
+ spec.add_dependency 'activemodel', '>= 4.0.0'
23
+ spec.add_dependency 'i18n', '>= 0.6.5'
23
24
 
24
- spec.add_development_dependency "bundler", ">= 1.3"
25
- spec.add_development_dependency "rake", ">= 10.1.0"
26
- spec.add_development_dependency "rspec", ">= 3.0.0"
27
- spec.add_development_dependency "codeclimate-test-reporter"
28
- spec.add_development_dependency "simplecov", ">= 0.9.0"
29
- spec.add_development_dependency "byebug", "10.0.2" if RUBY_VERSION >= "2.0"
25
+ spec.add_development_dependency 'bundler', '>= 1.3'
26
+ spec.add_development_dependency 'byebug', '11.1.3' if RUBY_VERSION >= '2.0'
27
+ spec.add_development_dependency 'codeclimate-test-reporter', '>= 1.0.7'
28
+ spec.add_development_dependency 'rake', '>= 13.0.3'
29
+ spec.add_development_dependency 'rspec', '>= 3.10.0'
30
+ spec.add_development_dependency 'rubocop', '~> 1.15.0'
31
+ spec.add_development_dependency 'rubocop-performance', '~> 1.11.3'
32
+ spec.add_development_dependency 'rubocop-rails', '~> 2.10.1'
33
+ spec.add_development_dependency 'rubocop-rake', '>= 0.5.1'
34
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.3.0'
35
+ spec.add_development_dependency 'simplecov', '>= 0.21.2'
30
36
  end
37
+ # rubocop:enable Metrics/BlockLength
data/lib/br_documents.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "active_model"
1
+ require 'active_model'
2
2
 
3
- Dir[File.dirname(__FILE__) + "/**/*.rb"].each { |f| require f }
3
+ Dir["#{File.dirname(__FILE__)}/**/*.rb"].sort.each { |f| require f }
4
4
 
5
- I18n.load_path << File.expand_path("../../config/locales/pt-BR.yml", __FILE__)
5
+ I18n.load_path << File.expand_path('../config/locales/pt-BR.yml', __dir__)
@@ -1,4 +1,4 @@
1
- require_relative "document"
1
+ require_relative 'document'
2
2
 
3
3
  module BrDocuments
4
4
  module CnpjCpf
@@ -16,7 +16,7 @@ module BrDocuments
16
16
  end
17
17
 
18
18
  def format_number
19
- @number.sub(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/, "\\1.\\2.\\3/\\4-\\5")
19
+ @number.sub(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/, '\\1.\\2.\\3/\\4-\\5')
20
20
  end
21
21
  end
22
22
  end
@@ -1,4 +1,4 @@
1
- require_relative "document"
1
+ require_relative 'document'
2
2
 
3
3
  module BrDocuments
4
4
  module CnpjCpf
@@ -16,7 +16,7 @@ module BrDocuments
16
16
  end
17
17
 
18
18
  def format_number
19
- @number.sub(/(\d{3})(\d{3})(\d{3})(\d{2})/, "\\1.\\2.\\3-\\4")
19
+ @number.sub(/(\d{3})(\d{3})(\d{3})(\d{2})/, '\\1.\\2.\\3-\\4')
20
20
  end
21
21
  end
22
22
  end
@@ -1,4 +1,4 @@
1
- require_relative "../commons/mod11"
1
+ require_relative '../commons/mod11'
2
2
 
3
3
  module BrDocuments
4
4
  module CnpjCpf
@@ -10,11 +10,11 @@ module BrDocuments
10
10
  end
11
11
 
12
12
  def valid?
13
- valid_format? && !sequence_of_equal_numbers? && valid_digital_check?
13
+ valid_format? && !sequence_of_equal_numbers? && valid_check_digit?
14
14
  end
15
15
 
16
16
  def formatted
17
- valid? ? format_number : ""
17
+ valid? ? format_number : ''
18
18
  end
19
19
 
20
20
  private
@@ -24,19 +24,19 @@ module BrDocuments
24
24
  end
25
25
 
26
26
  def sequence_of_equal_numbers?
27
- number_without_mask.split("").uniq.length == 1
27
+ number_without_mask.chars.uniq.length == 1
28
28
  end
29
29
 
30
- def valid_digital_check?
30
+ def valid_check_digit?
31
31
  weight1, weight2 = weights_for_digital_check
32
32
 
33
- digital_check1 = generate_digital_check(number_without_mask, weight1)
34
- digital_check2 = generate_digital_check(number_without_mask, weight2)
35
- @number[-2, 2].eql? "#{digital_check1}#{digital_check2}"
33
+ digital_check1 = generate_check_digit(number_without_mask, weight1)
34
+ digital_check2 = generate_check_digit(number_without_mask, weight2)
35
+ @number[-2, 2] == "#{digital_check1}#{digital_check2}"
36
36
  end
37
37
 
38
38
  def number_without_mask
39
- @number.gsub(/[\.\/-]/, "")
39
+ @number.gsub(/[\.\/-]/, '')
40
40
  end
41
41
  end
42
42
  end