dvla-lint 1.7.1
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 +7 -0
- data/.github/workflows/gem-push.yml +48 -0
- data/.github/workflows/gem-test.yml +22 -0
- data/.gitignore +19 -0
- data/.rspec +3 -0
- data/.rubocop.yml +26 -0
- data/.ruby-version +1 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +32 -0
- data/Rakefile +8 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/dvla-lint.gemspec +41 -0
- data/exe/dvla-lint +66 -0
- data/lib/dvla/lint/version.rb +7 -0
- data/lib/dvla/lint.rb +13 -0
- data/rules/dvla-ruby-styleguide.yml +663 -0
- data/rules/other-excludes.yml +19 -0
- data/rules/other-gemspec.yml +7 -0
- data/rules/other-lint.yml +161 -0
- data/rules/other-metrics.yml +11 -0
- data/rules/other-rails.yml +42 -0
- data/rules/other-security.yml +3 -0
- data/rules/other-style.yml +522 -0
- metadata +197 -0
@@ -0,0 +1,663 @@
|
|
1
|
+
#################
|
2
|
+
## DVLA Specials
|
3
|
+
#################
|
4
|
+
|
5
|
+
AllCops:
|
6
|
+
TargetRubyVersion: 3.0
|
7
|
+
|
8
|
+
############
|
9
|
+
## General
|
10
|
+
############
|
11
|
+
|
12
|
+
Layout/BlockAlignment:
|
13
|
+
Description: "Align block ends correctly."
|
14
|
+
Enabled: true
|
15
|
+
|
16
|
+
Layout/CaseIndentation:
|
17
|
+
Description: Indentation of when in a case/when/[else/]end.
|
18
|
+
Enabled: true
|
19
|
+
EnforcedStyle: case
|
20
|
+
SupportedStyles:
|
21
|
+
- case
|
22
|
+
- end
|
23
|
+
IndentOneStep: false
|
24
|
+
|
25
|
+
Layout/ClosingParenthesisIndentation:
|
26
|
+
Description: "Checks the indentation of hanging closing parentheses."
|
27
|
+
Enabled: false
|
28
|
+
|
29
|
+
Style/MutableConstant:
|
30
|
+
Description: "Freeze mutable objects assigned to constants."
|
31
|
+
Enabled: true
|
32
|
+
|
33
|
+
Lint/ElseLayout:
|
34
|
+
Description: "Check for odd code arrangement in an else block."
|
35
|
+
Enabled: true
|
36
|
+
|
37
|
+
# Supports --auto-correct
|
38
|
+
Layout/EmptyLineBetweenDefs:
|
39
|
+
Description: Use empty lines between defs.
|
40
|
+
Enabled: true
|
41
|
+
AllowAdjacentOneLineDefs: false
|
42
|
+
|
43
|
+
Layout/EmptyLines:
|
44
|
+
Description: "Don't use several empty lines in a row."
|
45
|
+
Enabled: true
|
46
|
+
|
47
|
+
Layout/EndAlignment:
|
48
|
+
Description: "Align ends correctly."
|
49
|
+
Enabled: true
|
50
|
+
|
51
|
+
Layout/EndOfLine:
|
52
|
+
Description: "Use Unix-style line endings."
|
53
|
+
Enabled: true
|
54
|
+
|
55
|
+
# Supports --auto-correct
|
56
|
+
Layout/IndentationWidth:
|
57
|
+
Description: Use 2 spaces for indentation.
|
58
|
+
Enabled: true
|
59
|
+
|
60
|
+
# Supports --auto-correct
|
61
|
+
Layout/IndentationConsistency:
|
62
|
+
Description: Keep indentation straight.
|
63
|
+
Enabled: true
|
64
|
+
|
65
|
+
Layout/LineContinuationLeadingSpace:
|
66
|
+
Description: Checks that strings broken over multiple lines have leading/trailing spaces
|
67
|
+
Enabled: true
|
68
|
+
|
69
|
+
Layout/LineContinuationSpacing:
|
70
|
+
Description: Checks that the backslash of a line continuation is separated from preceeding text by exactly one or zero spaces
|
71
|
+
Enabled: true
|
72
|
+
|
73
|
+
Layout/LineLength:
|
74
|
+
Description: Limit lines to 80 characters.
|
75
|
+
Enabled: false
|
76
|
+
Max: 120
|
77
|
+
|
78
|
+
# Supports --auto-correct
|
79
|
+
Layout/SpaceAroundOperators:
|
80
|
+
Description: Use spaces around operators.
|
81
|
+
Enabled: true
|
82
|
+
|
83
|
+
# Supports --auto-correct
|
84
|
+
Layout/SpaceBeforeBlockBraces:
|
85
|
+
Description: Checks that the left block brace has or doesn't have space before it.
|
86
|
+
Enabled: true
|
87
|
+
EnforcedStyle: space
|
88
|
+
SupportedStyles:
|
89
|
+
- space
|
90
|
+
- no_space
|
91
|
+
|
92
|
+
# Supports --auto-correct
|
93
|
+
Layout/SpaceAfterSemicolon:
|
94
|
+
Description: Use spaces after semicolons.
|
95
|
+
Enabled: true
|
96
|
+
|
97
|
+
# Supports --auto-correct
|
98
|
+
Layout/SpaceAfterColon:
|
99
|
+
Description: Use spaces after colons.
|
100
|
+
Enabled: true
|
101
|
+
|
102
|
+
# Supports --auto-correct
|
103
|
+
Layout/SpaceAfterComma:
|
104
|
+
Description: Use spaces after commas.
|
105
|
+
Enabled: true
|
106
|
+
|
107
|
+
# Supports --auto-correct
|
108
|
+
Layout/SpaceInsideReferenceBrackets:
|
109
|
+
Description: No spaces after array[ or before ].
|
110
|
+
Enabled: true
|
111
|
+
|
112
|
+
# Supports --auto-correct
|
113
|
+
Layout/SpaceInsideArrayLiteralBrackets:
|
114
|
+
Description: No spaces after array = [ or before ].
|
115
|
+
Enabled: true
|
116
|
+
|
117
|
+
# Supports --auto-correct
|
118
|
+
Layout/SpaceInsideParens:
|
119
|
+
Description: No spaces after ( or before ).
|
120
|
+
Enabled: true
|
121
|
+
|
122
|
+
Layout/IndentationStyle:
|
123
|
+
Description: No hard tabs.
|
124
|
+
Enabled: true
|
125
|
+
|
126
|
+
# Supports --auto-correct
|
127
|
+
Layout/TrailingWhitespace:
|
128
|
+
Description: Avoid trailing whitespace.
|
129
|
+
Enabled: true
|
130
|
+
|
131
|
+
# Supports --auto-correct
|
132
|
+
Layout/TrailingEmptyLines:
|
133
|
+
Description: Checks trailing blank lines and final newline.
|
134
|
+
Enabled: true
|
135
|
+
EnforcedStyle: final_newline
|
136
|
+
SupportedStyles:
|
137
|
+
- final_newline
|
138
|
+
- final_blank_line
|
139
|
+
|
140
|
+
## Syntax
|
141
|
+
|
142
|
+
# Supports --auto-correct
|
143
|
+
Style/AndOr:
|
144
|
+
Description: Use &&/|| instead of and/or.
|
145
|
+
Enabled: true
|
146
|
+
|
147
|
+
# Supports --auto-correct
|
148
|
+
Style/DefWithParentheses:
|
149
|
+
Description: Use def with parentheses when there are arguments.
|
150
|
+
Enabled: true
|
151
|
+
|
152
|
+
Style/For:
|
153
|
+
Description: Checks use of for or each in multiline loops.
|
154
|
+
Enabled: true
|
155
|
+
EnforcedStyle: each
|
156
|
+
SupportedStyles:
|
157
|
+
- for
|
158
|
+
- each
|
159
|
+
|
160
|
+
Style/IfUnlessModifier:
|
161
|
+
Description: Favor modifier if/unless usage when you have a single-line body.
|
162
|
+
Enabled: false
|
163
|
+
|
164
|
+
Style/MethodCalledOnDoEndBlock:
|
165
|
+
Description: Avoid chaining a method call on a do...end block.
|
166
|
+
Enabled: false
|
167
|
+
|
168
|
+
Style/MethodCallWithoutArgsParentheses:
|
169
|
+
Description: "Do not use parentheses for method calls with no arguments."
|
170
|
+
Enabled: true
|
171
|
+
|
172
|
+
Style/MultilineBlockChain:
|
173
|
+
Description: Avoid multi-line chains of blocks.
|
174
|
+
Enabled: true
|
175
|
+
|
176
|
+
Style/MultilineIfThen:
|
177
|
+
Description: Never use then for multi-line if/unless.
|
178
|
+
Enabled: true
|
179
|
+
|
180
|
+
Style/MultilineTernaryOperator:
|
181
|
+
Description: "Avoid multi-line ?: (the ternary operator); use if/unless instead."
|
182
|
+
Enabled: true
|
183
|
+
|
184
|
+
Style/NestedTernaryOperator:
|
185
|
+
Description: Use one expression per branch in a ternary operator.
|
186
|
+
Enabled: true
|
187
|
+
|
188
|
+
Style/OneLineConditional:
|
189
|
+
Description: Favor the ternary operator(?:) over if/then/else/end constructs.
|
190
|
+
Enabled: true
|
191
|
+
|
192
|
+
# Supports --auto-correct
|
193
|
+
Style/ParenthesesAroundCondition:
|
194
|
+
Description: Don't use parentheses around the condition of an if/unless/while.
|
195
|
+
Enabled: true
|
196
|
+
AllowSafeAssignment: true
|
197
|
+
|
198
|
+
# Supports --auto-correct
|
199
|
+
Style/RedundantReturn:
|
200
|
+
Description: Don't use return where it's not required.
|
201
|
+
Enabled: true
|
202
|
+
AllowMultipleReturnValues: false
|
203
|
+
|
204
|
+
# Supports --auto-correct
|
205
|
+
Layout/SpaceAfterMethodName:
|
206
|
+
Description:
|
207
|
+
Never put a space between a method name and the opening parenthesis in
|
208
|
+
a method definition.
|
209
|
+
Enabled: true
|
210
|
+
|
211
|
+
# Supports --auto-correct
|
212
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
213
|
+
Description:
|
214
|
+
Checks that the equals signs in parameter default assignments have or
|
215
|
+
don't have surrounding space depending on configuration.
|
216
|
+
Enabled: true
|
217
|
+
EnforcedStyle: space
|
218
|
+
SupportedStyles:
|
219
|
+
- space
|
220
|
+
- no_space
|
221
|
+
|
222
|
+
Style/UnlessElse:
|
223
|
+
Description: Never use unless with else. Rewrite these with the positive case first.
|
224
|
+
Enabled: true
|
225
|
+
|
226
|
+
# Supports --auto-correct
|
227
|
+
Lint/UnusedBlockArgument:
|
228
|
+
Description: Checks for unused block arguments.
|
229
|
+
Enabled: true
|
230
|
+
|
231
|
+
Style/EmptyElse:
|
232
|
+
Description: "Checks for empty else blocks. Causes issues when assigning a variable to a conditional statement."
|
233
|
+
Enabled: false
|
234
|
+
|
235
|
+
## Naming
|
236
|
+
|
237
|
+
Naming/ClassAndModuleCamelCase:
|
238
|
+
Description: Use CamelCase for classes and modules.
|
239
|
+
Enabled: true
|
240
|
+
|
241
|
+
# Supports --auto-correct
|
242
|
+
Style/ClassMethods:
|
243
|
+
Description: Use self when defining module/class methods.
|
244
|
+
Enabled: true
|
245
|
+
|
246
|
+
Style/ClassVars:
|
247
|
+
Description: Avoid the use of class variables.
|
248
|
+
Enabled: true
|
249
|
+
|
250
|
+
Naming/ConstantName:
|
251
|
+
Description: Constants should use SCREAMING_SNAKE_CASE.
|
252
|
+
Enabled: true
|
253
|
+
|
254
|
+
Naming/MethodName:
|
255
|
+
Description: Use the configured style when naming methods.
|
256
|
+
Enabled: true
|
257
|
+
EnforcedStyle: snake_case
|
258
|
+
SupportedStyles:
|
259
|
+
- snake_case
|
260
|
+
- camelCase
|
261
|
+
|
262
|
+
# Supports --auto-correct
|
263
|
+
Style/TrivialAccessors:
|
264
|
+
Description: Prefer attr_* methods to trivial readers/writers.
|
265
|
+
Enabled: true
|
266
|
+
ExactNameMatch: true
|
267
|
+
AllowPredicates: true
|
268
|
+
AllowDSLWriters: false
|
269
|
+
AllowedMethods:
|
270
|
+
- to_ary
|
271
|
+
- to_a
|
272
|
+
- to_c
|
273
|
+
- to_enum
|
274
|
+
- to_h
|
275
|
+
- to_hash
|
276
|
+
- to_i
|
277
|
+
- to_int
|
278
|
+
- to_io
|
279
|
+
- to_open
|
280
|
+
- to_path
|
281
|
+
- to_proc
|
282
|
+
- to_r
|
283
|
+
- to_regexp
|
284
|
+
- to_str
|
285
|
+
- to_s
|
286
|
+
- to_sym
|
287
|
+
|
288
|
+
Naming/VariableName:
|
289
|
+
Description: Use the configured style when naming variables.
|
290
|
+
Enabled: true
|
291
|
+
EnforcedStyle: snake_case
|
292
|
+
SupportedStyles:
|
293
|
+
- snake_case
|
294
|
+
- camelCase
|
295
|
+
|
296
|
+
## Exceptions
|
297
|
+
|
298
|
+
# Supports --auto-correct
|
299
|
+
Lint/RescueException:
|
300
|
+
Description: Avoid rescuing the Exception class.
|
301
|
+
Enabled: true
|
302
|
+
|
303
|
+
## Collections
|
304
|
+
|
305
|
+
# Supports --auto-correct
|
306
|
+
Layout/ArrayAlignment:
|
307
|
+
Description: Align the elements of an array literal if they span more than one line.
|
308
|
+
Enabled: true
|
309
|
+
|
310
|
+
# Supports --auto-correct
|
311
|
+
Style/HashSyntax:
|
312
|
+
Description:
|
313
|
+
"Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax { :a => 1,
|
314
|
+
:b => 2 }."
|
315
|
+
Enabled: true
|
316
|
+
Exclude:
|
317
|
+
- "db/schema.rb"
|
318
|
+
|
319
|
+
EnforcedStyle: ruby19
|
320
|
+
SupportedStyles:
|
321
|
+
- ruby19
|
322
|
+
- hash_rockets
|
323
|
+
|
324
|
+
Style/TrailingCommaInArrayLiteral:
|
325
|
+
Enabled: true
|
326
|
+
EnforcedStyleForMultiline: comma
|
327
|
+
|
328
|
+
Style/TrailingCommaInHashLiteral:
|
329
|
+
Enabled: true
|
330
|
+
EnforcedStyleForMultiline: comma
|
331
|
+
|
332
|
+
Style/TrailingCommaInArguments:
|
333
|
+
Enabled: true
|
334
|
+
EnforcedStyleForMultiline: comma
|
335
|
+
|
336
|
+
# Supports --auto-correct
|
337
|
+
Style/WordArray:
|
338
|
+
Description: Use %w or %W for arrays of words.
|
339
|
+
Enabled: true
|
340
|
+
MinSize: 0
|
341
|
+
|
342
|
+
Layout/MultilineMethodCallIndentation:
|
343
|
+
Enabled: false
|
344
|
+
|
345
|
+
## Strings
|
346
|
+
|
347
|
+
# Supports --auto-correct
|
348
|
+
Lint/RedundantStringCoercion:
|
349
|
+
Description: Checks for Object#to_s usage in string interpolation.
|
350
|
+
Enabled: true
|
351
|
+
|
352
|
+
# Supports --auto-correct
|
353
|
+
Style/StringLiterals:
|
354
|
+
Description: Checks if uses of quotes match the configured preference.
|
355
|
+
Enabled: true
|
356
|
+
EnforcedStyle: single_quotes
|
357
|
+
SupportedStyles:
|
358
|
+
- single_quotes
|
359
|
+
- double_quotes
|
360
|
+
|
361
|
+
## New Rules yet to be configured
|
362
|
+
Lint/RaiseException:
|
363
|
+
Enabled: false
|
364
|
+
Lint/StructNewOverride:
|
365
|
+
Enabled: false
|
366
|
+
Style/HashEachMethods:
|
367
|
+
Enabled: false
|
368
|
+
Style/HashTransformKeys:
|
369
|
+
Enabled: false
|
370
|
+
Style/HashTransformValues:
|
371
|
+
Enabled: false
|
372
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
373
|
+
Enabled: false
|
374
|
+
Layout/SpaceAroundMethodCallOperator:
|
375
|
+
Enabled: false
|
376
|
+
Lint/DeprecatedOpenSSLConstant:
|
377
|
+
Enabled: false
|
378
|
+
Lint/DuplicateElsifCondition:
|
379
|
+
Enabled: false
|
380
|
+
Lint/MixedRegexpCaptureTypes:
|
381
|
+
Enabled: false
|
382
|
+
Style/AccessorGrouping:
|
383
|
+
Enabled: false
|
384
|
+
Style/ArrayCoercion:
|
385
|
+
Enabled: false
|
386
|
+
Style/BisectedAttrAccessor:
|
387
|
+
Enabled: false
|
388
|
+
Style/CaseLikeIf:
|
389
|
+
Enabled: false
|
390
|
+
Style/ExponentialNotation:
|
391
|
+
Enabled: false
|
392
|
+
Style/HashAsLastArrayItem:
|
393
|
+
Enabled: false
|
394
|
+
Style/HashLikeCase:
|
395
|
+
Enabled: false
|
396
|
+
Style/RedundantAssignment:
|
397
|
+
Enabled: false
|
398
|
+
Style/RedundantFetchBlock:
|
399
|
+
Enabled: false
|
400
|
+
Style/RedundantFileExtensionInRequire:
|
401
|
+
Enabled: false
|
402
|
+
Style/RedundantRegexpCharacterClass:
|
403
|
+
Enabled: false
|
404
|
+
Style/RedundantRegexpEscape:
|
405
|
+
Enabled: false
|
406
|
+
Style/SlicingWithRange:
|
407
|
+
Enabled: false
|
408
|
+
Rails/ActiveRecordCallbacksOrder:
|
409
|
+
Enabled: false
|
410
|
+
Rails/AfterCommitOverride:
|
411
|
+
Enabled: false
|
412
|
+
Rails/FindById:
|
413
|
+
Enabled: false
|
414
|
+
Rails/Inquiry:
|
415
|
+
Enabled: false
|
416
|
+
Rails/MailerName:
|
417
|
+
Enabled: false
|
418
|
+
Rails/MatchRoute:
|
419
|
+
Enabled: false
|
420
|
+
Rails/NegateInclude:
|
421
|
+
Enabled: false
|
422
|
+
Rails/Pluck:
|
423
|
+
Enabled: false
|
424
|
+
Rails/PluckInWhere:
|
425
|
+
Enabled: false
|
426
|
+
Rails/RenderInline:
|
427
|
+
Enabled: false
|
428
|
+
Rails/RenderPlainText:
|
429
|
+
Enabled: false
|
430
|
+
Rails/ShortI18n:
|
431
|
+
Enabled: false
|
432
|
+
Rails/SquishedSQLHeredocs:
|
433
|
+
Enabled: false
|
434
|
+
Rails/WhereExists:
|
435
|
+
Enabled: false
|
436
|
+
Rails/WhereNot:
|
437
|
+
Enabled: false
|
438
|
+
Performance/AncestorsInclude:
|
439
|
+
Enabled: false
|
440
|
+
Performance/BigDecimalWithNumericArgument:
|
441
|
+
Enabled: false
|
442
|
+
Performance/RedundantSortBlock:
|
443
|
+
Enabled: false
|
444
|
+
Performance/RedundantStringChars:
|
445
|
+
Enabled: false
|
446
|
+
Performance/ReverseFirst:
|
447
|
+
Enabled: false
|
448
|
+
Performance/SortReverse:
|
449
|
+
Enabled: false
|
450
|
+
Performance/Squeeze:
|
451
|
+
Enabled: false
|
452
|
+
Performance/StringInclude:
|
453
|
+
Enabled: false
|
454
|
+
Performance/Sum:
|
455
|
+
Enabled: false
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
# New rules
|
460
|
+
Layout/LineEndStringConcatenationIndentation: # new in 1.18
|
461
|
+
Description: Checks the indentation of the next line after a line that ends with a string literal and a backslash.
|
462
|
+
Enabled: true
|
463
|
+
Layout/SpaceBeforeBrackets: # new in 1.7
|
464
|
+
Description: Checks for space between the name of a receiver and a left brackets.
|
465
|
+
Enabled: true
|
466
|
+
|
467
|
+
Lint/AmbiguousAssignment: # new in 1.7
|
468
|
+
Description: Checks for mistyped shorthand assignments
|
469
|
+
Enabled: true
|
470
|
+
Lint/AmbiguousOperatorPrecedence: # new in 1.21
|
471
|
+
Description: Looks for expressions containing multiple binary operators where precedence is ambiguous due to lack of parentheses
|
472
|
+
Enabled: true
|
473
|
+
Lint/AmbiguousRange: # new in 1.19
|
474
|
+
Enabled: true
|
475
|
+
Lint/DeprecatedConstants: # new in 1.8
|
476
|
+
Enabled: true
|
477
|
+
Lint/DuplicateBranch: # new in 1.3
|
478
|
+
Description: Checks that there are no repeated bodies within if/unless, case-when and rescue constructs
|
479
|
+
Enabled: true
|
480
|
+
Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
|
481
|
+
Description: Checks for duplicate elements in Regexp character classes
|
482
|
+
Enabled: true
|
483
|
+
Lint/EmptyBlock: # new in 1.1
|
484
|
+
Description: Checks for blocks without a body
|
485
|
+
Enabled: true
|
486
|
+
Lint/EmptyClass: # new in 1.3
|
487
|
+
Description: Checks for classes and metaclasses without a body
|
488
|
+
Enabled: true
|
489
|
+
AllowComments: true
|
490
|
+
Lint/EmptyInPattern: # new in 1.16
|
491
|
+
Description: Checks for the presence of in pattern branches without a body
|
492
|
+
Enabled: true
|
493
|
+
Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
|
494
|
+
Enabled: true
|
495
|
+
Lint/LambdaWithoutLiteralBlock: # new in 1.8
|
496
|
+
Enabled: true
|
497
|
+
Lint/NoReturnInBeginEndBlocks: # new in 1.2
|
498
|
+
Description: Checks for the presence of a return inside a begin..end block in assignment contexts
|
499
|
+
Enabled: true
|
500
|
+
Lint/NumberedParameterAssignment: # new in 1.9
|
501
|
+
Description: Checks for uses of numbered parameter assignment
|
502
|
+
Enabled: true
|
503
|
+
Lint/OrAssignmentToConstant: # new in 1.9
|
504
|
+
Description: Checks for unintended or-assignment to a constant
|
505
|
+
Enabled: true
|
506
|
+
Lint/RedundantDirGlobSort: # new in 1.8
|
507
|
+
Description: Sort globbed results by default in Ruby 3.0
|
508
|
+
Enabled: true
|
509
|
+
Lint/RequireRelativeSelfPath: # new in 1.22
|
510
|
+
Description: Checks for uses a file requiring itself with require_relative
|
511
|
+
Enabled: true
|
512
|
+
Lint/SymbolConversion: # new in 1.9
|
513
|
+
Description: Checks for uses of literal strings converted to a symbol where a literal symbol could be used instead
|
514
|
+
Enabled: true
|
515
|
+
Lint/ToEnumArguments: # new in 1.1
|
516
|
+
Description: ensures that to_enum/enum_for, called for the current method, has correct arguments
|
517
|
+
Enabled: true
|
518
|
+
Lint/TripleQuotes: # new in 1.9
|
519
|
+
Description: Checks for "triple quotes" (strings delimted by any odd number of quotes greater than 1)
|
520
|
+
Enabled: true
|
521
|
+
Lint/UnexpectedBlockArity: # new in 1.5
|
522
|
+
Description: Checks for a block that is known to need more positional block arguments than are given
|
523
|
+
Enabled: false
|
524
|
+
Lint/UnmodifiedReduceAccumulator: # new in 1.1
|
525
|
+
Description: Looks for reduce or inject blocks where the value returned (implicitly or explicitly) does not include the accumulator
|
526
|
+
Enabled: true
|
527
|
+
Lint/UselessRuby2Keywords: # new in 1.23
|
528
|
+
Description: Looks for ruby2_keywords calls for methods that do not need it
|
529
|
+
Enabled: true
|
530
|
+
|
531
|
+
Security/IoMethods: # new in 1.22
|
532
|
+
Enabled: false
|
533
|
+
|
534
|
+
Style/ArgumentsForwarding: # new in 1.1
|
535
|
+
Description: Identifies places where do_something(*args, &block) can be replaced by do_something(...)
|
536
|
+
Enabled: true
|
537
|
+
Style/CollectionCompact: # new in 1.2
|
538
|
+
Description: Checks for places where custom logic on rejection nils from arrays and hashes can be replaced with {Array,Hash}#{compact,compact!}
|
539
|
+
Enabled: false
|
540
|
+
Style/DocumentDynamicEvalDefinition: # new in 1.1
|
541
|
+
Description: When using class_eval (or other eval) with string interpolation, add a comment block showing its appearance if interpolated (a practice used in Rails code)
|
542
|
+
Enabled: false
|
543
|
+
Style/EndlessMethod: # new in 1.8
|
544
|
+
Description: Checks for endless methods. It can enforce either the use of endless methods definitions for single-lined method bodies, or disallow endless methods.
|
545
|
+
Enabled: true
|
546
|
+
EnforcedStyle: allow_single_line
|
547
|
+
Style/FileRead: # new in 1.24
|
548
|
+
Description: Favor File.(bin)read convenience methods
|
549
|
+
Enabled: false
|
550
|
+
Style/FileWrite: # new in 1.24
|
551
|
+
Description: Favor File.(bin)write convenience methods
|
552
|
+
Enabled: false
|
553
|
+
Style/HashConversion: # new in 1.10
|
554
|
+
Description: Checks the usage of pre-2.1 Hash[args] method of converting enumerables and sequences of values to hashes
|
555
|
+
Enabled: true
|
556
|
+
Style/HashExcept: # new in 1.7
|
557
|
+
Description: Checks for usages of Hash#reject, Hash#select, and Hash#filter methods that can be replaced with Hash#except method
|
558
|
+
Enabled: true
|
559
|
+
Style/IfWithBooleanLiteralBranches: # new in 1.9
|
560
|
+
Description: Checks for redundant if with boolean literal branches
|
561
|
+
Enabled: true
|
562
|
+
Style/InPatternThen: # new in 1.16
|
563
|
+
Description: Checks for in; uses in case expressions
|
564
|
+
Enabled: true
|
565
|
+
Style/MapToHash: # new in 1.24
|
566
|
+
Description: Looks for uses of map.to_h or collect.to_h that could be written with just to_h in Ruby >= 2.6
|
567
|
+
Enabled: true
|
568
|
+
Style/MultilineInPatternThen: # new in 1.16
|
569
|
+
Description: Checks uses of the then keyword in multi-line in statement
|
570
|
+
Enabled: true
|
571
|
+
Style/NegatedIfElseCondition: # new in 1.2
|
572
|
+
Description: Checks for uses of if-else and ternary operators with a negated condition which can be simplified by inverting condition and swapping branches
|
573
|
+
Enabled: true
|
574
|
+
Style/NestedFileDirname: # new in 1.26
|
575
|
+
Description: Checks for nested File.dirname. It replaces nested File.dirname with the level argument introduced in Ruby 3.1.
|
576
|
+
Enabled: true
|
577
|
+
Style/NilLambda: # new in 1.3
|
578
|
+
Description: Checks for lambdas that always return nil, which can be replaced with an empty lambda instead
|
579
|
+
Enabled: true
|
580
|
+
Style/NumberedParameters: # new in 1.22
|
581
|
+
Description: Checks for numbered parameters
|
582
|
+
Enabled: false
|
583
|
+
Style/NumberedParametersLimit: # new in 1.22
|
584
|
+
Description: Detects use of an excessive amount of numbered parameters in a single block. Having too many numbered parameters can make code too cryptic and hard to read
|
585
|
+
Enabled: false
|
586
|
+
Style/OpenStructUse: # new in 1.23
|
587
|
+
Description: Flags uses of OpenStruct, as it is now officially discouraged to be used for performance, version compatibility, and potential security issues
|
588
|
+
Enabled: false
|
589
|
+
Style/QuotedSymbols: # new in 1.16
|
590
|
+
Description: Checks if the quotes used for quoted symbols match the configured defaults. By default uses the same configuration as Style/StringLiterals
|
591
|
+
Enabled: true
|
592
|
+
Style/RedundantArgument: # new in 1.4
|
593
|
+
Description: Checks for a redundant argument passed to certain methods
|
594
|
+
Enabled: false
|
595
|
+
Style/RedundantSelfAssignmentBranch: # new in 1.19
|
596
|
+
Description: Checks for places where conditional branch makes redundant self-assignment
|
597
|
+
Enabled: true
|
598
|
+
Style/SelectByRegexp: # new in 1.22
|
599
|
+
Description: Looks for places where an subset of an Enumerable (array, range, set, etc.; see note below) is calculated based on a Regexp match, and suggests grep or grep_v instead
|
600
|
+
Enabled: true
|
601
|
+
Style/StringChars: # new in 1.12
|
602
|
+
Description: Checks for uses of String#split with empty string or regexp literal argument
|
603
|
+
Enabled: false
|
604
|
+
Style/SwapValues: # new in 1.1
|
605
|
+
Description: Enforces the use of shorthand-style swapping of 2 variables
|
606
|
+
Enabled: true
|
607
|
+
|
608
|
+
Rails/AddColumnIndex: # new in 2.11
|
609
|
+
Enabled: true
|
610
|
+
Rails/AttributeDefaultBlockValue: # new in 2.9
|
611
|
+
Enabled: true
|
612
|
+
Rails/EagerEvaluationLogMessage: # new in 2.11
|
613
|
+
Enabled: true
|
614
|
+
Rails/ExpandedDateRange: # new in 2.11
|
615
|
+
Enabled: true
|
616
|
+
Rails/I18nLocaleAssignment: # new in 2.11
|
617
|
+
Enabled: true
|
618
|
+
Rails/RedundantTravelBack: # new in 2.12
|
619
|
+
Enabled: true
|
620
|
+
Rails/TimeZoneAssignment: # new in 2.10
|
621
|
+
Enabled: true
|
622
|
+
Rails/UnusedIgnoredColumns: # new in 2.11
|
623
|
+
Enabled: true
|
624
|
+
Rails/WhereEquals: # new in 2.9
|
625
|
+
Enabled: true
|
626
|
+
|
627
|
+
Performance/BlockGivenWithExplicitBlock: # new in 1.9
|
628
|
+
Description: Identifies unnecessary use of a block_given? where explicit check of block argument would suffice
|
629
|
+
Enabled: true
|
630
|
+
Performance/CollectionLiteralInLoop: # new in 1.8
|
631
|
+
Description: Identifies places where Array and Hash literals are used within loops
|
632
|
+
Enabled: true
|
633
|
+
Performance/ConcurrentMonotonicTime: # new in 1.12
|
634
|
+
Enabled: false
|
635
|
+
Performance/ConstantRegexp: # new in 1.9
|
636
|
+
Description: Finds regular expressions with dynamic components that are all constants
|
637
|
+
Enabled: true
|
638
|
+
Performance/MapCompact: # new in 1.11
|
639
|
+
Description: Identifies places where map { ... }.compact can be replaced by filter_map
|
640
|
+
Enabled: true
|
641
|
+
Performance/MethodObjectAsBlock: # new in 1.9
|
642
|
+
Description: Identifies places where methods are converted to blocks, with the use of &method, and passed as arguments to method calls
|
643
|
+
Enabled: true
|
644
|
+
Performance/RedundantEqualityComparisonBlock: # new in 1.10
|
645
|
+
Enabled: false
|
646
|
+
Performance/RedundantSplitRegexpArgument: # new in 1.10
|
647
|
+
Description: Identifies places where split argument can be replaced from a deterministic regexp to a string
|
648
|
+
Enabled: true
|
649
|
+
Performance/StringIdentifierArgument: # new in 1.13
|
650
|
+
Description: Identifies places where string identifier argument can be replaced by symbol identifier argument. It prevents the redundancy of the internal string-to-symbol conversion
|
651
|
+
Enabled: true
|
652
|
+
|
653
|
+
Gemspec/DeprecatedAttributeAssignment: # new in 1.30
|
654
|
+
Description: Checks that deprecated attribute attributes are not set in a gemspec file
|
655
|
+
Enabled: true
|
656
|
+
|
657
|
+
Gemspec/RequireMFA: # new in 1.23
|
658
|
+
Description: Requires a gemspec to have rubygems_mfa_required metadata set.
|
659
|
+
Enabled: false
|
660
|
+
|
661
|
+
Naming/BlockForwarding: # new in 1.24
|
662
|
+
Description: Identifies places where do_something(&block) can be replaced by do_something(&)
|
663
|
+
Enabled: true
|
@@ -0,0 +1,19 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- db/schema.rb
|
4
|
+
- db/**/*
|
5
|
+
- bin/**/*
|
6
|
+
- node_modules/**/*
|
7
|
+
- vendor/**/*
|
8
|
+
|
9
|
+
Metrics/BlockLength:
|
10
|
+
Enabled: true
|
11
|
+
Exclude:
|
12
|
+
- "config/routes.rb"
|
13
|
+
- "test/**/*"
|
14
|
+
- "**/spec/**/*"
|
15
|
+
|
16
|
+
AllowedMethods: ["namespace"]
|
17
|
+
|
18
|
+
Bundler/DuplicatedGem:
|
19
|
+
Enabled: false
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Gemspec/RequiredRubyVersion:
|
2
|
+
Description: "Checks that required_ruby_version in a gemspec file is set to a valid value (non-blank) and matches TargetRubyVersion as set in RuboCop's configuration for the gem"
|
3
|
+
Enabled: false
|
4
|
+
|
5
|
+
Gemspec/DevelopmentDependencies:
|
6
|
+
Description: Enforce that development dependencies for a gem are specified in Gemfile
|
7
|
+
Enabled: false
|