Skip to content

Commit 625fc88

Browse files
committed
Configure Rubocop
1 parent adaa598 commit 625fc88

6 files changed

Lines changed: 46 additions & 17 deletions

File tree

.rubocop.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
1+
plugins:
2+
- rubocop-minitest
3+
- rubocop-rake
4+
15
AllCops:
26
TargetRubyVersion: 3.1
7+
NewCops: enable
38

49
Style/StringLiterals:
510
EnforcedStyle: double_quotes
611

712
Style/StringLiteralsInInterpolation:
813
EnforcedStyle: double_quotes
14+
15+
Style/NumericPredicate:
16+
Enabled: false
17+
18+
Style/Documentation:
19+
Enabled: false
20+
21+
Metrics/MethodLength:
22+
CountAsOne: ['array', 'hash', 'heredoc', 'method_call']

Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ gem "rake", "~> 13.0"
1010
gem "minitest", "~> 5.16"
1111

1212
gem "rubocop", "~> 1.21"
13+
gem "rubocop-minitest", "~> 0.38", require: false
14+
gem "rubocop-rake", "~> 0.7", require: false

Gemfile.lock

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,13 @@ GEM
5858
rubocop-ast (1.45.1)
5959
parser (>= 3.3.7.2)
6060
prism (~> 1.4)
61+
rubocop-minitest (0.38.1)
62+
lint_roller (~> 1.1)
63+
rubocop (>= 1.75.0, < 2.0)
64+
rubocop-ast (>= 1.38.0, < 2.0)
65+
rubocop-rake (0.7.1)
66+
lint_roller (~> 1.1)
67+
rubocop (>= 1.72.1)
6168
ruby-progressbar (1.13.0)
6269
securerandom (0.4.1)
6370
tzinfo (2.0.6)
@@ -74,6 +81,8 @@ DEPENDENCIES
7481
minitest (~> 5.16)
7582
rake (~> 13.0)
7683
rubocop (~> 1.21)
84+
rubocop-minitest (~> 0.38)
85+
rubocop-rake (~> 0.7)
7786
siret_validator!
7887

7988
BUNDLED WITH

lib/siret_validator.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
require "active_model"
44
require "active_support/i18n"
5-
I18n.load_path += Dir[File.dirname(__FILE__) + "/locale/*.yml"]
5+
I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"]
66

77
module ActiveModel
88
module Validations
@@ -81,4 +81,3 @@ def validates_siret_of(*attr_names)
8181
end
8282
end
8383
end
84-

siret_validator.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
1414
spec.metadata["homepage_uri"] = spec.homepage
1515
spec.metadata["source_code_uri"] = "https://github.com/CodeursenLiberte/siret_validator"
1616
spec.metadata["changelog_uri"] = "https://github.com/CodeursenLiberte/siret_validator/blob/main/CHANGELOG.md"
17+
spec.metadata["rubygems_mfa_required"] = "true"
1718

1819
# Specify which files should be added to the gem when it is released.
1920
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.

test/test_siret_validator.rb

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,30 @@ def test_validate_siret
1919
Company.validates_siret_of(:siret)
2020

2121
model = Company.new(siret: INVALID_SIRET)
22+
2223
assert_predicate model, :invalid?
23-
assert model.errors.has_key?(:siret)
24+
assert model.errors.key?(:siret)
2425

2526
model.siret = VALID_SIRET
27+
2628
assert_predicate model, :valid?
27-
refute model.errors.has_key?(:siret)
29+
refute model.errors.key?(:siret)
2830
end
2931

3032
def test_validate_siret_cases
3133
Company.validates_siret_of(:siret)
3234

3335
cases = {
34-
nil => :wrong_siret_format, # nil
35-
"" => :wrong_siret_format, # blank
36-
"8216114310003" => :wrong_siret_format, # too short
37-
"invalid--siret" => :wrong_siret_format, # invalid characters
38-
"82161143100031" => nil, # valid siret
36+
nil => :wrong_siret_format, # nil
37+
"" => :wrong_siret_format, # blank
38+
"8216114310003" => :wrong_siret_format, # too short
39+
"invalid--siret" => :wrong_siret_format, # invalid characters
40+
"82161143100031" => nil, # valid siret
3941
"821611431000314" => :wrong_siret_format, # too long
40-
"82161143100039" => :invalid, # invalid luhn
41-
"35600000000048" => nil, # La Poste siège
42-
"35600000041461" => nil, # La Poste établissement
43-
"35600000041462" => :invalid # invalid La Poste établissement
42+
"82161143100039" => :invalid, # invalid luhn
43+
"35600000000048" => nil, # La Poste siège
44+
"35600000041461" => nil, # La Poste établissement
45+
"35600000041462" => :invalid # invalid La Poste établissement
4446
}
4547

4648
cases.each do |(siret, expected_error)|
@@ -70,27 +72,29 @@ def test_validate_siret_localized_message
7072
c = Company.new(siret: "foo")
7173

7274
with_locale(:en) do
73-
assert_equal c.tap(&:validate).errors[:siret], ["is the wrong length (should be 14 digits)"]
75+
assert_equal ["is the wrong length (should be 14 digits)"], c.tap(&:validate).errors[:siret]
7476
end
7577

7678
with_locale(:fr) do
77-
assert_equal c.tap(&:validate).errors[:siret], ["ne fait pas la bonne longueur (doit comporter 14 chiffres)"]
79+
assert_equal ["ne fait pas la bonne longueur (doit comporter 14 chiffres)"], c.tap(&:validate).errors[:siret]
7880
end
7981
end
8082

8183
def test_validate_siret_with_custom_message
8284
Company.validates_siret_of(:siret, message: "is invalid")
8385

8486
c = Company.new(siret: "foo").tap(&:validate)
85-
assert_equal c.errors[:siret], ["is invalid"]
87+
88+
assert_equal ["is invalid"], c.errors[:siret]
8689
end
8790

8891
private
8992

9093
def assert_siret_validity(siret, expected_error)
9194
model = Company.new(siret: siret).tap(&:validate)
9295
if expected_error.present?
93-
assert(model.errors.where(:siret, expected_error).present?, "Expected '#{siret}' to generate a ':#{expected_error}' validation error")
96+
assert_predicate(model.errors.where(:siret, expected_error), :present?,
97+
"Expected '#{siret}' to generate a ':#{expected_error}' validation error")
9498
else
9599
assert_empty(model.errors[:siret], "Expected '#{siret}' to be valid")
96100
end

0 commit comments

Comments
 (0)