rubocop-config-captive 1.0.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +5 -1
- data/README.md +11 -1
- data/config/__private__/rubocop-airbnb.yml +1 -1
- data/config/__private__/rubocop-bundler.yml +1 -1
- data/config/__private__/rubocop-capybara.yml +7 -0
- data/config/__private__/rubocop-gemspec.yml +1 -1
- data/config/__private__/rubocop-layout.yml +1 -1
- data/config/__private__/rubocop-lint.yml +1 -1
- data/config/__private__/rubocop-metrics.yml +1 -1
- data/config/__private__/rubocop-naming.yml +1 -1
- data/config/__private__/rubocop-performance.yml +1 -1
- data/config/__private__/rubocop-rails.yml +1 -1
- data/config/__private__/rubocop-rspec.yml +21 -94
- data/config/__private__/rubocop-security.yml +1 -1
- data/config/__private__/rubocop-style.yml +1 -1
- data/config/rubocop-bundler.yml +3 -0
- data/config/rubocop-captive.yml +5 -0
- data/lib/rubocop/captive/version.rb +1 -1
- data/lib/rubocop/cop/captive/active_admin/active_admin_addons_presence.rb +9 -0
- data/lib/rubocop/cop/captive/no_app_env.rb +28 -0
- data/lib/rubocop/cop/captive/string_where_in_scope.rb +14 -0
- data/lib/rubocop/cop/captive/translation/devise_i18n_presence.rb +9 -0
- data/lib/rubocop/cop/captive/translation/kaminari_i18n_presence.rb +9 -0
- data/lib/rubocop/cop/captive/translation/rails_i18n_presence.rb +9 -0
- data/rubocop-config-captive.gemspec +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc95a360374085a6fc41b84492a751f49109deda5cebd33475bf81b6425bb7b2
|
4
|
+
data.tar.gz: c4a32511f6caa8236bf57c411d30f5ca94453d376b066352b0fc797a5f543f2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7300f2e8987fea65e0815bc1c0ab39b605d458191b9ff32f9135600d4bb0035948379f2618291bf01037aa8eaf5a70d72845663e881fef4f3f49d639024cf731
|
7
|
+
data.tar.gz: a8c8772907072d6d68404c52bebc83f989d2a43fdd32e58763e119745d63a1c2d96713cbd3249382d85424db904be3ff534c28ed9bea6750d4dbb66019191737
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -32,7 +32,9 @@ inherit_gem:
|
|
32
32
|
# - config/rubocop-XXX.yml
|
33
33
|
```
|
34
34
|
|
35
|
-
##
|
35
|
+
## Common Errors
|
36
|
+
|
37
|
+
### My project has too many errors
|
36
38
|
|
37
39
|
Firstly, you can use `bundle exec rubocop -a` to auto-correct your project
|
38
40
|
|
@@ -40,6 +42,14 @@ Then if you have too many warnings, you can use the command line :
|
|
40
42
|
|
41
43
|
`bundle exec rubocop --auto-gen-config` to create `.rubocop_todo.yml` file that ignore these errors
|
42
44
|
|
45
|
+
### `Gemfile` has lots of `Bundler/GemVersion` errors
|
46
|
+
|
47
|
+
Explanation : Each dependency should be explicitly set in the `Gemfile` and `bundle update` is strongly discouraged.
|
48
|
+
Workaround :
|
49
|
+
|
50
|
+
1. Install gem bundle-locker : `gem install bundle-locker`
|
51
|
+
1. Pin Gemfile using Gemfile.lock : `bundle-locker ./Gemfile`
|
52
|
+
|
43
53
|
## Contributing
|
44
54
|
|
45
55
|
To contribute, here are some inspirations for good configurations :
|
@@ -1,4 +1,4 @@
|
|
1
|
-
###
|
1
|
+
### 🚨 GENERATED WITH `script/pull`. DO NOT EDIT MANUALLY. ###
|
2
2
|
# All of these rules are implemented in this gem.
|
3
3
|
# They are custom built for use inside Airbnb and address issues that we have experienced in
|
4
4
|
# testing and production.
|
@@ -1,85 +1,65 @@
|
|
1
|
-
###
|
1
|
+
### 🚨 GENERATED WITH `script/pull`. DO NOT EDIT MANUALLY. ###
|
2
2
|
require:
|
3
3
|
- rubocop-rspec
|
4
|
-
|
5
4
|
RSpec/AlignLeftLetBrace:
|
6
5
|
Description: Checks that left braces for adjacent single line lets are aligned.
|
7
6
|
Enabled: false
|
8
|
-
|
9
7
|
RSpec/AlignRightLetBrace:
|
10
8
|
Description: Checks that right braces for adjacent single line lets are aligned.
|
11
9
|
Enabled: false
|
12
|
-
|
13
10
|
RSpec/AnyInstance:
|
14
11
|
Description: 'Prefer instance doubles over stubbing any instance of a class'
|
15
12
|
Enabled: false
|
16
|
-
|
17
13
|
RSpec/AroundBlock:
|
18
14
|
Description: Checks that around blocks actually run the test.
|
19
15
|
Enabled: true
|
20
|
-
|
21
16
|
RSpec/Be:
|
22
17
|
Description: Check for expectations where `be` is used without argument.
|
23
18
|
Enabled: true
|
24
|
-
|
25
19
|
RSpec/BeEql:
|
26
20
|
Description: Check for expectations where `be(...)` can replace `eql(...)`.
|
27
21
|
Enabled: false
|
28
|
-
|
29
22
|
RSpec/BeforeAfterAll:
|
30
23
|
Description: Check that before/after(:all) isn't being used.
|
31
24
|
Enabled: true
|
32
25
|
Exclude:
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
26
|
+
- spec/spec_helper.rb
|
27
|
+
- spec/rails_helper.rb
|
28
|
+
- spec/support/**/*.rb
|
37
29
|
RSpec/ContextWording:
|
38
30
|
Description: "`context` block descriptions should start with 'when', or 'with'."
|
39
31
|
Enabled: false
|
40
|
-
|
41
32
|
RSpec/DescribeClass:
|
42
33
|
Description: 'Check that the first argument to the top level describe is the tested class or module.'
|
43
34
|
Enabled: false
|
44
|
-
|
45
35
|
RSpec/DescribeMethod:
|
46
36
|
Description: 'Checks that the second argument to top level describe is the tested method name.'
|
47
37
|
Enabled: false
|
48
|
-
|
49
38
|
RSpec/DescribeSymbol:
|
50
39
|
Description: Avoid describing symbols.
|
51
40
|
Enabled: true
|
52
|
-
|
53
41
|
RSpec/DescribedClass:
|
54
42
|
Description: 'Use `described_class` for tested class / module'
|
55
43
|
Enabled: false
|
56
|
-
|
57
44
|
RSpec/EmptyExampleGroup:
|
58
45
|
Description: Checks if an example group does not include any tests.
|
59
46
|
Enabled: true
|
60
|
-
|
61
47
|
RSpec/EmptyLineAfterExampleGroup:
|
62
48
|
Description: Checks if there is an empty line after example group blocks.
|
63
49
|
Enabled: true
|
64
|
-
|
65
50
|
RSpec/EmptyLineAfterFinalLet:
|
66
51
|
Description: Checks if there is an empty line after the last let block.
|
67
52
|
Enabled: true
|
68
|
-
|
69
53
|
RSpec/EmptyLineAfterHook:
|
70
54
|
Description: Checks if there is an empty line after hook blocks.
|
71
55
|
Enabled: true
|
72
|
-
|
73
56
|
RSpec/EmptyLineAfterSubject:
|
74
57
|
Description: Checks if there is an empty line after subject block.
|
75
58
|
Enabled: true
|
76
|
-
|
77
59
|
RSpec/ExampleLength:
|
78
60
|
Description: >-
|
79
|
-
A long example is usually more difficult to understand.
|
80
|
-
Consider extracting out some behaviour, e.g. with a `let` block, or a helper method.
|
61
|
+
A long example is usually more difficult to understand. Consider extracting out some behaviour, e.g. with a `let` block, or a helper method.
|
81
62
|
Enabled: false
|
82
|
-
|
83
63
|
RSpec/ExampleWording:
|
84
64
|
Description: 'Do not use should when describing your tests.'
|
85
65
|
Enabled: true
|
@@ -96,139 +76,112 @@ RSpec/ExampleWording:
|
|
96
76
|
response: responds
|
97
77
|
be redirect: redirects
|
98
78
|
IgnoredWords: []
|
99
|
-
|
100
79
|
RSpec/ExpectActual:
|
101
80
|
Description: Checks for `expect(...)` calls containing literal values.
|
102
81
|
Enabled: true
|
103
82
|
Exclude:
|
104
|
-
|
105
|
-
|
83
|
+
- spec/routing/**/*
|
106
84
|
RSpec/ExpectInHook:
|
107
85
|
Enabled: true
|
108
86
|
Description: Do not use `expect` in hooks such as `before`.
|
109
|
-
|
110
87
|
RSpec/ExpectOutput:
|
111
88
|
Description: Checks for opportunities to use `expect { ... }.to output`.
|
112
89
|
Enabled: false
|
113
|
-
|
114
90
|
RSpec/FilePath:
|
115
91
|
Description: 'Checks the file and folder naming of the spec file.'
|
116
92
|
Enabled: false
|
117
93
|
CustomTransform:
|
118
94
|
RuboCop: rubocop
|
119
95
|
RSpec: rspec
|
120
|
-
|
121
96
|
RSpec/Focus:
|
122
97
|
Description: Checks if examples are focused.
|
123
98
|
Enabled: false
|
124
|
-
|
125
99
|
RSpec/HookArgument:
|
126
100
|
Description: Checks the arguments passed to `before`, `around`, and `after`.
|
127
101
|
Enabled: false
|
128
102
|
EnforcedStyle: implicit
|
129
103
|
SupportedStyles:
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
104
|
+
- implicit
|
105
|
+
- each
|
106
|
+
- example
|
134
107
|
RSpec/HooksBeforeExamples:
|
135
108
|
Description: Checks for before/around/after hooks that come after an example.
|
136
109
|
Enabled: true
|
137
|
-
|
138
110
|
RSpec/ImplicitExpect:
|
139
111
|
Description: Check that a consistent implicit expectation style is used.
|
140
112
|
Enabled: false
|
141
113
|
EnforcedStyle: is_expected
|
142
114
|
SupportedStyles:
|
143
|
-
|
144
|
-
|
145
|
-
|
115
|
+
- is_expected
|
116
|
+
- should
|
146
117
|
RSpec/ImplicitSubject:
|
147
118
|
Description: 'Checks for usage of implicit subject (`is_expected` / `should`).'
|
148
119
|
Enabled: false
|
149
|
-
|
150
120
|
RSpec/InstanceSpy:
|
151
121
|
Description: Checks for `instance_double` used with `have_received`.
|
152
122
|
Enabled: false
|
153
|
-
|
154
123
|
RSpec/InstanceVariable:
|
155
124
|
Description: 'Checks for the usage of instance variables.'
|
156
125
|
Enabled: false
|
157
|
-
|
158
126
|
RSpec/ItBehavesLike:
|
159
127
|
Description: Checks that only one `it_behaves_like` style is used.
|
160
128
|
Enabled: false
|
161
129
|
EnforcedStyle: it_behaves_like
|
162
130
|
SupportedStyles:
|
163
|
-
|
164
|
-
|
165
|
-
|
131
|
+
- it_behaves_like
|
132
|
+
- it_should_behave_like
|
166
133
|
RSpec/IteratedExpectation:
|
167
134
|
Description: Check that `all` matcher is used instead of iterating over an array.
|
168
135
|
Enabled: false
|
169
|
-
|
170
136
|
RSpec/LeadingSubject:
|
171
137
|
Description: Checks for `subject` definitions that come after `let` definitions.
|
172
138
|
Enabled: true
|
173
|
-
|
174
139
|
RSpec/LetBeforeExamples:
|
175
140
|
Description: Checks for `let` definitions that come after an example.
|
176
141
|
Enabled: true
|
177
|
-
|
178
142
|
RSpec/LetSetup:
|
179
143
|
Description: Checks unreferenced `let!` calls being used for test setup.
|
180
144
|
Enabled: false
|
181
|
-
|
182
145
|
RSpec/MessageChain:
|
183
146
|
Description: Check that chains of messages are not being stubbed.
|
184
147
|
Enabled: false
|
185
|
-
|
186
148
|
RSpec/MessageExpectation:
|
187
149
|
Description: Checks for consistent message expectation style.
|
188
150
|
Enabled: false
|
189
151
|
EnforcedStyle: allow
|
190
152
|
SupportedStyles:
|
191
|
-
|
192
|
-
|
193
|
-
|
153
|
+
- allow
|
154
|
+
- expect
|
194
155
|
RSpec/MessageSpies:
|
195
156
|
Description: Checks that message expectations are set using spies.
|
196
157
|
Enabled: false
|
197
158
|
EnforcedStyle: have_received
|
198
159
|
SupportedStyles:
|
199
|
-
|
200
|
-
|
201
|
-
|
160
|
+
- have_received
|
161
|
+
- receive
|
202
162
|
RSpec/MissingExampleGroupArgument:
|
203
163
|
Description: Checks that the first argument to an example group is not empty.
|
204
164
|
Enabled: true
|
205
|
-
|
206
165
|
RSpec/MultipleDescribes:
|
207
166
|
Description: 'Checks for multiple top level describes.'
|
208
167
|
Enabled: true
|
209
|
-
|
210
168
|
RSpec/MultipleExpectations:
|
211
169
|
Description: Checks if examples contain too many `expect` calls.
|
212
170
|
Enabled: false
|
213
171
|
Max: 1
|
214
|
-
|
215
172
|
RSpec/MultipleSubjects:
|
216
173
|
Description: Checks if an example group defines `subject` multiple times.
|
217
174
|
Enabled: true
|
218
|
-
|
219
175
|
RSpec/NamedSubject:
|
220
176
|
Description: Checks for explicitly referenced test subjects.
|
221
177
|
Enabled: false
|
222
|
-
|
223
178
|
RSpec/NestedGroups:
|
224
179
|
Description: Checks for nested example groups.
|
225
180
|
Enabled: false
|
226
181
|
Max: 3
|
227
|
-
|
228
182
|
RSpec/ReceiveNever:
|
229
183
|
Description: 'Prefer `not_to receive(…)` over `receive(…).never`.'
|
230
184
|
Enabled: true
|
231
|
-
|
232
185
|
RSpec/NotToNot:
|
233
186
|
Description: 'Enforces the usage of the same method on all negative message expectations.'
|
234
187
|
Enabled: true
|
@@ -236,92 +189,66 @@ RSpec/NotToNot:
|
|
236
189
|
SupportedStyles:
|
237
190
|
- not_to
|
238
191
|
- to_not
|
239
|
-
|
240
192
|
RSpec/OverwritingSetup:
|
241
193
|
Enabled: false
|
242
194
|
Description: Checks if there is a let/subject that overwrites an existing one.
|
243
|
-
|
244
195
|
RSpec/Pending:
|
245
196
|
Description: Checks for any pending or skipped examples.
|
246
197
|
Enabled: false
|
247
|
-
|
248
198
|
RSpec/PredicateMatcher:
|
249
199
|
Description: Prefer using predicate matcher over using predicate method directly.
|
250
200
|
Enabled: false
|
251
201
|
Strict: true
|
252
202
|
EnforcedStyle: inflected
|
253
203
|
SupportedStyles:
|
254
|
-
|
255
|
-
|
256
|
-
|
204
|
+
- inflected
|
205
|
+
- explicit
|
257
206
|
RSpec/ReceiveCounts:
|
258
207
|
Description: Check for `once` and `twice` receive counts matchers usage.
|
259
208
|
Enabled: false
|
260
|
-
|
261
209
|
RSpec/RepeatedDescription:
|
262
210
|
Description: Check for repeated description strings in example groups.
|
263
211
|
Enabled: true
|
264
|
-
|
265
212
|
RSpec/RepeatedExample:
|
266
213
|
Enabled: true
|
267
214
|
Description: Check for repeated examples within example groups.
|
268
|
-
|
269
215
|
RSpec/ReturnFromStub:
|
270
216
|
Enabled: true
|
271
217
|
Description: Checks for consistent style of stub's return setting.
|
272
218
|
EnforcedStyle: and_return
|
273
219
|
SupportedStyles:
|
274
|
-
|
275
|
-
|
276
|
-
|
220
|
+
- and_return
|
221
|
+
- block
|
277
222
|
RSpec/ScatteredLet:
|
278
223
|
Description: Checks for let scattered across the example group.
|
279
224
|
Enabled: true
|
280
|
-
|
281
225
|
RSpec/ScatteredSetup:
|
282
226
|
Description: Checks for setup scattered across multiple hooks in an example group.
|
283
227
|
Enabled: true
|
284
|
-
|
285
228
|
RSpec/SharedContext:
|
286
229
|
Description: Checks for proper shared_context and shared_examples usage.
|
287
230
|
Enabled: false
|
288
|
-
|
289
231
|
RSpec/SharedExamples:
|
290
232
|
Description: Enforces use of string to titleize shared examples.
|
291
233
|
Enabled: true
|
292
|
-
|
293
234
|
RSpec/SingleArgumentMessageChain:
|
294
235
|
Description: Checks that chains of messages contain more than one element.
|
295
236
|
Enabled: true
|
296
|
-
|
297
237
|
RSpec/SubjectStub:
|
298
238
|
Description: Checks for stubbed test subjects.
|
299
239
|
Enabled: false
|
300
|
-
|
301
240
|
RSpec/UnspecifiedException:
|
302
241
|
Description: Checks for a specified error in checking raised errors.
|
303
242
|
Enabled: false
|
304
|
-
|
305
243
|
RSpec/VerifiedDoubles:
|
306
244
|
Description: 'Prefer using verifying doubles over normal doubles.'
|
307
245
|
Enabled: false
|
308
|
-
|
309
246
|
RSpec/VoidExpect:
|
310
247
|
Description: This cop checks void `expect()`.
|
311
248
|
Enabled: false
|
312
|
-
|
313
|
-
RSpec/Capybara/CurrentPathExpectation:
|
314
|
-
Description: Checks that no expectations are set on Capybara's `current_path`.
|
315
|
-
Enabled: false
|
316
|
-
|
317
|
-
RSpec/Capybara/FeatureMethods:
|
318
|
-
Description: Checks for consistent method usage in feature specs.
|
319
|
-
Enabled: false
|
320
|
-
|
321
249
|
RSpec/FactoryBot/AttributeDefinedStatically:
|
322
250
|
Description: Always declare attribute values as blocks.
|
323
251
|
Enabled: false
|
324
|
-
|
325
252
|
RSpec/FactoryBot/CreateList:
|
326
253
|
Description: Checks for create_list usage.
|
327
254
|
Enabled: true
|
data/config/rubocop-bundler.yml
CHANGED
data/config/rubocop-captive.yml
CHANGED
@@ -4,6 +4,7 @@ require:
|
|
4
4
|
- ../lib/rubocop/cop/captive/translation/rails_i18n_presence.rb
|
5
5
|
- ../lib/rubocop/cop/captive/translation/kaminari_i18n_presence.rb
|
6
6
|
- ../lib/rubocop/cop/captive/string_where_in_scope.rb
|
7
|
+
- ../lib/rubocop/cop/captive/no_app_env.rb
|
7
8
|
|
8
9
|
# ActiveAdmin
|
9
10
|
Captive/ActiveAdmin/ActiveAdminAddonsPresence:
|
@@ -27,7 +28,11 @@ Captive/Translation/KaminariI18nPresence:
|
|
27
28
|
Include:
|
28
29
|
- 'Gemfile'
|
29
30
|
|
31
|
+
# other
|
30
32
|
Captive/StringWhereInScope:
|
31
33
|
Description: 'The `where` method should be used in a scope in a model.'
|
32
34
|
Exclude:
|
33
35
|
- 'app/models/**/*'
|
36
|
+
|
37
|
+
Captive/NoAppEnv:
|
38
|
+
Description: "Do not use `APP_ENV` environment variable as it conflicts with standard Rails/Rack environment variable `RAILS_ENV`."
|
@@ -4,6 +4,15 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module Captive
|
6
6
|
module ActiveAdmin
|
7
|
+
# Ensure to use the gem activeadmin_addons in order to have some additionnal features
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# # bad
|
11
|
+
# gem 'activeadmin'
|
12
|
+
#
|
13
|
+
# # good
|
14
|
+
# gem 'activeadmin'
|
15
|
+
# gem 'activeadmin_addons'
|
7
16
|
class ActiveAdminAddonsPresence < RuboCop::Cop::Cop
|
8
17
|
MSG = "The gem `activeadmin_addons` should be added to the Gemfile "\
|
9
18
|
"if `activeadmin` is present in Gemfile"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Captive
|
6
|
+
# This cop checks for usages of the `APP_ENV` environment variable.
|
7
|
+
# Usage of `APP_ENV` is prohibited as it conflicts with standard Rails/Rack
|
8
|
+
# environment variable `RAILS_ENV` and may lead to unexpected results.
|
9
|
+
class NoAppEnv < RuboCop::Cop::Cop
|
10
|
+
MSG = "Do not use `APP_ENV` environment variable as it conflicts with "\
|
11
|
+
"standard Rails/Rack environment variable `RAILS_ENV`."
|
12
|
+
|
13
|
+
def_node_matcher :env_variable?, <<~PATTERN
|
14
|
+
(send
|
15
|
+
(const _ :ENV) {:[] :fetch}
|
16
|
+
(str "APP_ENV")
|
17
|
+
...
|
18
|
+
)
|
19
|
+
PATTERN
|
20
|
+
|
21
|
+
def on_send(node)
|
22
|
+
return unless env_variable?(node)
|
23
|
+
add_offense(node, message: MSG)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -3,6 +3,20 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Captive
|
6
|
+
##
|
7
|
+
# Prevents to use `where` with string that contains SQL apart from model.
|
8
|
+
# Like `where('date > ?', Date.current)`
|
9
|
+
# there, you writing a part of SQL.
|
10
|
+
# That's why it's important to write this, into a model, in order to respect the MVC architecture
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# # bad
|
14
|
+
# where('date > ?', Date.current)
|
15
|
+
#
|
16
|
+
# # good
|
17
|
+
# date_after(Date.current)
|
18
|
+
#
|
19
|
+
# scope :date_after, ->(date) { where('date > ?', date) }
|
6
20
|
class StringWhereInScope < RuboCop::Cop::Cop
|
7
21
|
MSG = 'The `where` method should be used in a scope in a model.'
|
8
22
|
|
@@ -4,6 +4,15 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module Captive
|
6
6
|
module Translation
|
7
|
+
# Ensure to use the gem devise-i18n in order to have translation
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# # bad
|
11
|
+
# gem 'devise'
|
12
|
+
#
|
13
|
+
# # good
|
14
|
+
# gem 'devise'
|
15
|
+
# gem 'devise-i18n'
|
7
16
|
class DeviseI18nPresence < RuboCop::Cop::Cop
|
8
17
|
MSG = "The gem `devise-i18n` should be added to the Gemfile "\
|
9
18
|
"if `devise` is present in Gemfile"
|
@@ -6,6 +6,15 @@ module RuboCop
|
|
6
6
|
module Cop
|
7
7
|
module Captive
|
8
8
|
module Translation
|
9
|
+
# Ensure to use the gem kaminari-i18n in order to have translation
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# # bad
|
13
|
+
# gem 'kaminari'
|
14
|
+
#
|
15
|
+
# # good
|
16
|
+
# gem 'kaminari'
|
17
|
+
# gem 'kaminari-i18n'
|
9
18
|
class KaminariI18nPresence < RuboCop::Cop::Cop
|
10
19
|
MSG = "The gem `kaminari-i18n` should be added to the Gemfile "\
|
11
20
|
"if `kaminari` is present in Gemfile"
|
@@ -6,6 +6,15 @@ module RuboCop
|
|
6
6
|
module Cop
|
7
7
|
module Captive
|
8
8
|
module Translation
|
9
|
+
# Ensure to use the gem rails-i18n in order to have translation
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# # bad
|
13
|
+
# gem 'rails'
|
14
|
+
#
|
15
|
+
# # good
|
16
|
+
# gem 'rails'
|
17
|
+
# gem 'rails-i18n'
|
9
18
|
class RailsI18nPresence < RuboCop::Cop::Cop
|
10
19
|
MSG = "The gem `rails-i18n` should be added to the Gemfile "\
|
11
20
|
"if `rails` is present in Gemfile"
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |gem|
|
|
30
30
|
gem.add_dependency('rubocop-rake', '~> 0.6.0')
|
31
31
|
gem.add_dependency('rubocop-rails', '~> 2.18.0')
|
32
32
|
gem.add_dependency('rubocop-rspec', '~> 2.19.0')
|
33
|
-
gem.add_dependency('rubocop-capybara', '~> 2.
|
33
|
+
gem.add_dependency('rubocop-capybara', '~> 2.18.0')
|
34
34
|
gem.add_development_dependency('rspec', '~> 3.12')
|
35
35
|
# gem.metadata['rubygems_mfa_required'] = 'true'
|
36
36
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-config-captive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Captive
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-05-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rubocop
|
@@ -88,14 +88,14 @@ dependencies:
|
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 2.
|
91
|
+
version: 2.18.0
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 2.
|
98
|
+
version: 2.18.0
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: rspec
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +122,7 @@ files:
|
|
122
122
|
- config/__private__/README.md
|
123
123
|
- config/__private__/rubocop-airbnb.yml
|
124
124
|
- config/__private__/rubocop-bundler.yml
|
125
|
+
- config/__private__/rubocop-capybara.yml
|
125
126
|
- config/__private__/rubocop-gemspec.yml
|
126
127
|
- config/__private__/rubocop-layout.yml
|
127
128
|
- config/__private__/rubocop-lint.yml
|
@@ -152,6 +153,7 @@ files:
|
|
152
153
|
- lib/rubocop/captive/inject.rb
|
153
154
|
- lib/rubocop/captive/version.rb
|
154
155
|
- lib/rubocop/cop/captive/active_admin/active_admin_addons_presence.rb
|
156
|
+
- lib/rubocop/cop/captive/no_app_env.rb
|
155
157
|
- lib/rubocop/cop/captive/string_where_in_scope.rb
|
156
158
|
- lib/rubocop/cop/captive/translation/devise_i18n_presence.rb
|
157
159
|
- lib/rubocop/cop/captive/translation/kaminari_i18n_presence.rb
|