cookstyle 2.1.0 → 3.0.0
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 +5 -5
- data/CHANGELOG.md +30 -0
- data/README.md +6 -4
- data/config/cookstyle.yml +92 -5
- data/config/cookstyle_base.yml +18 -22
- data/config/disable_all.yml +166 -32
- data/config/disabled.yml +24 -15
- data/config/enabled.yml +1223 -908
- data/config/upstream.yml +404 -168
- data/lib/cookstyle/version.rb +2 -2
- metadata +5 -5
data/config/disabled.yml
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# These are all the cops that are disabled in the default configuration.
|
2
2
|
|
3
|
+
Layout/ClassStructure:
|
4
|
+
Description: 'Enforces a configured order of definitions within a class body.'
|
5
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-classes'
|
6
|
+
Enabled: false
|
7
|
+
|
3
8
|
Layout/FirstArrayElementLineBreak:
|
4
9
|
Description: >-
|
5
10
|
Checks for a line break before the first element in a
|
@@ -29,6 +34,10 @@ Layout/MultilineAssignmentLayout:
|
|
29
34
|
StyleGuide: '#indent-conditional-assignment'
|
30
35
|
Enabled: false
|
31
36
|
|
37
|
+
Lint/NumberConversion:
|
38
|
+
Description: 'Checks unsafe usage of number conversion methods.'
|
39
|
+
Enabled: false
|
40
|
+
|
32
41
|
# By default, the rails cops are not run. Override in project or home
|
33
42
|
# directory .rubocop.yml files, or by giving the -R/--rails option.
|
34
43
|
Rails:
|
@@ -59,9 +68,8 @@ Style/DocumentationMethod:
|
|
59
68
|
- 'spec/**/*'
|
60
69
|
- 'test/**/*'
|
61
70
|
|
62
|
-
Style/
|
63
|
-
Description: '
|
64
|
-
StyleGuide: '#utf-8'
|
71
|
+
Style/EmptyLineAfterGuardClause:
|
72
|
+
Description: 'Add empty line after guard clause.'
|
65
73
|
Enabled: false
|
66
74
|
|
67
75
|
Style/ImplicitRuntimeError:
|
@@ -92,28 +100,29 @@ Style/MissingElse:
|
|
92
100
|
This will conflict with Style/EmptyElse if
|
93
101
|
Style/EmptyElse is configured to style "both"
|
94
102
|
Enabled: false
|
95
|
-
EnforcedStyle: both
|
96
|
-
SupportedStyles:
|
97
|
-
# if - warn when an if expression is missing an else branch
|
98
|
-
# case - warn when a case expression is missing an else branch
|
99
|
-
# both - warn when an if or case expression is missing an else branch
|
100
|
-
- if
|
101
|
-
- case
|
102
|
-
- both
|
103
103
|
|
104
104
|
Style/OptionHash:
|
105
105
|
Description: "Don't use option hashes when you can use keyword arguments."
|
106
106
|
Enabled: false
|
107
107
|
|
108
|
+
Style/ReturnNil:
|
109
|
+
Description: 'Use return instead of return nil.'
|
110
|
+
Enabled: false
|
111
|
+
|
108
112
|
Style/Send:
|
109
113
|
Description: 'Prefer `Object#__send__` or `Object#public_send` to `send`, as `send` may overlap with existing methods.'
|
110
114
|
StyleGuide: '#prefer-public-send'
|
111
115
|
Enabled: false
|
112
116
|
|
113
|
-
Style/StringMethods:
|
114
|
-
Description: 'Checks if configured preferred methods are used over non-preferred.'
|
115
|
-
Enabled: false
|
116
|
-
|
117
117
|
Style/SingleLineBlockParams:
|
118
118
|
Description: 'Enforces the names of some block params.'
|
119
119
|
Enabled: false
|
120
|
+
|
121
|
+
Style/StringHashKeys:
|
122
|
+
Description: 'Prefer symbols instead of strings as hash keys.'
|
123
|
+
StyleGuide: '#symbols-as-keys'
|
124
|
+
Enabled: false
|
125
|
+
|
126
|
+
Style/StringMethods:
|
127
|
+
Description: 'Checks if configured preferred methods are used over non-preferred.'
|
128
|
+
Enabled: false
|
data/config/enabled.yml
CHANGED
@@ -1,5 +1,56 @@
|
|
1
1
|
# These are all the cops that are enabled in the default configuration.
|
2
2
|
|
3
|
+
#################### Bundler ###############################
|
4
|
+
|
5
|
+
Bundler/DuplicatedGem:
|
6
|
+
Description: 'Checks for duplicate gem entries in Gemfile.'
|
7
|
+
Enabled: true
|
8
|
+
Include:
|
9
|
+
- '**/*.gemfile'
|
10
|
+
- '**/Gemfile'
|
11
|
+
- '**/gems.rb'
|
12
|
+
|
13
|
+
Bundler/InsecureProtocolSource:
|
14
|
+
Description: >-
|
15
|
+
The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated
|
16
|
+
because HTTP requests are insecure. Please change your source to
|
17
|
+
'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
|
18
|
+
Enabled: true
|
19
|
+
Include:
|
20
|
+
- '**/*.gemfile'
|
21
|
+
- '**/Gemfile'
|
22
|
+
- '**/gems.rb'
|
23
|
+
|
24
|
+
Bundler/OrderedGems:
|
25
|
+
Description: >-
|
26
|
+
Gems within groups in the Gemfile should be alphabetically sorted.
|
27
|
+
Enabled: true
|
28
|
+
Include:
|
29
|
+
- '**/*.gemfile'
|
30
|
+
- '**/Gemfile'
|
31
|
+
- '**/gems.rb'
|
32
|
+
|
33
|
+
#################### Gemspec ###############################
|
34
|
+
|
35
|
+
Gemspec/DuplicatedAssignment:
|
36
|
+
Description: 'An attribute assignment method calls should be listed only once in a gemspec.'
|
37
|
+
Enabled: true
|
38
|
+
Include:
|
39
|
+
- '**/*.gemspec'
|
40
|
+
|
41
|
+
Gemspec/OrderedDependencies:
|
42
|
+
Description: >-
|
43
|
+
Dependencies in the gemspec should be alphabetically sorted.
|
44
|
+
Enabled: true
|
45
|
+
Include:
|
46
|
+
- '**/*.gemspec'
|
47
|
+
|
48
|
+
Gemspec/RequiredRubyVersion:
|
49
|
+
Description: 'Checks that `required_ruby_version` of gemspec and `TargetRubyVersion` of .rubocop.yml are equal.'
|
50
|
+
Enabled: true
|
51
|
+
Include:
|
52
|
+
- '**/*.gemspec'
|
53
|
+
|
3
54
|
#################### Layout ###############################
|
4
55
|
|
5
56
|
Layout/AccessModifierIndentation:
|
@@ -27,6 +78,10 @@ Layout/AlignParameters:
|
|
27
78
|
StyleGuide: '#no-double-indent'
|
28
79
|
Enabled: true
|
29
80
|
|
81
|
+
Layout/BlockAlignment:
|
82
|
+
Description: 'Align block ends correctly.'
|
83
|
+
Enabled: true
|
84
|
+
|
30
85
|
Layout/BlockEndNewline:
|
31
86
|
Description: 'Put end statement of multiline block on its own line.'
|
32
87
|
Enabled: true
|
@@ -44,6 +99,17 @@ Layout/CommentIndentation:
|
|
44
99
|
Description: 'Indentation of comments.'
|
45
100
|
Enabled: true
|
46
101
|
|
102
|
+
Layout/ConditionPosition:
|
103
|
+
Description: >-
|
104
|
+
Checks for condition placed in a confusing position relative to
|
105
|
+
the keyword.
|
106
|
+
StyleGuide: '#same-line-condition'
|
107
|
+
Enabled: true
|
108
|
+
|
109
|
+
Layout/DefEndAlignment:
|
110
|
+
Description: 'Align ends corresponding to defs correctly.'
|
111
|
+
Enabled: true
|
112
|
+
|
47
113
|
Layout/DotPosition:
|
48
114
|
Description: 'Checks the position of the dot in multi-line method calls.'
|
49
115
|
StyleGuide: '#consistent-multi-line-chains'
|
@@ -53,6 +119,15 @@ Layout/ElseAlignment:
|
|
53
119
|
Description: 'Align elses and elsifs correctly.'
|
54
120
|
Enabled: true
|
55
121
|
|
122
|
+
Layout/EmptyComment:
|
123
|
+
Description: 'Checks empty comment.'
|
124
|
+
Enabled: true
|
125
|
+
|
126
|
+
Layout/EmptyLineAfterMagicComment:
|
127
|
+
Description: 'Add an empty line after magic comments to separate them from code.'
|
128
|
+
StyleGuide: '#separate-magic-comments-from-code'
|
129
|
+
Enabled: true
|
130
|
+
|
56
131
|
Layout/EmptyLineBetweenDefs:
|
57
132
|
Description: 'Use empty lines between defs.'
|
58
133
|
StyleGuide: '#empty-lines-between-methods'
|
@@ -68,6 +143,10 @@ Layout/EmptyLinesAroundAccessModifier:
|
|
68
143
|
StyleGuide: '#empty-lines-around-access-modifier'
|
69
144
|
Enabled: true
|
70
145
|
|
146
|
+
Layout/EmptyLinesAroundArguments:
|
147
|
+
Description: "Keeps track of empty lines around method arguments."
|
148
|
+
Enabled: true
|
149
|
+
|
71
150
|
Layout/EmptyLinesAroundBeginBody:
|
72
151
|
Description: "Keeps track of empty lines around begin-end bodies."
|
73
152
|
StyleGuide: '#empty-lines-around-bodies'
|
@@ -88,14 +167,18 @@ Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
|
88
167
|
StyleGuide: '#empty-lines-around-bodies'
|
89
168
|
Enabled: true
|
90
169
|
|
170
|
+
Layout/EmptyLinesAroundMethodBody:
|
171
|
+
Description: "Keeps track of empty lines around method bodies."
|
172
|
+
StyleGuide: '#empty-lines-around-bodies'
|
173
|
+
Enabled: true
|
174
|
+
|
91
175
|
Layout/EmptyLinesAroundModuleBody:
|
92
176
|
Description: "Keeps track of empty lines around module bodies."
|
93
177
|
StyleGuide: '#empty-lines-around-bodies'
|
94
178
|
Enabled: true
|
95
179
|
|
96
|
-
Layout/
|
97
|
-
Description:
|
98
|
-
StyleGuide: '#empty-lines-around-bodies'
|
180
|
+
Layout/EndAlignment:
|
181
|
+
Description: 'Align ends correctly.'
|
99
182
|
Enabled: true
|
100
183
|
|
101
184
|
Layout/EndOfLine:
|
@@ -107,25 +190,10 @@ Layout/ExtraSpacing:
|
|
107
190
|
Description: 'Do not use unnecessary spacing.'
|
108
191
|
Enabled: true
|
109
192
|
|
110
|
-
Layout/InitialIndentation:
|
111
|
-
Description: >-
|
112
|
-
Checks the indentation of the first non-blank non-comment line in a file.
|
113
|
-
Enabled: true
|
114
|
-
|
115
193
|
Layout/FirstParameterIndentation:
|
116
194
|
Description: 'Checks the indentation of the first parameter in a method call.'
|
117
195
|
Enabled: true
|
118
196
|
|
119
|
-
Layout/IndentationConsistency:
|
120
|
-
Description: 'Keep indentation straight.'
|
121
|
-
StyleGuide: '#spaces-indentation'
|
122
|
-
Enabled: true
|
123
|
-
|
124
|
-
Layout/IndentationWidth:
|
125
|
-
Description: 'Use 2 spaces for indentation.'
|
126
|
-
StyleGuide: '#spaces-indentation'
|
127
|
-
Enabled: true
|
128
|
-
|
129
197
|
Layout/IndentArray:
|
130
198
|
Description: >-
|
131
199
|
Checks the indentation of the first element in an array
|
@@ -147,8 +215,19 @@ Layout/IndentHeredoc:
|
|
147
215
|
StyleGuide: '#squiggly-heredocs'
|
148
216
|
Enabled: true
|
149
217
|
|
150
|
-
Layout/
|
151
|
-
Description: '
|
218
|
+
Layout/IndentationConsistency:
|
219
|
+
Description: 'Keep indentation straight.'
|
220
|
+
StyleGuide: '#spaces-indentation'
|
221
|
+
Enabled: true
|
222
|
+
|
223
|
+
Layout/IndentationWidth:
|
224
|
+
Description: 'Use 2 spaces for indentation.'
|
225
|
+
StyleGuide: '#spaces-indentation'
|
226
|
+
Enabled: true
|
227
|
+
|
228
|
+
Layout/InitialIndentation:
|
229
|
+
Description: >-
|
230
|
+
Checks the indentation of the first non-blank non-comment line in a file.
|
152
231
|
Enabled: true
|
153
232
|
|
154
233
|
Layout/LeadingCommentSpace:
|
@@ -200,21 +279,10 @@ Layout/MultilineOperationIndentation:
|
|
200
279
|
one line.
|
201
280
|
Enabled: true
|
202
281
|
|
203
|
-
Layout/EmptyLineAfterMagicComment:
|
204
|
-
Description: 'Add an empty line after magic comments to separate them from code.'
|
205
|
-
StyleGuide: '#separate-magic-comments-from-code'
|
206
|
-
Enabled: true
|
207
|
-
|
208
282
|
Layout/RescueEnsureAlignment:
|
209
283
|
Description: 'Align rescues and ensures correctly.'
|
210
284
|
Enabled: true
|
211
285
|
|
212
|
-
Layout/SpaceBeforeFirstArg:
|
213
|
-
Description: >-
|
214
|
-
Checks that exactly one space is used between a method name
|
215
|
-
and the first argument for method calls without parentheses.
|
216
|
-
Enabled: true
|
217
|
-
|
218
286
|
Layout/SpaceAfterColon:
|
219
287
|
Description: 'Use spaces after colons.'
|
220
288
|
StyleGuide: '#spaces-operators'
|
@@ -242,6 +310,27 @@ Layout/SpaceAfterSemicolon:
|
|
242
310
|
StyleGuide: '#spaces-operators'
|
243
311
|
Enabled: true
|
244
312
|
|
313
|
+
Layout/SpaceAroundBlockParameters:
|
314
|
+
Description: 'Checks the spacing inside and after block parameters pipes.'
|
315
|
+
Enabled: true
|
316
|
+
|
317
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
318
|
+
Description: >-
|
319
|
+
Checks that the equals signs in parameter default assignments
|
320
|
+
have or don't have surrounding space depending on
|
321
|
+
configuration.
|
322
|
+
StyleGuide: '#spaces-around-equals'
|
323
|
+
Enabled: true
|
324
|
+
|
325
|
+
Layout/SpaceAroundKeyword:
|
326
|
+
Description: 'Use a space around keywords if appropriate.'
|
327
|
+
Enabled: true
|
328
|
+
|
329
|
+
Layout/SpaceAroundOperators:
|
330
|
+
Description: 'Use a single space around operators.'
|
331
|
+
StyleGuide: '#spaces-operators'
|
332
|
+
Enabled: true
|
333
|
+
|
245
334
|
Layout/SpaceBeforeBlockBraces:
|
246
335
|
Description: >-
|
247
336
|
Checks that the left block brace has or doesn't have space
|
@@ -258,49 +347,33 @@ Layout/SpaceBeforeComment:
|
|
258
347
|
same line.
|
259
348
|
Enabled: true
|
260
349
|
|
261
|
-
Layout/
|
262
|
-
Description: 'No spaces before semicolons.'
|
263
|
-
Enabled: true
|
264
|
-
|
265
|
-
Layout/SpaceInsideBlockBraces:
|
350
|
+
Layout/SpaceBeforeFirstArg:
|
266
351
|
Description: >-
|
267
|
-
Checks that
|
268
|
-
|
269
|
-
or doesn't have trailing space.
|
270
|
-
Enabled: true
|
271
|
-
|
272
|
-
Layout/SpaceAroundBlockParameters:
|
273
|
-
Description: 'Checks the spacing inside and after block parameters pipes.'
|
352
|
+
Checks that exactly one space is used between a method name
|
353
|
+
and the first argument for method calls without parentheses.
|
274
354
|
Enabled: true
|
275
355
|
|
276
|
-
Layout/
|
277
|
-
Description:
|
278
|
-
Checks that the equals signs in parameter default assignments
|
279
|
-
have or don't have surrounding space depending on
|
280
|
-
configuration.
|
281
|
-
StyleGuide: '#spaces-around-equals'
|
356
|
+
Layout/SpaceBeforeSemicolon:
|
357
|
+
Description: 'No spaces before semicolons.'
|
282
358
|
Enabled: true
|
283
359
|
|
284
|
-
Layout/
|
285
|
-
Description: '
|
360
|
+
Layout/SpaceInLambdaLiteral:
|
361
|
+
Description: 'Checks for spaces in lambda literals.'
|
286
362
|
Enabled: true
|
287
363
|
|
288
|
-
Layout/
|
289
|
-
Description: '
|
290
|
-
StyleGuide: '#spaces-operators'
|
364
|
+
Layout/SpaceInsideArrayLiteralBrackets:
|
365
|
+
Description: 'Checks the spacing inside array literal brackets.'
|
291
366
|
Enabled: true
|
292
367
|
|
293
368
|
Layout/SpaceInsideArrayPercentLiteral:
|
294
369
|
Description: 'No unnecessary additional spaces between elements in %i/%w literals.'
|
295
370
|
Enabled: true
|
296
371
|
|
297
|
-
Layout/
|
298
|
-
Description:
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
Description: 'No spaces after [ or before ].'
|
303
|
-
StyleGuide: '#no-spaces-braces'
|
372
|
+
Layout/SpaceInsideBlockBraces:
|
373
|
+
Description: >-
|
374
|
+
Checks that block braces have or don't have surrounding space.
|
375
|
+
For blocks taking parameters, checks that the left brace has
|
376
|
+
or doesn't have trailing space.
|
304
377
|
Enabled: true
|
305
378
|
|
306
379
|
Layout/SpaceInsideHashLiteralBraces:
|
@@ -310,7 +383,11 @@ Layout/SpaceInsideHashLiteralBraces:
|
|
310
383
|
|
311
384
|
Layout/SpaceInsideParens:
|
312
385
|
Description: 'No spaces after ( or before ).'
|
313
|
-
StyleGuide: '#
|
386
|
+
StyleGuide: '#spaces-braces'
|
387
|
+
Enabled: true
|
388
|
+
|
389
|
+
Layout/SpaceInsidePercentLiteralDelimiters:
|
390
|
+
Description: 'No unnecessary spaces inside delimiters of %i/%w/%x literals.'
|
314
391
|
Enabled: true
|
315
392
|
|
316
393
|
Layout/SpaceInsideRangeLiteral:
|
@@ -318,6 +395,10 @@ Layout/SpaceInsideRangeLiteral:
|
|
318
395
|
StyleGuide: '#no-space-inside-range-literals'
|
319
396
|
Enabled: true
|
320
397
|
|
398
|
+
Layout/SpaceInsideReferenceBrackets:
|
399
|
+
Description: 'Checks the spacing inside referential brackets.'
|
400
|
+
Enabled: true
|
401
|
+
|
321
402
|
Layout/SpaceInsideStringInterpolation:
|
322
403
|
Description: 'Checks for padding/surrounding spaces inside string interpolation.'
|
323
404
|
StyleGuide: '#string-interpolation'
|
@@ -338,1416 +419,1650 @@ Layout/TrailingWhitespace:
|
|
338
419
|
StyleGuide: '#no-trailing-whitespace'
|
339
420
|
Enabled: true
|
340
421
|
|
341
|
-
####################
|
422
|
+
#################### Lint ##################################
|
423
|
+
### Warnings
|
342
424
|
|
343
|
-
|
344
|
-
Description:
|
345
|
-
|
425
|
+
Lint/AmbiguousBlockAssociation:
|
426
|
+
Description: >-
|
427
|
+
Checks for ambiguous block association with method when param passed without
|
428
|
+
parentheses.
|
429
|
+
StyleGuide: '#syntax'
|
346
430
|
Enabled: true
|
347
431
|
|
348
|
-
|
349
|
-
Description:
|
350
|
-
|
432
|
+
Lint/AmbiguousOperator:
|
433
|
+
Description: >-
|
434
|
+
Checks for ambiguous operators in the first argument of a
|
435
|
+
method invocation without parentheses.
|
436
|
+
StyleGuide: '#method-invocation-parens'
|
351
437
|
Enabled: true
|
352
438
|
|
353
|
-
|
354
|
-
Description:
|
355
|
-
|
439
|
+
Lint/AmbiguousRegexpLiteral:
|
440
|
+
Description: >-
|
441
|
+
Checks for ambiguous regexp literals in the first argument of
|
442
|
+
a method invocation without parentheses.
|
356
443
|
Enabled: true
|
357
444
|
|
358
|
-
|
359
|
-
Description: '
|
360
|
-
StyleGuide: '#
|
445
|
+
Lint/AssignmentInCondition:
|
446
|
+
Description: "Don't use assignment in conditions."
|
447
|
+
StyleGuide: '#safe-assignment-in-condition'
|
361
448
|
Enabled: true
|
362
449
|
|
363
|
-
|
364
|
-
Description: '
|
365
|
-
StyleGuide: '#english-comments'
|
450
|
+
Lint/BigDecimalNew:
|
451
|
+
Description: '`BigDecimal.new()` is deprecated. Use `BigDecimal()` instead.'
|
366
452
|
Enabled: true
|
367
453
|
|
368
|
-
|
369
|
-
Description: '
|
370
|
-
StyleGuide: '#english-identifiers'
|
454
|
+
Lint/BooleanSymbol:
|
455
|
+
Description: 'Check for `:true` and `:false` symbols.'
|
371
456
|
Enabled: true
|
372
457
|
|
373
|
-
|
374
|
-
Description:
|
375
|
-
StyleGuide: '#attr'
|
458
|
+
Lint/CircularArgumentReference:
|
459
|
+
Description: "Default values in optional keyword arguments and optional ordinal arguments should not refer back to the name of the argument."
|
376
460
|
Enabled: true
|
377
461
|
|
378
|
-
|
379
|
-
Description: '
|
380
|
-
StyleGuide: '#no-BEGIN-blocks'
|
462
|
+
Lint/Debugger:
|
463
|
+
Description: 'Check for debugger calls.'
|
381
464
|
Enabled: true
|
382
465
|
|
383
|
-
|
384
|
-
Description: '
|
385
|
-
StyleGuide: '#percent-q-shorthand'
|
466
|
+
Lint/DeprecatedClassMethods:
|
467
|
+
Description: 'Check for deprecated class method calls.'
|
386
468
|
Enabled: true
|
387
469
|
|
388
|
-
|
389
|
-
Description: 'Do not
|
390
|
-
StyleGuide: '#no-block-comments'
|
470
|
+
Lint/DuplicateCaseCondition:
|
471
|
+
Description: 'Do not repeat values in case conditionals.'
|
391
472
|
Enabled: true
|
392
473
|
|
393
|
-
|
394
|
-
Description:
|
395
|
-
Avoid using {...} for multi-line blocks (multiline chaining is
|
396
|
-
always ugly).
|
397
|
-
Prefer {...} over do...end for single-line blocks.
|
398
|
-
StyleGuide: '#single-line-blocks'
|
474
|
+
Lint/DuplicateMethods:
|
475
|
+
Description: 'Check for duplicate method definitions.'
|
399
476
|
Enabled: true
|
400
477
|
|
401
|
-
|
402
|
-
Description: '
|
478
|
+
Lint/DuplicatedKey:
|
479
|
+
Description: 'Check for duplicate keys in hash literals.'
|
403
480
|
Enabled: true
|
404
481
|
|
405
|
-
|
406
|
-
Description: '
|
407
|
-
StyleGuide: '#no-case-equality'
|
482
|
+
Lint/EachWithObjectArgument:
|
483
|
+
Description: 'Check for immutable argument given to each_with_object.'
|
408
484
|
Enabled: true
|
409
485
|
|
410
|
-
|
411
|
-
Description: '
|
412
|
-
StyleGuide: '#no-character-literals'
|
486
|
+
Lint/ElseLayout:
|
487
|
+
Description: 'Check for odd code arrangement in an else block.'
|
413
488
|
Enabled: true
|
414
489
|
|
415
|
-
|
416
|
-
Description: '
|
417
|
-
StyleGuide: '#camelcase-classes'
|
490
|
+
Lint/EmptyEnsure:
|
491
|
+
Description: 'Checks for empty ensure block.'
|
418
492
|
Enabled: true
|
493
|
+
AutoCorrect: false
|
419
494
|
|
420
|
-
|
421
|
-
Description: 'Checks
|
495
|
+
Lint/EmptyExpression:
|
496
|
+
Description: 'Checks for empty expressions.'
|
422
497
|
Enabled: true
|
423
498
|
|
424
|
-
|
425
|
-
Description: '
|
499
|
+
Lint/EmptyInterpolation:
|
500
|
+
Description: 'Checks for empty string interpolation.'
|
426
501
|
Enabled: true
|
427
502
|
|
428
|
-
|
429
|
-
Description: '
|
430
|
-
StyleGuide: '#def-self-class-methods'
|
503
|
+
Lint/EmptyWhen:
|
504
|
+
Description: 'Checks for `when` branches with empty bodies.'
|
431
505
|
Enabled: true
|
432
506
|
|
433
|
-
|
434
|
-
Description: '
|
435
|
-
StyleGuide: '#no-class-vars'
|
507
|
+
Lint/EndInMethod:
|
508
|
+
Description: 'END blocks should not be placed inside method definitions.'
|
436
509
|
Enabled: true
|
437
510
|
|
438
|
-
|
439
|
-
Description: 'Do not use
|
440
|
-
StyleGuide: '#
|
511
|
+
Lint/EnsureReturn:
|
512
|
+
Description: 'Do not use return in an ensure block.'
|
513
|
+
StyleGuide: '#no-return-ensure'
|
441
514
|
Enabled: true
|
442
515
|
|
443
|
-
|
444
|
-
Description:
|
445
|
-
|
516
|
+
Lint/FloatOutOfRange:
|
517
|
+
Description: >-
|
518
|
+
Catches floating-point literals too large or small for Ruby to
|
519
|
+
represent.
|
446
520
|
Enabled: true
|
447
521
|
|
448
|
-
|
522
|
+
Lint/FormatParameterMismatch:
|
523
|
+
Description: 'The number of parameters to format/sprint must match the fields.'
|
524
|
+
Enabled: true
|
525
|
+
|
526
|
+
Lint/HandleExceptions:
|
527
|
+
Description: "Don't suppress exception."
|
528
|
+
StyleGuide: '#dont-hide-exceptions'
|
529
|
+
Enabled: true
|
530
|
+
|
531
|
+
Lint/ImplicitStringConcatenation:
|
449
532
|
Description: >-
|
450
|
-
Checks
|
451
|
-
|
452
|
-
StyleGuide: '#annotate-keywords'
|
533
|
+
Checks for adjacent string literals on the same line, which
|
534
|
+
could better be represented as a single string literal.
|
453
535
|
Enabled: true
|
454
536
|
|
455
|
-
|
537
|
+
Lint/IneffectiveAccessModifier:
|
456
538
|
Description: >-
|
457
|
-
|
458
|
-
|
459
|
-
of assigning that variable inside of each branch.
|
539
|
+
Checks for attempts to use `private` or `protected` to set
|
540
|
+
the visibility of a class method, which does not work.
|
460
541
|
Enabled: true
|
461
542
|
|
462
|
-
|
463
|
-
Description: '
|
464
|
-
StyleGuide: '#screaming-snake-case'
|
543
|
+
Lint/InheritException:
|
544
|
+
Description: 'Avoid inheriting from the `Exception` class.'
|
465
545
|
Enabled: true
|
466
546
|
|
467
|
-
|
468
|
-
Description: '
|
469
|
-
StyleGuide: '#method-parens'
|
547
|
+
Lint/InterpolationCheck:
|
548
|
+
Description: 'Raise warning for interpolation in single q strs'
|
470
549
|
Enabled: true
|
471
550
|
|
472
|
-
|
473
|
-
Description: '
|
551
|
+
Lint/LiteralAsCondition:
|
552
|
+
Description: 'Checks of literals used in conditions.'
|
474
553
|
Enabled: true
|
475
|
-
Exclude:
|
476
|
-
- 'spec/**/*'
|
477
|
-
- 'test/**/*'
|
478
554
|
|
479
|
-
|
480
|
-
Description: 'Checks for
|
481
|
-
StyleGuide: '#no-bang-bang'
|
555
|
+
Lint/LiteralInInterpolation:
|
556
|
+
Description: 'Checks for literals used in interpolation.'
|
482
557
|
Enabled: true
|
483
558
|
|
484
|
-
|
559
|
+
Lint/Loop:
|
485
560
|
Description: >-
|
486
|
-
Use
|
487
|
-
|
561
|
+
Use Kernel#loop with break rather than begin/end/until or
|
562
|
+
begin/end/while for post-loop tests.
|
563
|
+
StyleGuide: '#loop-with-break'
|
488
564
|
Enabled: true
|
489
565
|
|
490
|
-
|
491
|
-
Description: '
|
566
|
+
Lint/MissingCopEnableDirective:
|
567
|
+
Description: 'Checks for a `# rubocop:enable` after `# rubocop:disable`'
|
492
568
|
Enabled: true
|
493
569
|
|
494
|
-
|
495
|
-
Description:
|
570
|
+
Lint/MultipleCompare:
|
571
|
+
Description: "Use `&&` operator to compare multiple value."
|
496
572
|
Enabled: true
|
497
573
|
|
498
|
-
|
499
|
-
Description: '
|
574
|
+
Lint/NestedMethodDefinition:
|
575
|
+
Description: 'Do not use nested method definitions.'
|
576
|
+
StyleGuide: '#no-nested-methods'
|
500
577
|
Enabled: true
|
501
578
|
|
502
|
-
|
503
|
-
Description: '
|
504
|
-
StyleGuide: '#literal-array-hash'
|
579
|
+
Lint/NestedPercentLiteral:
|
580
|
+
Description: 'Checks for nested percent literals.'
|
505
581
|
Enabled: true
|
506
582
|
|
507
|
-
|
508
|
-
Description:
|
509
|
-
|
583
|
+
Lint/NextWithoutAccumulator:
|
584
|
+
Description: >-
|
585
|
+
Do not omit the accumulator when calling `next`
|
586
|
+
in a `reduce`/`inject` block.
|
510
587
|
Enabled: true
|
511
588
|
|
512
|
-
|
513
|
-
Description: '
|
514
|
-
StyleGuide: '#no-END-blocks'
|
589
|
+
Lint/NonLocalExitFromIterator:
|
590
|
+
Description: 'Do not use return in iterator to cause non-local exit.'
|
515
591
|
Enabled: true
|
516
592
|
|
517
|
-
|
518
|
-
Description: '
|
519
|
-
StyleGuide: '#predicate-methods'
|
593
|
+
Lint/OrderedMagicComments:
|
594
|
+
Description: 'Checks the proper ordering of magic comments and whether a magic comment is not placed before a shebang.'
|
520
595
|
Enabled: true
|
521
596
|
|
522
|
-
|
523
|
-
Description:
|
524
|
-
|
597
|
+
Lint/ParenthesesAsGroupedExpression:
|
598
|
+
Description: >-
|
599
|
+
Checks for method calls with a space before the opening
|
600
|
+
parenthesis.
|
601
|
+
StyleGuide: '#parens-no-spaces'
|
525
602
|
Enabled: true
|
526
603
|
|
527
|
-
|
604
|
+
Lint/PercentStringArray:
|
528
605
|
Description: >-
|
529
|
-
|
530
|
-
to help transition from Ruby 2.3.0 to Ruby 3.0.
|
606
|
+
Checks for unwanted commas and quotes in %w/%W literals.
|
531
607
|
Enabled: true
|
532
608
|
|
533
|
-
|
534
|
-
Description:
|
535
|
-
|
609
|
+
Lint/PercentSymbolArray:
|
610
|
+
Description: >-
|
611
|
+
Checks for unwanted commas and colons in %i/%I literals.
|
536
612
|
Enabled: true
|
537
613
|
|
538
|
-
|
539
|
-
Description:
|
540
|
-
|
614
|
+
Lint/RandOne:
|
615
|
+
Description: >-
|
616
|
+
Checks for `rand(1)` calls. Such calls always return `0`
|
617
|
+
and most likely a mistake.
|
541
618
|
Enabled: true
|
542
619
|
|
543
|
-
|
544
|
-
Description: '
|
545
|
-
StyleGuide: '#sprintf'
|
620
|
+
Lint/RedundantWithIndex:
|
621
|
+
Description: 'Checks for redundant `with_index`.'
|
546
622
|
Enabled: true
|
547
623
|
|
548
|
-
|
549
|
-
Description: '
|
624
|
+
Lint/RedundantWithObject:
|
625
|
+
Description: 'Checks for redundant `with_object`.'
|
550
626
|
Enabled: true
|
551
627
|
|
552
|
-
|
553
|
-
Description:
|
554
|
-
|
555
|
-
|
628
|
+
Lint/RegexpAsCondition:
|
629
|
+
Description: >-
|
630
|
+
Do not use regexp literal as a condition.
|
631
|
+
The regexp literal matches `$_` implicitly.
|
556
632
|
Enabled: true
|
557
633
|
|
558
|
-
|
559
|
-
Description:
|
560
|
-
|
634
|
+
Lint/RequireParentheses:
|
635
|
+
Description: >-
|
636
|
+
Use parentheses in the method call to avoid confusion
|
637
|
+
about precedence.
|
561
638
|
Enabled: true
|
562
639
|
|
563
|
-
|
564
|
-
Description:
|
565
|
-
|
566
|
-
{ :a => 1, :b => 2 }.
|
567
|
-
StyleGuide: '#hash-literals'
|
640
|
+
Lint/RescueException:
|
641
|
+
Description: 'Avoid rescuing the Exception class.'
|
642
|
+
StyleGuide: '#no-blind-rescues'
|
568
643
|
Enabled: true
|
569
644
|
|
570
|
-
|
571
|
-
Description: '
|
645
|
+
Lint/RescueType:
|
646
|
+
Description: 'Avoid rescuing from non constants that could result in a `TypeError`.'
|
572
647
|
Enabled: true
|
573
648
|
|
574
|
-
|
575
|
-
Description:
|
576
|
-
Favor modifier if/unless usage when you have a
|
577
|
-
single-line body.
|
578
|
-
StyleGuide: '#if-as-a-modifier'
|
649
|
+
Lint/ReturnInVoidContext:
|
650
|
+
Description: 'Checks for return in void context.'
|
579
651
|
Enabled: true
|
580
652
|
|
581
|
-
|
653
|
+
Lint/SafeNavigationChain:
|
654
|
+
Description: 'Do not chain ordinary method call after safe navigation operator.'
|
655
|
+
Enabled: true
|
656
|
+
|
657
|
+
Lint/SafeNavigationConsistency:
|
582
658
|
Description: >-
|
583
|
-
|
659
|
+
Check to make sure that if safe navigation is used for a method
|
660
|
+
call in an `&&` or `||` condition that safe navigation is used
|
661
|
+
for all method calls on that same object.
|
584
662
|
Enabled: true
|
585
663
|
|
586
|
-
|
587
|
-
Description: '
|
588
|
-
StyleGuide: '#no-semicolon-ifs'
|
664
|
+
Lint/ScriptPermission:
|
665
|
+
Description: 'Grant script file execute permission.'
|
589
666
|
Enabled: true
|
590
667
|
|
591
|
-
|
592
|
-
Description:
|
593
|
-
Checks that conditional statements do not have an identical
|
594
|
-
line at the end of each branch, which can validly be moved
|
595
|
-
out of the conditional.
|
668
|
+
Lint/ShadowedArgument:
|
669
|
+
Description: 'Avoid reassigning arguments before they were used.'
|
596
670
|
Enabled: true
|
597
671
|
|
598
|
-
|
599
|
-
Description:
|
600
|
-
|
672
|
+
Lint/ShadowedException:
|
673
|
+
Description: >-
|
674
|
+
Avoid rescuing a higher level exception
|
675
|
+
before a lower level exception.
|
601
676
|
Enabled: true
|
602
677
|
|
603
|
-
|
678
|
+
Lint/ShadowingOuterLocalVariable:
|
604
679
|
Description: >-
|
605
|
-
|
606
|
-
|
680
|
+
Do not use the same name as outer local variable
|
681
|
+
for block arguments or block local variables.
|
607
682
|
Enabled: true
|
608
683
|
|
609
|
-
|
610
|
-
Description: '
|
611
|
-
StyleGuide: '#
|
684
|
+
Lint/StringConversionInInterpolation:
|
685
|
+
Description: 'Checks for Object#to_s usage in string interpolation.'
|
686
|
+
StyleGuide: '#no-to-s'
|
612
687
|
Enabled: true
|
613
688
|
|
614
|
-
|
615
|
-
Description: '
|
616
|
-
StyleGuide: '#proc-call'
|
689
|
+
Lint/Syntax:
|
690
|
+
Description: 'Checks syntax error'
|
617
691
|
Enabled: true
|
618
692
|
|
619
|
-
|
620
|
-
Description:
|
621
|
-
Use \ instead of + or << to concatenate two string literals at
|
622
|
-
line end.
|
693
|
+
Lint/UnderscorePrefixedVariableName:
|
694
|
+
Description: 'Do not use prefix `_` for a variable that is used.'
|
623
695
|
Enabled: true
|
624
696
|
|
625
|
-
|
626
|
-
Description: '
|
627
|
-
StyleGuide: '#method-invocation-parens'
|
697
|
+
Lint/UnifiedInteger:
|
698
|
+
Description: 'Use Integer instead of Fixnum or Bignum'
|
628
699
|
Enabled: true
|
629
700
|
|
630
|
-
|
701
|
+
Lint/UnneededCopDisableDirective:
|
631
702
|
Description: >-
|
632
|
-
Checks
|
633
|
-
|
634
|
-
|
703
|
+
Checks for rubocop:disable comments that can be removed.
|
704
|
+
Note: this cop is not disabled when disabling all cops.
|
705
|
+
It must be explicitly disabled.
|
635
706
|
Enabled: true
|
636
707
|
|
637
|
-
|
638
|
-
Description:
|
639
|
-
|
708
|
+
Lint/UnneededCopEnableDirective:
|
709
|
+
Description: Checks for rubocop:enable comments that can be removed.
|
710
|
+
|
640
711
|
Enabled: true
|
641
712
|
|
642
|
-
|
643
|
-
Description: '
|
644
|
-
StyleGuide: '#no-method-missing'
|
713
|
+
Lint/UnneededRequireStatement:
|
714
|
+
Description: 'Checks for unnecessary `require` statement.'
|
645
715
|
Enabled: true
|
646
716
|
|
647
|
-
|
648
|
-
Description: 'Checks for
|
649
|
-
StyleGuide: '#mixin-grouping'
|
717
|
+
Lint/UnneededSplatExpansion:
|
718
|
+
Description: 'Checks for splat unnecessarily being called on literals'
|
650
719
|
Enabled: true
|
651
720
|
|
652
|
-
|
653
|
-
Description: '
|
654
|
-
StyleGuide: '#module-function'
|
721
|
+
Lint/UnreachableCode:
|
722
|
+
Description: 'Unreachable code.'
|
655
723
|
Enabled: true
|
656
724
|
|
657
|
-
|
658
|
-
Description: '
|
659
|
-
StyleGuide: '#
|
725
|
+
Lint/UnusedBlockArgument:
|
726
|
+
Description: 'Checks for unused block arguments.'
|
727
|
+
StyleGuide: '#underscore-unused-vars'
|
660
728
|
Enabled: true
|
661
729
|
|
662
|
-
|
663
|
-
Description: '
|
664
|
-
StyleGuide: '#
|
730
|
+
Lint/UnusedMethodArgument:
|
731
|
+
Description: 'Checks for unused method arguments.'
|
732
|
+
StyleGuide: '#underscore-unused-vars'
|
665
733
|
Enabled: true
|
666
734
|
|
667
|
-
|
668
|
-
Description:
|
669
|
-
|
735
|
+
Lint/UriEscapeUnescape:
|
736
|
+
Description: >-
|
737
|
+
`URI.escape` method is obsolete and should not be used. Instead, use
|
738
|
+
`CGI.escape`, `URI.encode_www_form` or `URI.encode_www_form_component`
|
739
|
+
depending on your specific use case.
|
740
|
+
Also `URI.unescape` method is obsolete and should not be used. Instead, use
|
741
|
+
`CGI.unescape`, `URI.decode_www_form` or `URI.decode_www_form_component`
|
742
|
+
depending on your specific use case.
|
670
743
|
Enabled: true
|
671
744
|
|
672
|
-
|
673
|
-
Description: '
|
745
|
+
Lint/UriRegexp:
|
746
|
+
Description: 'Use `URI::DEFAULT_PARSER.make_regexp` instead of `URI.regexp`.'
|
674
747
|
Enabled: true
|
675
748
|
|
676
|
-
|
749
|
+
Lint/UselessAccessModifier:
|
750
|
+
Description: 'Checks for useless access modifiers.'
|
751
|
+
Enabled: true
|
752
|
+
ContextCreatingMethods: []
|
753
|
+
MethodCreatingMethods: []
|
754
|
+
|
755
|
+
Lint/UselessAssignment:
|
756
|
+
Description: 'Checks for useless assignment to a local variable.'
|
757
|
+
StyleGuide: '#underscore-unused-vars'
|
758
|
+
Enabled: true
|
759
|
+
|
760
|
+
Lint/UselessComparison:
|
761
|
+
Description: 'Checks for comparison of something with itself.'
|
762
|
+
Enabled: true
|
763
|
+
|
764
|
+
Lint/UselessElseWithoutRescue:
|
765
|
+
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
|
766
|
+
Enabled: true
|
767
|
+
|
768
|
+
Lint/UselessSetterCall:
|
769
|
+
Description: 'Checks for useless setter call to a local variable.'
|
770
|
+
Enabled: true
|
771
|
+
|
772
|
+
Lint/Void:
|
773
|
+
Description: 'Possible use of operator/literal/variable in void context.'
|
774
|
+
Enabled: true
|
775
|
+
|
776
|
+
#################### Metrics ###############################
|
777
|
+
|
778
|
+
Metrics/AbcSize:
|
677
779
|
Description: >-
|
678
|
-
|
679
|
-
|
680
|
-
|
780
|
+
A calculated magnitude based on number of assignments,
|
781
|
+
branches, and conditions.
|
782
|
+
Reference: 'http://c2.com/cgi/wiki?AbcMetric'
|
681
783
|
Enabled: true
|
682
784
|
|
683
|
-
|
785
|
+
Metrics/BlockLength:
|
786
|
+
Description: 'Avoid long blocks with many lines.'
|
787
|
+
Enabled: true
|
788
|
+
|
789
|
+
Metrics/BlockNesting:
|
790
|
+
Description: 'Avoid excessive block nesting'
|
791
|
+
StyleGuide: '#three-is-the-number-thou-shalt-count'
|
792
|
+
Enabled: true
|
793
|
+
|
794
|
+
Metrics/ClassLength:
|
795
|
+
Description: 'Avoid classes longer than 100 lines of code.'
|
796
|
+
Enabled: true
|
797
|
+
|
798
|
+
Metrics/CyclomaticComplexity:
|
684
799
|
Description: >-
|
685
|
-
|
686
|
-
|
800
|
+
A complexity metric that is strongly correlated to the number
|
801
|
+
of test cases needed to validate a method.
|
687
802
|
Enabled: true
|
688
803
|
|
689
|
-
|
690
|
-
Description: '
|
804
|
+
Metrics/LineLength:
|
805
|
+
Description: 'Limit lines to 80 characters.'
|
806
|
+
StyleGuide: '#80-character-limits'
|
691
807
|
Enabled: true
|
692
808
|
|
693
|
-
|
809
|
+
Metrics/MethodLength:
|
810
|
+
Description: 'Avoid methods longer than 10 lines of code.'
|
811
|
+
StyleGuide: '#short-methods'
|
812
|
+
Enabled: true
|
813
|
+
|
814
|
+
Metrics/ModuleLength:
|
815
|
+
Description: 'Avoid modules longer than 100 lines of code.'
|
816
|
+
Enabled: true
|
817
|
+
|
818
|
+
Metrics/ParameterLists:
|
819
|
+
Description: 'Avoid parameter lists longer than three or four parameters.'
|
820
|
+
StyleGuide: '#too-many-params'
|
821
|
+
Enabled: true
|
822
|
+
|
823
|
+
Metrics/PerceivedComplexity:
|
694
824
|
Description: >-
|
695
|
-
|
696
|
-
|
697
|
-
StyleGuide: '#unless-for-negatives'
|
825
|
+
A complexity metric geared towards measuring complexity for a
|
826
|
+
human reader.
|
698
827
|
Enabled: true
|
699
828
|
|
700
|
-
|
701
|
-
|
702
|
-
|
829
|
+
#################### Naming ##############################
|
830
|
+
|
831
|
+
Naming/AccessorMethodName:
|
832
|
+
Description: Check the naming of accessor methods for get_/set_.
|
833
|
+
StyleGuide: '#accessor_mutator_method_names'
|
703
834
|
Enabled: true
|
704
835
|
|
705
|
-
|
706
|
-
Description: '
|
707
|
-
StyleGuide: '#
|
836
|
+
Naming/AsciiIdentifiers:
|
837
|
+
Description: 'Use only ascii symbols in identifiers.'
|
838
|
+
StyleGuide: '#english-identifiers'
|
708
839
|
Enabled: true
|
709
840
|
|
710
|
-
|
841
|
+
Naming/BinaryOperatorParameterName:
|
842
|
+
Description: 'When defining binary operators, name the argument other.'
|
843
|
+
StyleGuide: '#other-arg'
|
844
|
+
Enabled: true
|
845
|
+
|
846
|
+
Naming/ClassAndModuleCamelCase:
|
847
|
+
Description: 'Use CamelCase for classes and modules.'
|
848
|
+
StyleGuide: '#camelcase-classes'
|
849
|
+
Enabled: true
|
850
|
+
|
851
|
+
Naming/ConstantName:
|
852
|
+
Description: 'Constants should use SCREAMING_SNAKE_CASE.'
|
853
|
+
StyleGuide: '#screaming-snake-case'
|
854
|
+
Enabled: true
|
855
|
+
|
856
|
+
Naming/FileName:
|
857
|
+
Description: 'Use snake_case for source file names.'
|
858
|
+
StyleGuide: '#snake-case-files'
|
859
|
+
Enabled: true
|
860
|
+
|
861
|
+
Naming/HeredocDelimiterCase:
|
862
|
+
Description: 'Use configured case for heredoc delimiters.'
|
863
|
+
StyleGuide: '#heredoc-delimiters'
|
864
|
+
Enabled: true
|
865
|
+
|
866
|
+
Naming/HeredocDelimiterNaming:
|
867
|
+
Description: 'Use descriptive heredoc delimiters.'
|
868
|
+
StyleGuide: '#heredoc-delimiters'
|
869
|
+
Enabled: true
|
870
|
+
|
871
|
+
Naming/MemoizedInstanceVariableName:
|
711
872
|
Description: >-
|
712
|
-
|
713
|
-
argument list of another parenthesized method call.
|
873
|
+
Memoized method name should match memo instance variable name.
|
714
874
|
Enabled: true
|
715
875
|
|
716
|
-
|
717
|
-
Description: 'Use
|
718
|
-
StyleGuide: '#
|
876
|
+
Naming/MethodName:
|
877
|
+
Description: 'Use the configured style when naming methods.'
|
878
|
+
StyleGuide: '#snake-case-symbols-methods-vars'
|
719
879
|
Enabled: true
|
720
880
|
|
721
|
-
|
722
|
-
Description: '
|
723
|
-
StyleGuide: '#
|
881
|
+
Naming/PredicateName:
|
882
|
+
Description: 'Check the names of predicate methods.'
|
883
|
+
StyleGuide: '#bool-methods-qmark'
|
724
884
|
Enabled: true
|
725
885
|
|
726
|
-
|
727
|
-
Description:
|
728
|
-
|
886
|
+
Naming/UncommunicativeBlockParamName:
|
887
|
+
Description: >-
|
888
|
+
Checks for block parameter names that contain capital letters,
|
889
|
+
end in numbers, or do not meet a minimal length.
|
729
890
|
Enabled: true
|
730
891
|
|
731
|
-
|
732
|
-
Description:
|
733
|
-
|
892
|
+
Naming/UncommunicativeMethodParamName:
|
893
|
+
Description: >-
|
894
|
+
Checks for method parameter names that contain capital letters,
|
895
|
+
end in numbers, or do not meet a minimal length.
|
734
896
|
Enabled: true
|
735
897
|
|
736
|
-
|
737
|
-
Description: 'Use
|
738
|
-
StyleGuide: '#
|
898
|
+
Naming/VariableName:
|
899
|
+
Description: 'Use the configured style when naming variables.'
|
900
|
+
StyleGuide: '#snake-case-symbols-methods-vars'
|
739
901
|
Enabled: true
|
740
902
|
|
741
|
-
|
903
|
+
Naming/VariableNumber:
|
904
|
+
Description: 'Use the configured style when numbering variables.'
|
905
|
+
Enabled: true
|
906
|
+
|
907
|
+
#################### Performance ###########################
|
908
|
+
|
909
|
+
Performance/Caller:
|
742
910
|
Description: >-
|
743
|
-
|
744
|
-
readability.
|
745
|
-
StyleGuide: '#underscores-in-numerics'
|
911
|
+
Use `caller(n..n)` instead of `caller`.
|
746
912
|
Enabled: true
|
747
913
|
|
748
|
-
|
749
|
-
Description:
|
750
|
-
|
914
|
+
Performance/CaseWhenSplat:
|
915
|
+
Description: >-
|
916
|
+
Place `when` conditions that use splat at the end
|
917
|
+
of the list of `when` branches.
|
751
918
|
Enabled: true
|
752
919
|
|
753
|
-
|
920
|
+
Performance/Casecmp:
|
754
921
|
Description: >-
|
755
|
-
|
756
|
-
|
757
|
-
|
922
|
+
Use `casecmp` rather than `downcase ==`, `upcase ==`, `== downcase`, or `== upcase`..
|
923
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringcasecmp-vs-stringdowncase---code'
|
924
|
+
Enabled: true
|
925
|
+
|
926
|
+
Performance/CompareWithBlock:
|
927
|
+
Description: 'Use `sort_by(&:foo)` instead of `sort { |a, b| a.foo <=> b.foo }`.'
|
928
|
+
Enabled: true
|
929
|
+
|
930
|
+
Performance/Count:
|
931
|
+
Description: >-
|
932
|
+
Use `count` instead of `select...size`, `reject...size`,
|
933
|
+
`select...count`, `reject...count`, `select...length`,
|
934
|
+
and `reject...length`.
|
935
|
+
# This cop has known compatibility issues with `ActiveRecord` and other
|
936
|
+
# frameworks. ActiveRecord's `count` ignores the block that is passed to it.
|
937
|
+
# For more information, see the documentation in the cop itself.
|
938
|
+
# If you understand the known risk, you can disable `SafeMode`.
|
939
|
+
SafeMode: true
|
940
|
+
Enabled: true
|
941
|
+
|
942
|
+
Performance/Detect:
|
943
|
+
Description: >-
|
944
|
+
Use `detect` instead of `select.first`, `find_all.first`,
|
945
|
+
`select.last`, and `find_all.last`.
|
946
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
|
947
|
+
# This cop has known compatibility issues with `ActiveRecord` and other
|
948
|
+
# frameworks. `ActiveRecord` does not implement a `detect` method and `find`
|
949
|
+
# has its own meaning. Correcting `ActiveRecord` methods with this cop
|
950
|
+
# should be considered unsafe.
|
951
|
+
SafeMode: true
|
952
|
+
Enabled: true
|
953
|
+
|
954
|
+
Performance/DoubleStartEndWith:
|
955
|
+
Description: >-
|
956
|
+
Use `str.{start,end}_with?(x, ..., y, ...)`
|
957
|
+
instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
|
958
|
+
Enabled: true
|
959
|
+
|
960
|
+
Performance/EndWith:
|
961
|
+
Description: 'Use `end_with?` instead of a regex match anchored to the end of a string.'
|
962
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end'
|
758
963
|
# This will change to a new method call which isn't guaranteed to be on the
|
759
964
|
# object. Switching these methods has to be done with knowledge of the types
|
760
965
|
# of the variables which rubocop doesn't have.
|
761
966
|
AutoCorrect: false
|
762
967
|
Enabled: true
|
763
968
|
|
764
|
-
|
969
|
+
Performance/FixedSize:
|
970
|
+
Description: 'Do not compute the size of statically sized objects except in constants'
|
971
|
+
Enabled: true
|
972
|
+
|
973
|
+
Performance/FlatMap:
|
765
974
|
Description: >-
|
766
|
-
|
767
|
-
|
768
|
-
|
975
|
+
Use `Enumerable#flat_map`
|
976
|
+
instead of `Enumerable#map...Array#flatten(1)`
|
977
|
+
or `Enumberable#collect..Array#flatten(1)`
|
978
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
|
769
979
|
Enabled: true
|
980
|
+
EnabledForFlattenWithoutParams: false
|
981
|
+
# If enabled, this cop will warn about usages of
|
982
|
+
# `flatten` being called without any parameters.
|
983
|
+
# This can be dangerous since `flat_map` will only flatten 1 level, and
|
984
|
+
# `flatten` without any parameters can flatten multiple levels.
|
770
985
|
|
771
|
-
|
772
|
-
Description: '
|
773
|
-
StyleGuide: '#other-arg'
|
986
|
+
Performance/LstripRstrip:
|
987
|
+
Description: 'Use `strip` instead of `lstrip.rstrip`.'
|
774
988
|
Enabled: true
|
775
989
|
|
776
|
-
|
990
|
+
Performance/RangeInclude:
|
991
|
+
Description: 'Use `Range#cover?` instead of `Range#include?`.'
|
992
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#cover-vs-include-code'
|
993
|
+
Enabled: true
|
994
|
+
|
995
|
+
Performance/RedundantBlockCall:
|
996
|
+
Description: 'Use `yield` instead of `block.call`.'
|
997
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#proccall-and-block-arguments-vs-yieldcode'
|
998
|
+
Enabled: true
|
999
|
+
|
1000
|
+
Performance/RedundantMatch:
|
777
1001
|
Description: >-
|
778
|
-
|
779
|
-
|
780
|
-
StyleGuide: '#optional-arguments'
|
1002
|
+
Use `=~` instead of `String#match` or `Regexp#match` in a context where the
|
1003
|
+
returned `MatchData` is not needed.
|
781
1004
|
Enabled: true
|
782
1005
|
|
783
|
-
|
1006
|
+
Performance/RedundantMerge:
|
1007
|
+
Description: 'Use Hash#[]=, rather than Hash#merge! with a single key-value pair.'
|
1008
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashmerge-vs-hash-code'
|
1009
|
+
Enabled: true
|
1010
|
+
|
1011
|
+
Performance/RedundantSortBy:
|
1012
|
+
Description: 'Use `sort` instead of `sort_by { |x| x }`.'
|
1013
|
+
Enabled: true
|
1014
|
+
|
1015
|
+
Performance/RegexpMatch:
|
784
1016
|
Description: >-
|
785
|
-
|
786
|
-
|
787
|
-
matches on both sides of the assignment.
|
788
|
-
StyleGuide: '#parallel-assignment'
|
1017
|
+
Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`,
|
1018
|
+
`Regexp#===`, or `=~` when `MatchData` is not used.
|
789
1019
|
Enabled: true
|
790
1020
|
|
791
|
-
|
1021
|
+
Performance/ReverseEach:
|
1022
|
+
Description: 'Use `reverse_each` instead of `reverse.each`.'
|
1023
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
|
1024
|
+
Enabled: true
|
1025
|
+
|
1026
|
+
Performance/Sample:
|
792
1027
|
Description: >-
|
793
|
-
|
794
|
-
|
795
|
-
|
1028
|
+
Use `sample` instead of `shuffle.first`,
|
1029
|
+
`shuffle.last`, and `shuffle[Integer]`.
|
1030
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
|
796
1031
|
Enabled: true
|
797
1032
|
|
798
|
-
|
799
|
-
Description:
|
800
|
-
|
1033
|
+
Performance/Size:
|
1034
|
+
Description: >-
|
1035
|
+
Use `size` instead of `count` for counting
|
1036
|
+
the number of elements in `Array` and `Hash`.
|
1037
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraylength-vs-arraysize-vs-arraycount-code'
|
801
1038
|
Enabled: true
|
802
1039
|
|
803
|
-
|
804
|
-
Description: '
|
1040
|
+
Performance/StartWith:
|
1041
|
+
Description: 'Use `start_with?` instead of a regex match anchored to the beginning of a string.'
|
1042
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end'
|
1043
|
+
# This will change to a new method call which isn't guaranteed to be on the
|
1044
|
+
# object. Switching these methods has to be done with knowledge of the types
|
1045
|
+
# of the variables which rubocop doesn't have.
|
1046
|
+
AutoCorrect: false
|
805
1047
|
Enabled: true
|
806
1048
|
|
807
|
-
|
808
|
-
Description:
|
809
|
-
|
1049
|
+
Performance/StringReplacement:
|
1050
|
+
Description: >-
|
1051
|
+
Use `tr` instead of `gsub` when you are replacing the same
|
1052
|
+
number of characters. Use `delete` instead of `gsub` when
|
1053
|
+
you are deleting characters.
|
1054
|
+
Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
|
810
1055
|
Enabled: true
|
811
1056
|
|
812
|
-
|
813
|
-
Description: '
|
814
|
-
|
1057
|
+
Performance/TimesMap:
|
1058
|
+
Description: 'Checks for .times.map calls.'
|
1059
|
+
AutoCorrect: false
|
815
1060
|
Enabled: true
|
816
1061
|
|
817
|
-
|
818
|
-
Description: '
|
819
|
-
|
1062
|
+
Performance/UnfreezeString:
|
1063
|
+
Description: 'Use unary plus to get an unfrozen string literal.'
|
1064
|
+
Enabled: true
|
1065
|
+
|
1066
|
+
Performance/UnneededSort:
|
1067
|
+
Description: >-
|
1068
|
+
Use `min` instead of `sort.first`,
|
1069
|
+
`max_by` instead of `sort_by...last`, etc.
|
1070
|
+
Enabled: true
|
1071
|
+
|
1072
|
+
Performance/UriDefaultParser:
|
1073
|
+
Description: 'Use `URI::DEFAULT_PARSER` instead of `URI::Parser.new`.'
|
1074
|
+
Enabled: true
|
1075
|
+
|
1076
|
+
#################### Rails #################################
|
1077
|
+
|
1078
|
+
Rails/ActionFilter:
|
1079
|
+
Description: 'Enforces consistent use of action filter methods.'
|
1080
|
+
Enabled: true
|
1081
|
+
|
1082
|
+
Rails/ActiveRecordAliases:
|
1083
|
+
Description: >-
|
1084
|
+
Avoid Active Record aliases:
|
1085
|
+
Use `update` instead of `update_attributes`.
|
1086
|
+
Use `update!` instead of `update_attributes!`.
|
1087
|
+
Enabled: true
|
1088
|
+
|
1089
|
+
Rails/ActiveSupportAliases:
|
1090
|
+
Description: >-
|
1091
|
+
Avoid ActiveSupport aliases of standard ruby methods:
|
1092
|
+
`String#starts_with?`, `String#ends_with?`,
|
1093
|
+
`Array#append`, `Array#prepend`.
|
1094
|
+
Enabled: true
|
1095
|
+
|
1096
|
+
Rails/ApplicationJob:
|
1097
|
+
Description: 'Check that jobs subclass ApplicationJob.'
|
1098
|
+
Enabled: true
|
1099
|
+
|
1100
|
+
Rails/ApplicationRecord:
|
1101
|
+
Description: 'Check that models subclass ApplicationRecord.'
|
1102
|
+
Enabled: true
|
1103
|
+
|
1104
|
+
Rails/Blank:
|
1105
|
+
Description: 'Enforce using `blank?` and `present?`.'
|
1106
|
+
Enabled: true
|
1107
|
+
# Convert checks for `nil` or `empty?` to `blank?`
|
1108
|
+
NilOrEmpty: true
|
1109
|
+
# Convert usages of not `present?` to `blank?`
|
1110
|
+
NotPresent: true
|
1111
|
+
# Convert usages of `unless` `present?` to `if` `blank?`
|
1112
|
+
UnlessPresent: true
|
1113
|
+
|
1114
|
+
Rails/CreateTableWithTimestamps:
|
1115
|
+
Description: >-
|
1116
|
+
Checks the migration for which timestamps are not included
|
1117
|
+
when creating a new table.
|
1118
|
+
Enabled: true
|
1119
|
+
|
1120
|
+
Rails/Date:
|
1121
|
+
Description: >-
|
1122
|
+
Checks the correct usage of date aware methods,
|
1123
|
+
such as Date.today, Date.current etc.
|
1124
|
+
Enabled: true
|
1125
|
+
|
1126
|
+
Rails/Delegate:
|
1127
|
+
Description: 'Prefer delegate method for delegations.'
|
1128
|
+
Enabled: true
|
1129
|
+
|
1130
|
+
Rails/DelegateAllowBlank:
|
1131
|
+
Description: 'Do not use allow_blank as an option to delegate.'
|
1132
|
+
Enabled: true
|
1133
|
+
|
1134
|
+
Rails/DynamicFindBy:
|
1135
|
+
Description: 'Use `find_by` instead of dynamic `find_by_*`.'
|
1136
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#find_by'
|
820
1137
|
Enabled: true
|
821
1138
|
|
822
|
-
|
823
|
-
Description: '
|
824
|
-
StyleGuide: '#proc'
|
1139
|
+
Rails/EnumUniqueness:
|
1140
|
+
Description: 'Avoid duplicate integers in hash-syntax `enum` declaration.'
|
825
1141
|
Enabled: true
|
826
1142
|
|
827
|
-
|
828
|
-
Description:
|
829
|
-
StyleGuide: '#exception-class-messages'
|
1143
|
+
Rails/EnvironmentComparison:
|
1144
|
+
Description: "Favor `Rails.env.production?` over `Rails.env == 'production'`"
|
830
1145
|
Enabled: true
|
831
1146
|
|
832
|
-
|
833
|
-
Description:
|
834
|
-
|
1147
|
+
Rails/Exit:
|
1148
|
+
Description: >-
|
1149
|
+
Favor `fail`, `break`, `return`, etc. over `exit` in
|
1150
|
+
application or library code outside of Rake files to avoid
|
1151
|
+
exits during unit testing or running in production.
|
835
1152
|
Enabled: true
|
836
1153
|
|
837
|
-
|
838
|
-
Description:
|
839
|
-
StyleGuide: '#no-explicit-runtimeerror'
|
1154
|
+
Rails/FilePath:
|
1155
|
+
Description: 'Use `Rails.root.join` for file path joining.'
|
840
1156
|
Enabled: true
|
841
1157
|
|
842
|
-
|
843
|
-
Description:
|
1158
|
+
Rails/FindBy:
|
1159
|
+
Description: 'Prefer find_by over where.first.'
|
1160
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#find_by'
|
844
1161
|
Enabled: true
|
845
1162
|
|
846
|
-
|
847
|
-
Description:
|
1163
|
+
Rails/FindEach:
|
1164
|
+
Description: 'Prefer all.find_each over all.find.'
|
1165
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#find-each'
|
848
1166
|
Enabled: true
|
849
1167
|
|
850
|
-
|
851
|
-
Description:
|
852
|
-
StyleGuide: '#
|
1168
|
+
Rails/HasAndBelongsToMany:
|
1169
|
+
Description: 'Prefer has_many :through to has_and_belongs_to_many.'
|
1170
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has-many-through'
|
853
1171
|
Enabled: true
|
854
1172
|
|
855
|
-
|
856
|
-
Description:
|
857
|
-
StyleGuide: '#
|
1173
|
+
Rails/HasManyOrHasOneDependent:
|
1174
|
+
Description: 'Define the dependent option to the has_many and has_one associations.'
|
1175
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has_many-has_one-dependent-option'
|
858
1176
|
Enabled: true
|
859
1177
|
|
860
|
-
|
861
|
-
Description: 'Use
|
862
|
-
StyleGuide: '#percent-r'
|
1178
|
+
Rails/HttpPositionalArguments:
|
1179
|
+
Description: 'Use keyword arguments instead of positional arguments in http method calls.'
|
863
1180
|
Enabled: true
|
1181
|
+
Include:
|
1182
|
+
- 'spec/**/*'
|
1183
|
+
- 'test/**/*'
|
864
1184
|
|
865
|
-
|
866
|
-
Description: '
|
867
|
-
StyleGuide: '#no-rescue-modifiers'
|
1185
|
+
Rails/HttpStatus:
|
1186
|
+
Description: 'Enforces use of symbolic or numeric value to define HTTP status.'
|
868
1187
|
Enabled: true
|
869
1188
|
|
870
|
-
|
871
|
-
Description:
|
872
|
-
This cop transforms usages of a method call safeguarded by
|
873
|
-
a check for the existance of the object to
|
874
|
-
safe navigation (`&.`).
|
1189
|
+
Rails/InverseOf:
|
1190
|
+
Description: 'Checks for associations where the inverse cannot be determined automatically.'
|
875
1191
|
Enabled: true
|
876
1192
|
|
877
|
-
|
878
|
-
Description:
|
879
|
-
|
880
|
-
been used.
|
881
|
-
StyleGuide: '#self-assignment'
|
1193
|
+
Rails/LexicallyScopedActionFilter:
|
1194
|
+
Description: "Checks that methods specified in the filter's `only` or `except` options are explicitly defined in the controller."
|
1195
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#lexically-scoped-action-filter'
|
882
1196
|
Enabled: true
|
883
1197
|
|
884
|
-
|
885
|
-
Description:
|
886
|
-
StyleGuide: '#no-semicolon'
|
1198
|
+
Rails/NotNullColumn:
|
1199
|
+
Description: 'Do not add a NOT NULL column without a default value'
|
887
1200
|
Enabled: true
|
888
1201
|
|
889
|
-
|
890
|
-
Description: 'Checks for
|
891
|
-
StyleGuide: '#prefer-raise-over-fail'
|
1202
|
+
Rails/Output:
|
1203
|
+
Description: 'Checks for calls to puts, print, etc.'
|
892
1204
|
Enabled: true
|
893
1205
|
|
894
|
-
|
895
|
-
Description: '
|
896
|
-
StyleGuide: '#no-single-line-methods'
|
1206
|
+
Rails/OutputSafety:
|
1207
|
+
Description: 'The use of `html_safe` or `raw` may be a security risk.'
|
897
1208
|
Enabled: true
|
898
1209
|
|
899
|
-
|
900
|
-
Description: '
|
901
|
-
StyleGuide: '#no-cryptic-perlisms'
|
1210
|
+
Rails/PluralizationGrammar:
|
1211
|
+
Description: 'Checks for incorrect grammar when using methods like `3.day.ago`.'
|
902
1212
|
Enabled: true
|
903
1213
|
|
904
|
-
|
905
|
-
Description: '
|
906
|
-
StyleGuide: '#stabby-lambda-with-args'
|
1214
|
+
Rails/Presence:
|
1215
|
+
Description: 'Checks code that can be written more easily using `Object#presence` defined by Active Support.'
|
907
1216
|
Enabled: true
|
908
1217
|
|
909
|
-
|
910
|
-
Description: '
|
911
|
-
StyleGuide: '#consistent-string-literals'
|
1218
|
+
Rails/Present:
|
1219
|
+
Description: 'Enforce using `blank?` and `present?`.'
|
912
1220
|
Enabled: true
|
1221
|
+
NotNilAndNotEmpty: true
|
1222
|
+
# Convert checks for not `nil` and not `empty?` to `present?`
|
1223
|
+
NotBlank: true
|
1224
|
+
# Convert usages of not `blank?` to `present?`
|
1225
|
+
UnlessBlank: true
|
1226
|
+
# Convert usages of `unless` `blank?` to `if` `present?`
|
913
1227
|
|
914
|
-
|
1228
|
+
Rails/ReadWriteAttribute:
|
915
1229
|
Description: >-
|
916
|
-
Checks
|
917
|
-
|
1230
|
+
Checks for read_attribute(:attr) and
|
1231
|
+
write_attribute(:attr, val).
|
1232
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#read-attribute'
|
918
1233
|
Enabled: true
|
919
1234
|
|
920
|
-
|
921
|
-
Description: 'Checks for
|
922
|
-
StyleGuide: '#no-extend-struct-new'
|
1235
|
+
Rails/RedundantReceiverInWithOptions:
|
1236
|
+
Description: 'Checks for redundant receiver in `with_options`.'
|
923
1237
|
Enabled: true
|
924
1238
|
|
925
|
-
|
926
|
-
Description: '
|
927
|
-
StyleGuide: '#percent-i'
|
1239
|
+
Rails/RelativeDateConstant:
|
1240
|
+
Description: 'Do not assign relative date to constants.'
|
928
1241
|
Enabled: true
|
929
1242
|
|
930
|
-
|
931
|
-
Description: 'Use
|
1243
|
+
Rails/RequestReferer:
|
1244
|
+
Description: 'Use consistent syntax for request.referer.'
|
932
1245
|
Enabled: true
|
933
1246
|
|
934
|
-
|
935
|
-
Description: '
|
1247
|
+
Rails/ReversibleMigration:
|
1248
|
+
Description: 'Checks whether the change method of the migration file is reversible.'
|
1249
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#reversible-migration'
|
1250
|
+
Reference: 'http://api.rubyonrails.org/classes/ActiveRecord/Migration/CommandRecorder.html'
|
936
1251
|
Enabled: true
|
937
1252
|
|
938
|
-
|
939
|
-
Description: '
|
1253
|
+
Rails/SafeNavigation:
|
1254
|
+
Description: "Use Ruby's safe navigation operator (`&.`) instead of `try!`"
|
940
1255
|
Enabled: true
|
941
1256
|
|
942
|
-
|
943
|
-
Description: 'Checks
|
944
|
-
StyleGuide: '#no-trailing-params-comma'
|
1257
|
+
Rails/ScopeArgs:
|
1258
|
+
Description: 'Checks the arguments of ActiveRecord scopes.'
|
945
1259
|
Enabled: true
|
946
1260
|
|
947
|
-
|
948
|
-
Description:
|
949
|
-
|
1261
|
+
Rails/SkipsModelValidations:
|
1262
|
+
Description: >-
|
1263
|
+
Use methods that skips model validations with caution.
|
1264
|
+
See reference for more information.
|
1265
|
+
Reference: 'http://guides.rubyonrails.org/active_record_validations.html#skipping-validations'
|
950
1266
|
Enabled: true
|
951
1267
|
|
952
|
-
|
953
|
-
Description: '
|
954
|
-
StyleGuide: '#
|
1268
|
+
Rails/TimeZone:
|
1269
|
+
Description: 'Checks the correct usage of time zone aware methods.'
|
1270
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
|
1271
|
+
Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
|
955
1272
|
Enabled: true
|
956
1273
|
|
957
|
-
|
958
|
-
Description:
|
959
|
-
Do not use unless with else. Rewrite these with the positive
|
960
|
-
case first.
|
961
|
-
StyleGuide: '#no-else-with-unless'
|
1274
|
+
Rails/UniqBeforePluck:
|
1275
|
+
Description: 'Prefer the use of uniq or distinct before pluck.'
|
962
1276
|
Enabled: true
|
963
1277
|
|
964
|
-
|
965
|
-
Description: '
|
1278
|
+
Rails/UnknownEnv:
|
1279
|
+
Description: 'Use correct environment name.'
|
966
1280
|
Enabled: true
|
967
1281
|
|
968
|
-
|
969
|
-
Description: '
|
1282
|
+
Rails/Validation:
|
1283
|
+
Description: 'Use validates :attribute, hash of validations.'
|
970
1284
|
Enabled: true
|
971
1285
|
|
972
|
-
|
973
|
-
|
974
|
-
|
1286
|
+
#################### Security ##############################
|
1287
|
+
|
1288
|
+
Security/Eval:
|
1289
|
+
Description: 'The use of eval represents a serious security risk.'
|
975
1290
|
Enabled: true
|
976
1291
|
|
977
|
-
|
1292
|
+
Security/JSONLoad:
|
978
1293
|
Description: >-
|
979
|
-
|
980
|
-
|
981
|
-
|
1294
|
+
Prefer usage of `JSON.parse` over `JSON.load` due to potential
|
1295
|
+
security issues. See reference for more information.
|
1296
|
+
Reference: 'http://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load'
|
982
1297
|
Enabled: true
|
1298
|
+
# Autocorrect here will change to a method that may cause crashes depending
|
1299
|
+
# on the value of the argument.
|
1300
|
+
AutoCorrect: false
|
983
1301
|
|
984
|
-
|
1302
|
+
Security/MarshalLoad:
|
985
1303
|
Description: >-
|
986
|
-
|
987
|
-
|
988
|
-
|
1304
|
+
Avoid using of `Marshal.load` or `Marshal.restore` due to potential
|
1305
|
+
security issues. See reference for more information.
|
1306
|
+
Reference: 'http://ruby-doc.org/core-2.3.3/Marshal.html#module-Marshal-label-Security+considerations'
|
989
1307
|
Enabled: true
|
990
1308
|
|
991
|
-
|
992
|
-
Description: '
|
993
|
-
StyleGuide: '#snake-case-symbols-methods-vars'
|
1309
|
+
Security/Open:
|
1310
|
+
Description: 'The use of Kernel#open represents a serious security risk.'
|
994
1311
|
Enabled: true
|
995
1312
|
|
996
|
-
|
997
|
-
Description:
|
1313
|
+
Security/YAMLLoad:
|
1314
|
+
Description: >-
|
1315
|
+
Prefer usage of `YAML.safe_load` over `YAML.load` due to potential
|
1316
|
+
security issues. See reference for more information.
|
1317
|
+
Reference: 'https://ruby-doc.org/stdlib-2.3.3/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security'
|
998
1318
|
Enabled: true
|
999
1319
|
|
1000
|
-
Style
|
1001
|
-
|
1002
|
-
|
1320
|
+
#################### Style ###############################
|
1321
|
+
|
1322
|
+
Style/Alias:
|
1323
|
+
Description: 'Use alias instead of alias_method.'
|
1324
|
+
StyleGuide: '#alias-method'
|
1003
1325
|
Enabled: true
|
1004
1326
|
|
1005
|
-
Style/
|
1006
|
-
Description: '
|
1007
|
-
StyleGuide: '#no-
|
1327
|
+
Style/AndOr:
|
1328
|
+
Description: 'Use &&/|| instead of and/or.'
|
1329
|
+
StyleGuide: '#no-and-or-or'
|
1008
1330
|
Enabled: true
|
1009
1331
|
|
1010
|
-
Style/
|
1011
|
-
Description:
|
1012
|
-
|
1013
|
-
single-line body.
|
1014
|
-
StyleGuide: '#while-as-a-modifier'
|
1332
|
+
Style/ArrayJoin:
|
1333
|
+
Description: 'Use Array#join instead of Array#*.'
|
1334
|
+
StyleGuide: '#array-join'
|
1015
1335
|
Enabled: true
|
1016
1336
|
|
1017
|
-
Style/
|
1018
|
-
Description: 'Use
|
1019
|
-
StyleGuide: '#
|
1337
|
+
Style/AsciiComments:
|
1338
|
+
Description: 'Use only ascii symbols in comments.'
|
1339
|
+
StyleGuide: '#english-comments'
|
1020
1340
|
Enabled: true
|
1021
1341
|
|
1022
|
-
Style/
|
1023
|
-
Description: '
|
1024
|
-
|
1342
|
+
Style/Attr:
|
1343
|
+
Description: 'Checks for uses of Module#attr.'
|
1344
|
+
StyleGuide: '#attr'
|
1025
1345
|
Enabled: true
|
1026
1346
|
|
1027
|
-
Style/
|
1028
|
-
Description: '
|
1347
|
+
Style/BarePercentLiterals:
|
1348
|
+
Description: 'Checks if usage of %() or %Q() matches configuration.'
|
1349
|
+
StyleGuide: '#percent-q-shorthand'
|
1029
1350
|
Enabled: true
|
1030
1351
|
|
1031
|
-
|
1352
|
+
Style/BeginBlock:
|
1353
|
+
Description: 'Avoid the use of BEGIN blocks.'
|
1354
|
+
StyleGuide: '#no-BEGIN-blocks'
|
1355
|
+
Enabled: true
|
1032
1356
|
|
1033
|
-
|
1357
|
+
Style/BlockComments:
|
1358
|
+
Description: 'Do not use block comments.'
|
1359
|
+
StyleGuide: '#no-block-comments'
|
1360
|
+
Enabled: true
|
1361
|
+
|
1362
|
+
Style/BlockDelimiters:
|
1034
1363
|
Description: >-
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1364
|
+
Avoid using {...} for multi-line blocks (multiline chaining is
|
1365
|
+
always ugly).
|
1366
|
+
Prefer {...} over do...end for single-line blocks.
|
1367
|
+
StyleGuide: '#single-line-blocks'
|
1038
1368
|
Enabled: true
|
1039
1369
|
|
1040
|
-
|
1041
|
-
Description: '
|
1042
|
-
StyleGuide: '#three-is-the-number-thou-shalt-count'
|
1370
|
+
Style/BracesAroundHashParameters:
|
1371
|
+
Description: 'Enforce braces style around hash parameters.'
|
1043
1372
|
Enabled: true
|
1044
1373
|
|
1045
|
-
|
1046
|
-
Description: 'Avoid
|
1374
|
+
Style/CaseEquality:
|
1375
|
+
Description: 'Avoid explicit use of the case equality operator(===).'
|
1376
|
+
StyleGuide: '#no-case-equality'
|
1047
1377
|
Enabled: true
|
1048
1378
|
|
1049
|
-
|
1050
|
-
Description: '
|
1379
|
+
Style/CharacterLiteral:
|
1380
|
+
Description: 'Checks for uses of character literals.'
|
1381
|
+
StyleGuide: '#no-character-literals'
|
1051
1382
|
Enabled: true
|
1052
1383
|
|
1053
|
-
|
1054
|
-
Description:
|
1055
|
-
|
1056
|
-
|
1384
|
+
Style/ClassAndModuleChildren:
|
1385
|
+
Description: 'Checks style of children classes and modules.'
|
1386
|
+
StyleGuide: '#namespace-definition'
|
1387
|
+
# Moving from compact to nested children requires knowledge of whether the
|
1388
|
+
# outer parent is a module or a class. Moving from nested to compact requires
|
1389
|
+
# verification that the outer parent is defined elsewhere. Rubocop does not
|
1390
|
+
# have the knowledge to perform either operation safely and thus requires
|
1391
|
+
# manual oversight.
|
1392
|
+
AutoCorrect: false
|
1057
1393
|
Enabled: true
|
1058
1394
|
|
1059
|
-
|
1060
|
-
Description: '
|
1061
|
-
StyleGuide: '#80-character-limits'
|
1395
|
+
Style/ClassCheck:
|
1396
|
+
Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
|
1062
1397
|
Enabled: true
|
1063
1398
|
|
1064
|
-
|
1065
|
-
Description: '
|
1066
|
-
StyleGuide: '#
|
1399
|
+
Style/ClassMethods:
|
1400
|
+
Description: 'Use self when defining module/class methods.'
|
1401
|
+
StyleGuide: '#def-self-class-methods'
|
1067
1402
|
Enabled: true
|
1068
1403
|
|
1069
|
-
|
1070
|
-
Description: 'Avoid
|
1404
|
+
Style/ClassVars:
|
1405
|
+
Description: 'Avoid the use of class variables.'
|
1406
|
+
StyleGuide: '#no-class-vars'
|
1071
1407
|
Enabled: true
|
1072
1408
|
|
1073
|
-
|
1074
|
-
Description: '
|
1075
|
-
StyleGuide: '#
|
1409
|
+
Style/ColonMethodCall:
|
1410
|
+
Description: 'Do not use :: for method call.'
|
1411
|
+
StyleGuide: '#double-colons'
|
1076
1412
|
Enabled: true
|
1077
1413
|
|
1078
|
-
|
1079
|
-
Description:
|
1080
|
-
|
1081
|
-
human reader.
|
1414
|
+
Style/ColonMethodDefinition:
|
1415
|
+
Description: 'Do not use :: for defining class methods.'
|
1416
|
+
StyleGuide: '#colon-method-definition'
|
1082
1417
|
Enabled: true
|
1083
1418
|
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
Lint/AmbiguousBlockAssociation:
|
1088
|
-
Description: >-
|
1089
|
-
Checks for ambiguous block association with method when param passed without
|
1090
|
-
parentheses.
|
1091
|
-
StyleGuide: '#syntax'
|
1419
|
+
Style/CommandLiteral:
|
1420
|
+
Description: 'Use `` or %x around command literals.'
|
1421
|
+
StyleGuide: '#percent-x'
|
1092
1422
|
Enabled: true
|
1093
1423
|
|
1094
|
-
|
1424
|
+
Style/CommentAnnotation:
|
1095
1425
|
Description: >-
|
1096
|
-
Checks
|
1097
|
-
|
1098
|
-
StyleGuide: '#
|
1426
|
+
Checks formatting of special comments
|
1427
|
+
(TODO, FIXME, OPTIMIZE, HACK, REVIEW).
|
1428
|
+
StyleGuide: '#annotate-keywords'
|
1099
1429
|
Enabled: true
|
1100
1430
|
|
1101
|
-
|
1102
|
-
Description:
|
1103
|
-
Checks for ambiguous regexp literals in the first argument of
|
1104
|
-
a method invocation without parentheses.
|
1431
|
+
Style/CommentedKeyword:
|
1432
|
+
Description: 'Do not place comments on the same line as certain keywords.'
|
1105
1433
|
Enabled: true
|
1106
1434
|
|
1107
|
-
|
1108
|
-
Description:
|
1109
|
-
|
1435
|
+
Style/ConditionalAssignment:
|
1436
|
+
Description: >-
|
1437
|
+
Use the return value of `if` and `case` statements for
|
1438
|
+
assignment to a variable and variable comparison instead
|
1439
|
+
of assigning that variable inside of each branch.
|
1110
1440
|
Enabled: true
|
1111
1441
|
|
1112
|
-
|
1113
|
-
Description: '
|
1442
|
+
Style/DateTime:
|
1443
|
+
Description: 'Use Date or Time over DateTime.'
|
1444
|
+
StyleGuide: '#date--time'
|
1114
1445
|
Enabled: true
|
1115
1446
|
|
1116
|
-
|
1117
|
-
Description:
|
1447
|
+
Style/DefWithParentheses:
|
1448
|
+
Description: 'Use def with parentheses when there are arguments.'
|
1449
|
+
StyleGuide: '#method-parens'
|
1118
1450
|
Enabled: true
|
1119
1451
|
|
1120
|
-
|
1452
|
+
Style/Dir:
|
1121
1453
|
Description: >-
|
1122
|
-
|
1123
|
-
the
|
1124
|
-
StyleGuide: '#same-line-condition'
|
1454
|
+
Use the `__dir__` method to retrieve the canonicalized
|
1455
|
+
absolute path to the current file.
|
1125
1456
|
Enabled: true
|
1126
1457
|
|
1127
|
-
|
1128
|
-
Description: '
|
1458
|
+
Style/Documentation:
|
1459
|
+
Description: 'Document classes and non-namespace modules.'
|
1129
1460
|
Enabled: true
|
1461
|
+
Exclude:
|
1462
|
+
- 'spec/**/*'
|
1463
|
+
- 'test/**/*'
|
1130
1464
|
|
1131
|
-
|
1132
|
-
Description: '
|
1465
|
+
Style/DoubleNegation:
|
1466
|
+
Description: 'Checks for uses of double negation (!!).'
|
1467
|
+
StyleGuide: '#no-bang-bang'
|
1133
1468
|
Enabled: true
|
1134
1469
|
|
1135
|
-
|
1136
|
-
Description:
|
1470
|
+
Style/EachForSimpleLoop:
|
1471
|
+
Description: >-
|
1472
|
+
Use `Integer#times` for a simple loop which iterates a fixed
|
1473
|
+
number of times.
|
1137
1474
|
Enabled: true
|
1138
1475
|
|
1139
|
-
|
1140
|
-
Description: '
|
1476
|
+
Style/EachWithObject:
|
1477
|
+
Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
|
1141
1478
|
Enabled: true
|
1142
1479
|
|
1143
|
-
|
1144
|
-
Description: '
|
1480
|
+
Style/EmptyBlockParameter:
|
1481
|
+
Description: 'Omit pipes for empty block parameters.'
|
1145
1482
|
Enabled: true
|
1146
1483
|
|
1147
|
-
|
1148
|
-
Description: '
|
1484
|
+
Style/EmptyCaseCondition:
|
1485
|
+
Description: 'Avoid empty condition in case statements.'
|
1149
1486
|
Enabled: true
|
1150
1487
|
|
1151
|
-
|
1152
|
-
Description: '
|
1488
|
+
Style/EmptyElse:
|
1489
|
+
Description: 'Avoid empty else-clauses.'
|
1153
1490
|
Enabled: true
|
1154
1491
|
|
1155
|
-
|
1156
|
-
Description: '
|
1492
|
+
Style/EmptyLambdaParameter:
|
1493
|
+
Description: 'Omit parens for empty lambda parameters.'
|
1157
1494
|
Enabled: true
|
1158
1495
|
|
1159
|
-
|
1160
|
-
Description: '
|
1496
|
+
Style/EmptyLiteral:
|
1497
|
+
Description: 'Prefer literals to Array.new/Hash.new/String.new.'
|
1498
|
+
StyleGuide: '#literal-array-hash'
|
1161
1499
|
Enabled: true
|
1162
|
-
AutoCorrect: false
|
1163
1500
|
|
1164
|
-
|
1165
|
-
Description: 'Checks
|
1501
|
+
Style/EmptyMethod:
|
1502
|
+
Description: 'Checks the formatting of empty method definitions.'
|
1503
|
+
StyleGuide: '#no-single-line-methods'
|
1166
1504
|
Enabled: true
|
1167
1505
|
|
1168
|
-
|
1169
|
-
Description: '
|
1506
|
+
Style/Encoding:
|
1507
|
+
Description: 'Use UTF-8 as the source file encoding.'
|
1508
|
+
StyleGuide: '#utf-8'
|
1170
1509
|
Enabled: true
|
1171
1510
|
|
1172
|
-
|
1173
|
-
Description: '
|
1511
|
+
Style/EndBlock:
|
1512
|
+
Description: 'Avoid the use of END blocks.'
|
1513
|
+
StyleGuide: '#no-END-blocks'
|
1174
1514
|
Enabled: true
|
1175
1515
|
|
1176
|
-
|
1177
|
-
Description: '
|
1516
|
+
Style/EvalWithLocation:
|
1517
|
+
Description: 'Pass `__FILE__` and `__LINE__` to `eval` method, as they are used by backtraces.'
|
1178
1518
|
Enabled: true
|
1179
1519
|
|
1180
|
-
|
1181
|
-
Description: '
|
1520
|
+
Style/EvenOdd:
|
1521
|
+
Description: 'Favor the use of Integer#even? && Integer#odd?'
|
1522
|
+
StyleGuide: '#predicate-methods'
|
1182
1523
|
Enabled: true
|
1183
1524
|
|
1184
|
-
|
1185
|
-
Description:
|
1186
|
-
StyleGuide: '#no-return-ensure'
|
1525
|
+
Style/ExpandPathArguments:
|
1526
|
+
Description: "Use `expand_path(__dir__)` instead of `expand_path('..', __FILE__)`."
|
1187
1527
|
Enabled: true
|
1188
1528
|
|
1189
|
-
|
1190
|
-
Description:
|
1191
|
-
|
1192
|
-
represent.
|
1529
|
+
Style/FlipFlop:
|
1530
|
+
Description: 'Checks for flip flops'
|
1531
|
+
StyleGuide: '#no-flip-flops'
|
1193
1532
|
Enabled: true
|
1194
1533
|
|
1195
|
-
|
1196
|
-
Description: '
|
1534
|
+
Style/For:
|
1535
|
+
Description: 'Checks use of for or each in multiline loops.'
|
1536
|
+
StyleGuide: '#no-for-loops'
|
1197
1537
|
Enabled: true
|
1198
1538
|
|
1199
|
-
|
1200
|
-
Description:
|
1201
|
-
StyleGuide: '#
|
1539
|
+
Style/FormatString:
|
1540
|
+
Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
|
1541
|
+
StyleGuide: '#sprintf'
|
1202
1542
|
Enabled: true
|
1203
1543
|
|
1204
|
-
|
1205
|
-
Description:
|
1206
|
-
Checks for adjacent string literals on the same line, which
|
1207
|
-
could better be represented as a single string literal.
|
1544
|
+
Style/FormatStringToken:
|
1545
|
+
Description: 'Use a consistent style for format string tokens.'
|
1208
1546
|
Enabled: true
|
1209
1547
|
|
1210
|
-
|
1548
|
+
Style/FrozenStringLiteralComment:
|
1211
1549
|
Description: >-
|
1212
|
-
|
1213
|
-
|
1214
|
-
Enabled: true
|
1215
|
-
|
1216
|
-
Lint/InheritException:
|
1217
|
-
Description: 'Avoid inheriting from the `Exception` class.'
|
1550
|
+
Add the frozen_string_literal comment to the top of files
|
1551
|
+
to help transition from Ruby 2.3.0 to Ruby 3.0.
|
1218
1552
|
Enabled: true
|
1219
1553
|
|
1220
|
-
|
1221
|
-
Description:
|
1222
|
-
|
1223
|
-
|
1554
|
+
Style/GlobalVars:
|
1555
|
+
Description: 'Do not introduce global variables.'
|
1556
|
+
StyleGuide: '#instance-vars'
|
1557
|
+
Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
|
1224
1558
|
Enabled: true
|
1225
1559
|
|
1226
|
-
|
1227
|
-
Description: '
|
1560
|
+
Style/GuardClause:
|
1561
|
+
Description: 'Check for conditionals that can be replaced with guard clauses'
|
1562
|
+
StyleGuide: '#no-nested-conditionals'
|
1228
1563
|
Enabled: true
|
1229
1564
|
|
1230
|
-
|
1231
|
-
Description:
|
1565
|
+
Style/HashSyntax:
|
1566
|
+
Description: >-
|
1567
|
+
Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
|
1568
|
+
{ :a => 1, :b => 2 }.
|
1569
|
+
StyleGuide: '#hash-literals'
|
1232
1570
|
Enabled: true
|
1233
1571
|
|
1234
|
-
|
1572
|
+
Style/IdenticalConditionalBranches:
|
1235
1573
|
Description: >-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1574
|
+
Checks that conditional statements do not have an identical
|
1575
|
+
line at the end of each branch, which can validly be moved
|
1576
|
+
out of the conditional.
|
1239
1577
|
Enabled: true
|
1240
1578
|
|
1241
|
-
|
1242
|
-
Description:
|
1579
|
+
Style/IfInsideElse:
|
1580
|
+
Description: 'Finds if nodes inside else, which can be converted to elsif.'
|
1243
1581
|
Enabled: true
|
1244
1582
|
|
1245
|
-
|
1246
|
-
Description:
|
1247
|
-
|
1583
|
+
Style/IfUnlessModifier:
|
1584
|
+
Description: >-
|
1585
|
+
Favor modifier if/unless usage when you have a
|
1586
|
+
single-line body.
|
1587
|
+
StyleGuide: '#if-as-a-modifier'
|
1248
1588
|
Enabled: true
|
1249
1589
|
|
1250
|
-
|
1251
|
-
Description:
|
1252
|
-
|
1253
|
-
in a `reduce`/`inject` block.
|
1590
|
+
Style/IfUnlessModifierOfIfUnless:
|
1591
|
+
Description: >-
|
1592
|
+
Avoid modifier if/unless usage on conditionals.
|
1254
1593
|
Enabled: true
|
1255
1594
|
|
1256
|
-
|
1257
|
-
Description: 'Do not use
|
1595
|
+
Style/IfWithSemicolon:
|
1596
|
+
Description: 'Do not use if x; .... Use the ternary operator instead.'
|
1597
|
+
StyleGuide: '#no-semicolon-ifs'
|
1258
1598
|
Enabled: true
|
1259
1599
|
|
1260
|
-
|
1261
|
-
Description:
|
1262
|
-
|
1263
|
-
parenthesis.
|
1264
|
-
StyleGuide: '#parens-no-spaces'
|
1600
|
+
Style/InfiniteLoop:
|
1601
|
+
Description: 'Use Kernel#loop for infinite loops.'
|
1602
|
+
StyleGuide: '#infinite-loop'
|
1265
1603
|
Enabled: true
|
1266
1604
|
|
1267
|
-
|
1605
|
+
Style/InverseMethods:
|
1268
1606
|
Description: >-
|
1269
|
-
|
1607
|
+
Use the inverse method instead of `!.method`
|
1608
|
+
if an inverse method is defined.
|
1270
1609
|
Enabled: true
|
1271
1610
|
|
1272
|
-
|
1273
|
-
Description:
|
1274
|
-
|
1611
|
+
Style/Lambda:
|
1612
|
+
Description: 'Use the new lambda literal syntax for single-line blocks.'
|
1613
|
+
StyleGuide: '#lambda-multi-line'
|
1275
1614
|
Enabled: true
|
1276
1615
|
|
1277
|
-
|
1278
|
-
Description:
|
1279
|
-
|
1280
|
-
and most likely a mistake.
|
1616
|
+
Style/LambdaCall:
|
1617
|
+
Description: 'Use lambda.call(...) instead of lambda.(...).'
|
1618
|
+
StyleGuide: '#proc-call'
|
1281
1619
|
Enabled: true
|
1282
1620
|
|
1283
|
-
|
1621
|
+
Style/LineEndConcatenation:
|
1284
1622
|
Description: >-
|
1285
|
-
Use
|
1286
|
-
|
1287
|
-
Enabled: true
|
1288
|
-
|
1289
|
-
Lint/RescueException:
|
1290
|
-
Description: 'Avoid rescuing the Exception class.'
|
1291
|
-
StyleGuide: '#no-blind-rescues'
|
1623
|
+
Use \ instead of + or << to concatenate two string literals at
|
1624
|
+
line end.
|
1292
1625
|
Enabled: true
|
1293
1626
|
|
1294
|
-
|
1295
|
-
Description: '
|
1627
|
+
Style/MethodCallWithoutArgsParentheses:
|
1628
|
+
Description: 'Do not use parentheses for method calls with no arguments.'
|
1629
|
+
StyleGuide: '#method-invocation-parens'
|
1296
1630
|
Enabled: true
|
1297
1631
|
|
1298
|
-
|
1299
|
-
Description:
|
1632
|
+
Style/MethodDefParentheses:
|
1633
|
+
Description: >-
|
1634
|
+
Checks if the method definitions have or don't have
|
1635
|
+
parentheses.
|
1636
|
+
StyleGuide: '#method-parens'
|
1300
1637
|
Enabled: true
|
1301
1638
|
|
1302
|
-
|
1303
|
-
Description: '
|
1639
|
+
Style/MethodMissing:
|
1640
|
+
Description: 'Avoid using `method_missing`.'
|
1641
|
+
StyleGuide: '#no-method-missing'
|
1304
1642
|
Enabled: true
|
1305
1643
|
|
1306
|
-
|
1644
|
+
Style/MinMax:
|
1307
1645
|
Description: >-
|
1308
|
-
|
1309
|
-
|
1646
|
+
Use `Enumerable#minmax` instead of `Enumerable#min`
|
1647
|
+
and `Enumerable#max` in conjunction.'
|
1310
1648
|
Enabled: true
|
1311
1649
|
|
1312
|
-
|
1313
|
-
Description:
|
1314
|
-
|
1315
|
-
for block arguments or block local variables.
|
1650
|
+
Style/MixinGrouping:
|
1651
|
+
Description: 'Checks for grouping of mixins in `class` and `module` bodies.'
|
1652
|
+
StyleGuide: '#mixin-grouping'
|
1316
1653
|
Enabled: true
|
1317
1654
|
|
1318
|
-
|
1319
|
-
Description: 'Checks
|
1320
|
-
StyleGuide: '#no-to-s'
|
1655
|
+
Style/MixinUsage:
|
1656
|
+
Description: 'Checks that `include`, `extend` and `prepend` exists at the top level.'
|
1321
1657
|
Enabled: true
|
1322
1658
|
|
1323
|
-
|
1324
|
-
Description: '
|
1659
|
+
Style/ModuleFunction:
|
1660
|
+
Description: 'Checks for usage of `extend self` in modules.'
|
1661
|
+
StyleGuide: '#module-function'
|
1325
1662
|
Enabled: true
|
1326
1663
|
|
1327
|
-
|
1328
|
-
Description: '
|
1664
|
+
Style/MultilineBlockChain:
|
1665
|
+
Description: 'Avoid multi-line chains of blocks.'
|
1666
|
+
StyleGuide: '#single-line-blocks'
|
1329
1667
|
Enabled: true
|
1330
1668
|
|
1331
|
-
|
1332
|
-
Description:
|
1333
|
-
|
1334
|
-
Note: this cop is not disabled when disabling all cops.
|
1335
|
-
It must be explicitly disabled.
|
1669
|
+
Style/MultilineIfModifier:
|
1670
|
+
Description: 'Only use if/unless modifiers on single line statements.'
|
1671
|
+
StyleGuide: '#no-multiline-if-modifiers'
|
1336
1672
|
Enabled: true
|
1337
1673
|
|
1338
|
-
|
1339
|
-
Description: '
|
1674
|
+
Style/MultilineIfThen:
|
1675
|
+
Description: 'Do not use then for multi-line if/unless.'
|
1676
|
+
StyleGuide: '#no-then'
|
1340
1677
|
Enabled: true
|
1341
1678
|
|
1342
|
-
|
1343
|
-
Description: '
|
1344
|
-
StyleGuide: '#underscore-unused-vars'
|
1679
|
+
Style/MultilineMemoization:
|
1680
|
+
Description: 'Wrap multiline memoizations in a `begin` and `end` block.'
|
1345
1681
|
Enabled: true
|
1346
1682
|
|
1347
|
-
|
1348
|
-
Description:
|
1349
|
-
|
1683
|
+
Style/MultilineTernaryOperator:
|
1684
|
+
Description: >-
|
1685
|
+
Avoid multi-line ?: (the ternary operator);
|
1686
|
+
use if/unless instead.
|
1687
|
+
StyleGuide: '#no-multiline-ternary'
|
1350
1688
|
Enabled: true
|
1351
1689
|
|
1352
|
-
|
1353
|
-
Description:
|
1690
|
+
Style/MultipleComparison:
|
1691
|
+
Description: >-
|
1692
|
+
Avoid comparing a variable with multiple items in a conditional,
|
1693
|
+
use Array#include? instead.
|
1354
1694
|
Enabled: true
|
1355
1695
|
|
1356
|
-
|
1357
|
-
Description: '
|
1696
|
+
Style/MutableConstant:
|
1697
|
+
Description: 'Do not assign mutable objects to constants.'
|
1358
1698
|
Enabled: true
|
1359
|
-
ContextCreatingMethods: []
|
1360
|
-
MethodCreatingMethods: []
|
1361
1699
|
|
1362
|
-
|
1363
|
-
Description:
|
1364
|
-
|
1700
|
+
Style/NegatedIf:
|
1701
|
+
Description: >-
|
1702
|
+
Favor unless over if for negative conditions
|
1703
|
+
(or control flow or).
|
1704
|
+
StyleGuide: '#unless-for-negatives'
|
1365
1705
|
Enabled: true
|
1366
1706
|
|
1367
|
-
|
1368
|
-
Description: '
|
1707
|
+
Style/NegatedWhile:
|
1708
|
+
Description: 'Favor until over while for negative conditions.'
|
1709
|
+
StyleGuide: '#until-for-negatives'
|
1369
1710
|
Enabled: true
|
1370
1711
|
|
1371
|
-
|
1372
|
-
Description: '
|
1712
|
+
Style/NestedModifier:
|
1713
|
+
Description: 'Avoid using nested modifiers.'
|
1714
|
+
StyleGuide: '#no-nested-modifiers'
|
1373
1715
|
Enabled: true
|
1374
1716
|
|
1375
|
-
|
1376
|
-
Description:
|
1717
|
+
Style/NestedParenthesizedCalls:
|
1718
|
+
Description: >-
|
1719
|
+
Parenthesize method calls which are nested inside the
|
1720
|
+
argument list of another parenthesized method call.
|
1377
1721
|
Enabled: true
|
1378
1722
|
|
1379
|
-
|
1380
|
-
Description: '
|
1723
|
+
Style/NestedTernaryOperator:
|
1724
|
+
Description: 'Use one expression per branch in a ternary operator.'
|
1725
|
+
StyleGuide: '#no-nested-ternary'
|
1381
1726
|
Enabled: true
|
1382
1727
|
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
Description: >-
|
1387
|
-
Use `caller(n..n)` instead of `caller`.
|
1728
|
+
Style/Next:
|
1729
|
+
Description: 'Use `next` to skip iteration instead of a condition at the end.'
|
1730
|
+
StyleGuide: '#no-nested-conditionals'
|
1388
1731
|
Enabled: true
|
1389
1732
|
|
1390
|
-
|
1391
|
-
Description:
|
1392
|
-
|
1393
|
-
Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringcasecmp-vs-stringdowncase---code'
|
1733
|
+
Style/NilComparison:
|
1734
|
+
Description: 'Prefer x.nil? to x == nil.'
|
1735
|
+
StyleGuide: '#predicate-methods'
|
1394
1736
|
Enabled: true
|
1395
1737
|
|
1396
|
-
|
1397
|
-
Description:
|
1398
|
-
|
1399
|
-
of the list of `when` branches.
|
1738
|
+
Style/NonNilCheck:
|
1739
|
+
Description: 'Checks for redundant nil checks.'
|
1740
|
+
StyleGuide: '#no-non-nil-checks'
|
1400
1741
|
Enabled: true
|
1401
1742
|
|
1402
|
-
|
1403
|
-
Description:
|
1404
|
-
|
1405
|
-
`select...count`, `reject...count`, `select...length`,
|
1406
|
-
and `reject...length`.
|
1407
|
-
# This cop has known compatibility issues with `ActiveRecord` and other
|
1408
|
-
# frameworks. ActiveRecord's `count` ignores the block that is passed to it.
|
1409
|
-
# For more information, see the documentation in the cop itself.
|
1410
|
-
# If you understand the known risk, you can disable `SafeMode`.
|
1411
|
-
SafeMode: true
|
1743
|
+
Style/Not:
|
1744
|
+
Description: 'Use ! instead of not.'
|
1745
|
+
StyleGuide: '#bang-not-not'
|
1412
1746
|
Enabled: true
|
1413
1747
|
|
1414
|
-
|
1415
|
-
Description:
|
1416
|
-
|
1417
|
-
`select.last`, and `find_all.last`.
|
1418
|
-
Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
|
1419
|
-
# This cop has known compatibility issues with `ActiveRecord` and other
|
1420
|
-
# frameworks. `ActiveRecord` does not implement a `detect` method and `find`
|
1421
|
-
# has its own meaning. Correcting `ActiveRecord` methods with this cop
|
1422
|
-
# should be considered unsafe.
|
1423
|
-
SafeMode: true
|
1748
|
+
Style/NumericLiteralPrefix:
|
1749
|
+
Description: 'Use smallcase prefixes for numeric literals.'
|
1750
|
+
StyleGuide: '#numeric-literal-prefixes'
|
1424
1751
|
Enabled: true
|
1425
1752
|
|
1426
|
-
|
1753
|
+
Style/NumericLiterals:
|
1427
1754
|
Description: >-
|
1428
|
-
|
1429
|
-
|
1755
|
+
Add underscores to large numeric literals to improve their
|
1756
|
+
readability.
|
1757
|
+
StyleGuide: '#underscores-in-numerics'
|
1430
1758
|
Enabled: true
|
1431
1759
|
|
1432
|
-
|
1433
|
-
Description:
|
1434
|
-
|
1760
|
+
Style/NumericPredicate:
|
1761
|
+
Description: >-
|
1762
|
+
Checks for the use of predicate- or comparison methods for
|
1763
|
+
numeric comparisons.
|
1764
|
+
StyleGuide: '#predicate-methods'
|
1435
1765
|
# This will change to a new method call which isn't guaranteed to be on the
|
1436
1766
|
# object. Switching these methods has to be done with knowledge of the types
|
1437
1767
|
# of the variables which rubocop doesn't have.
|
1438
1768
|
AutoCorrect: false
|
1439
1769
|
Enabled: true
|
1440
1770
|
|
1441
|
-
|
1442
|
-
Description: 'Do not compute the size of statically sized objects except in constants'
|
1443
|
-
Enabled: true
|
1444
|
-
|
1445
|
-
Performance/FlatMap:
|
1771
|
+
Style/OneLineConditional:
|
1446
1772
|
Description: >-
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1450
|
-
Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
|
1773
|
+
Favor the ternary operator(?:) over
|
1774
|
+
if/then/else/end constructs.
|
1775
|
+
StyleGuide: '#ternary-operator'
|
1451
1776
|
Enabled: true
|
1452
|
-
EnabledForFlattenWithoutParams: false
|
1453
|
-
# If enabled, this cop will warn about usages of
|
1454
|
-
# `flatten` being called without any parameters.
|
1455
|
-
# This can be dangerous since `flat_map` will only flatten 1 level, and
|
1456
|
-
# `flatten` without any parameters can flatten multiple levels.
|
1457
1777
|
|
1458
|
-
|
1778
|
+
Style/OptionalArguments:
|
1459
1779
|
Description: >-
|
1460
|
-
|
1461
|
-
|
1462
|
-
StyleGuide: '#
|
1780
|
+
Checks for optional arguments that do not appear at the end
|
1781
|
+
of the argument list
|
1782
|
+
StyleGuide: '#optional-arguments'
|
1463
1783
|
Enabled: true
|
1464
|
-
AutoCorrect: false
|
1465
1784
|
|
1466
|
-
|
1467
|
-
Description: '
|
1785
|
+
Style/OrAssignment:
|
1786
|
+
Description: 'Recommend usage of double pipe equals (||=) where applicable.'
|
1787
|
+
StyleGuide: '#double-pipe-for-uninit'
|
1468
1788
|
Enabled: true
|
1469
1789
|
|
1470
|
-
|
1471
|
-
Description:
|
1472
|
-
|
1790
|
+
Style/ParallelAssignment:
|
1791
|
+
Description: >-
|
1792
|
+
Check for simple usages of parallel assignment.
|
1793
|
+
It will only warn when the number of variables
|
1794
|
+
matches on both sides of the assignment.
|
1795
|
+
StyleGuide: '#parallel-assignment'
|
1473
1796
|
Enabled: true
|
1474
1797
|
|
1475
|
-
|
1476
|
-
Description:
|
1477
|
-
|
1798
|
+
Style/ParenthesesAroundCondition:
|
1799
|
+
Description: >-
|
1800
|
+
Don't use parentheses around the condition of an
|
1801
|
+
if/unless/while.
|
1802
|
+
StyleGuide: '#no-parens-around-condition'
|
1478
1803
|
Enabled: true
|
1479
1804
|
|
1480
|
-
|
1481
|
-
Description:
|
1482
|
-
|
1483
|
-
returned `MatchData` is not needed.
|
1805
|
+
Style/PercentLiteralDelimiters:
|
1806
|
+
Description: 'Use `%`-literal delimiters consistently'
|
1807
|
+
StyleGuide: '#percent-literal-braces'
|
1484
1808
|
Enabled: true
|
1485
1809
|
|
1486
|
-
|
1487
|
-
Description: '
|
1488
|
-
Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashmerge-vs-hash-code'
|
1810
|
+
Style/PercentQLiterals:
|
1811
|
+
Description: 'Checks if uses of %Q/%q match the configured preference.'
|
1489
1812
|
Enabled: true
|
1490
1813
|
|
1491
|
-
|
1492
|
-
Description: '
|
1814
|
+
Style/PerlBackrefs:
|
1815
|
+
Description: 'Avoid Perl-style regex back references.'
|
1816
|
+
StyleGuide: '#no-perl-regexp-last-matchers'
|
1493
1817
|
Enabled: true
|
1494
1818
|
|
1495
|
-
|
1496
|
-
Description:
|
1497
|
-
|
1498
|
-
`Regexp#===`, or `=~` when `MatchData` is not used.
|
1819
|
+
Style/PreferredHashMethods:
|
1820
|
+
Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
|
1821
|
+
StyleGuide: '#hash-key'
|
1499
1822
|
Enabled: true
|
1500
1823
|
|
1501
|
-
|
1502
|
-
Description: 'Use
|
1503
|
-
|
1824
|
+
Style/Proc:
|
1825
|
+
Description: 'Use proc instead of Proc.new.'
|
1826
|
+
StyleGuide: '#proc'
|
1504
1827
|
Enabled: true
|
1505
1828
|
|
1506
|
-
|
1507
|
-
Description:
|
1508
|
-
|
1509
|
-
`shuffle.last`, and `shuffle[Integer]`.
|
1510
|
-
Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
|
1829
|
+
Style/RaiseArgs:
|
1830
|
+
Description: 'Checks the arguments passed to raise/fail.'
|
1831
|
+
StyleGuide: '#exception-class-messages'
|
1511
1832
|
Enabled: true
|
1512
1833
|
|
1513
|
-
|
1834
|
+
Style/RandomWithOffset:
|
1514
1835
|
Description: >-
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1836
|
+
Prefer to use ranges when generating random numbers instead of
|
1837
|
+
integers with offsets.
|
1838
|
+
StyleGuide: '#random-numbers'
|
1518
1839
|
Enabled: true
|
1519
1840
|
|
1520
|
-
|
1521
|
-
Description: '
|
1841
|
+
Style/RedundantBegin:
|
1842
|
+
Description: "Don't use begin blocks when they are not needed."
|
1843
|
+
StyleGuide: '#begin-implicit'
|
1522
1844
|
Enabled: true
|
1523
1845
|
|
1524
|
-
|
1525
|
-
Description: '
|
1526
|
-
Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end'
|
1527
|
-
# This will change to a new method call which isn't guaranteed to be on the
|
1528
|
-
# object. Switching these methods has to be done with knowledge of the types
|
1529
|
-
# of the variables which rubocop doesn't have.
|
1530
|
-
AutoCorrect: false
|
1846
|
+
Style/RedundantConditional:
|
1847
|
+
Description: "Don't return true/false from a conditional."
|
1531
1848
|
Enabled: true
|
1532
1849
|
|
1533
|
-
|
1534
|
-
Description:
|
1535
|
-
|
1536
|
-
number of characters. Use `delete` instead of `gsub` when
|
1537
|
-
you are deleting characters.
|
1538
|
-
Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
|
1850
|
+
Style/RedundantException:
|
1851
|
+
Description: "Checks for an obsolete RuntimeException argument in raise/fail."
|
1852
|
+
StyleGuide: '#no-explicit-runtimeerror'
|
1539
1853
|
Enabled: true
|
1540
1854
|
|
1541
|
-
|
1542
|
-
Description:
|
1855
|
+
Style/RedundantFreeze:
|
1856
|
+
Description: "Checks usages of Object#freeze on immutable objects."
|
1543
1857
|
Enabled: true
|
1544
1858
|
|
1545
|
-
|
1859
|
+
Style/RedundantParentheses:
|
1860
|
+
Description: "Checks for parentheses that seem not to serve any purpose."
|
1861
|
+
Enabled: true
|
1546
1862
|
|
1547
|
-
|
1548
|
-
Description: '
|
1863
|
+
Style/RedundantReturn:
|
1864
|
+
Description: "Don't use return where it's not required."
|
1865
|
+
StyleGuide: '#no-explicit-return'
|
1549
1866
|
Enabled: true
|
1550
1867
|
|
1551
|
-
|
1552
|
-
Description: '
|
1868
|
+
Style/RedundantSelf:
|
1869
|
+
Description: "Don't use self where it's not needed."
|
1870
|
+
StyleGuide: '#no-self-unless-required'
|
1553
1871
|
Enabled: true
|
1554
1872
|
|
1555
|
-
|
1556
|
-
Description: '
|
1873
|
+
Style/RegexpLiteral:
|
1874
|
+
Description: 'Use / or %r around regular expressions.'
|
1875
|
+
StyleGuide: '#percent-r'
|
1557
1876
|
Enabled: true
|
1558
1877
|
|
1559
|
-
|
1560
|
-
Description:
|
1561
|
-
|
1562
|
-
`String#starts_with?`, `String#ends_with?`,
|
1563
|
-
`Array#append`, `Array#prepend`.
|
1878
|
+
Style/RescueModifier:
|
1879
|
+
Description: 'Avoid using rescue in its modifier form.'
|
1880
|
+
StyleGuide: '#no-rescue-modifiers'
|
1564
1881
|
Enabled: true
|
1565
1882
|
|
1566
|
-
|
1567
|
-
Description: '
|
1883
|
+
Style/RescueStandardError:
|
1884
|
+
Description: 'Avoid rescuing without specifying an error class.'
|
1568
1885
|
Enabled: true
|
1569
|
-
# Convert checks for `nil` or `empty?` to `blank?`
|
1570
|
-
NilOrEmpty: true
|
1571
|
-
# Convert usages of not `present?` to `blank?`
|
1572
|
-
NotPresent: true
|
1573
|
-
# Convert usages of `unless` `present?` to `if` `blank?`
|
1574
|
-
UnlessPresent: true
|
1575
1886
|
|
1576
|
-
|
1887
|
+
Style/SafeNavigation:
|
1577
1888
|
Description: >-
|
1578
|
-
|
1579
|
-
|
1889
|
+
This cop transforms usages of a method call safeguarded by
|
1890
|
+
a check for the existence of the object to
|
1891
|
+
safe navigation (`&.`).
|
1580
1892
|
Enabled: true
|
1581
1893
|
|
1582
|
-
|
1583
|
-
Description:
|
1894
|
+
Style/SelfAssignment:
|
1895
|
+
Description: >-
|
1896
|
+
Checks for places where self-assignment shorthand should have
|
1897
|
+
been used.
|
1898
|
+
StyleGuide: '#self-assignment'
|
1584
1899
|
Enabled: true
|
1585
1900
|
|
1586
|
-
|
1587
|
-
Description: '
|
1901
|
+
Style/Semicolon:
|
1902
|
+
Description: "Don't use semicolons to terminate expressions."
|
1903
|
+
StyleGuide: '#no-semicolon'
|
1588
1904
|
Enabled: true
|
1589
1905
|
|
1590
|
-
|
1591
|
-
Description: '
|
1592
|
-
StyleGuide: '
|
1906
|
+
Style/SignalException:
|
1907
|
+
Description: 'Checks for proper usage of fail and raise.'
|
1908
|
+
StyleGuide: '#prefer-raise-over-fail'
|
1593
1909
|
Enabled: true
|
1594
1910
|
|
1595
|
-
|
1596
|
-
Description: 'Avoid
|
1911
|
+
Style/SingleLineMethods:
|
1912
|
+
Description: 'Avoid single-line methods.'
|
1913
|
+
StyleGuide: '#no-single-line-methods'
|
1597
1914
|
Enabled: true
|
1598
1915
|
|
1599
|
-
|
1600
|
-
Description:
|
1601
|
-
|
1602
|
-
application or library code outside of Rake files to avoid
|
1603
|
-
exits during unit testing or running in production.
|
1916
|
+
Style/SpecialGlobalVars:
|
1917
|
+
Description: 'Avoid Perl-style global variables.'
|
1918
|
+
StyleGuide: '#no-cryptic-perlisms'
|
1604
1919
|
Enabled: true
|
1605
1920
|
|
1606
|
-
|
1607
|
-
Description: '
|
1921
|
+
Style/StabbyLambdaParentheses:
|
1922
|
+
Description: 'Check for the usage of parentheses around stabby lambda arguments.'
|
1923
|
+
StyleGuide: '#stabby-lambda-with-args'
|
1608
1924
|
Enabled: true
|
1609
1925
|
|
1610
|
-
|
1611
|
-
Description: '
|
1612
|
-
StyleGuide: '
|
1926
|
+
Style/StderrPuts:
|
1927
|
+
Description: 'Use `warn` instead of `$stderr.puts`.'
|
1928
|
+
StyleGuide: '#warn'
|
1613
1929
|
Enabled: true
|
1614
1930
|
|
1615
|
-
|
1616
|
-
Description: '
|
1617
|
-
StyleGuide: '
|
1931
|
+
Style/StringLiterals:
|
1932
|
+
Description: 'Checks if uses of quotes match the configured preference.'
|
1933
|
+
StyleGuide: '#consistent-string-literals'
|
1618
1934
|
Enabled: true
|
1619
1935
|
|
1620
|
-
|
1621
|
-
Description:
|
1622
|
-
|
1936
|
+
Style/StringLiteralsInInterpolation:
|
1937
|
+
Description: >-
|
1938
|
+
Checks if uses of quotes inside expressions in interpolated
|
1939
|
+
strings match the configured preference.
|
1623
1940
|
Enabled: true
|
1624
1941
|
|
1625
|
-
|
1626
|
-
Description: '
|
1942
|
+
Style/StructInheritance:
|
1943
|
+
Description: 'Checks for inheritance from Struct.new.'
|
1944
|
+
StyleGuide: '#no-extend-struct-new'
|
1627
1945
|
Enabled: true
|
1628
|
-
Include:
|
1629
|
-
- 'spec/**/*'
|
1630
|
-
- 'test/**/*'
|
1631
1946
|
|
1632
|
-
|
1633
|
-
Description: '
|
1947
|
+
Style/SymbolArray:
|
1948
|
+
Description: 'Use %i or %I for arrays of symbols.'
|
1949
|
+
StyleGuide: '#percent-i'
|
1634
1950
|
Enabled: true
|
1635
1951
|
|
1636
|
-
|
1637
|
-
Description: '
|
1952
|
+
Style/SymbolLiteral:
|
1953
|
+
Description: 'Use plain symbols instead of string symbols when possible.'
|
1638
1954
|
Enabled: true
|
1639
1955
|
|
1640
|
-
|
1641
|
-
Description: '
|
1956
|
+
Style/SymbolProc:
|
1957
|
+
Description: 'Use symbols as procs instead of blocks when possible.'
|
1642
1958
|
Enabled: true
|
1643
1959
|
|
1644
|
-
|
1645
|
-
Description: 'Checks for
|
1960
|
+
Style/TernaryParentheses:
|
1961
|
+
Description: 'Checks for use of parentheses around ternary conditions.'
|
1646
1962
|
Enabled: true
|
1647
1963
|
|
1648
|
-
|
1649
|
-
Description: '
|
1964
|
+
Style/TrailingBodyOnClass:
|
1965
|
+
Description: 'Class body goes below class statement.'
|
1650
1966
|
Enabled: true
|
1651
|
-
NotNilAndNotEmpty: true
|
1652
|
-
# Convert checks for not `nil` and not `empty?` to `present?`
|
1653
|
-
NotBlank: true
|
1654
|
-
# Convert usages of not `blank?` to `present?`
|
1655
|
-
UnlessBlank: true
|
1656
|
-
# Convert usages of `unless` `blank?` to `if` `present?`
|
1657
1967
|
|
1658
|
-
|
1659
|
-
Description:
|
1660
|
-
Checks for read_attribute(:attr) and
|
1661
|
-
write_attribute(:attr, val).
|
1662
|
-
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#read-attribute'
|
1968
|
+
Style/TrailingBodyOnMethodDefinition:
|
1969
|
+
Description: 'Method body goes below definition.'
|
1663
1970
|
Enabled: true
|
1664
1971
|
|
1665
|
-
|
1666
|
-
Description: '
|
1972
|
+
Style/TrailingBodyOnModule:
|
1973
|
+
Description: 'Module body goes below module statement.'
|
1667
1974
|
Enabled: true
|
1668
1975
|
|
1669
|
-
|
1670
|
-
Description: '
|
1976
|
+
Style/TrailingCommaInArguments:
|
1977
|
+
Description: 'Checks for trailing comma in argument lists.'
|
1978
|
+
StyleGuide: '#no-trailing-params-comma'
|
1671
1979
|
Enabled: true
|
1672
1980
|
|
1673
|
-
|
1674
|
-
Description: 'Checks
|
1675
|
-
StyleGuide: '
|
1676
|
-
Reference: 'http://api.rubyonrails.org/classes/ActiveRecord/Migration/CommandRecorder.html'
|
1981
|
+
Style/TrailingCommaInArrayLiteral:
|
1982
|
+
Description: 'Checks for trailing comma in array literals.'
|
1983
|
+
StyleGuide: '#no-trailing-array-commas'
|
1677
1984
|
Enabled: true
|
1678
1985
|
|
1679
|
-
|
1680
|
-
Description:
|
1986
|
+
Style/TrailingCommaInHashLiteral:
|
1987
|
+
Description: 'Checks for trailing comma in hash literals.'
|
1681
1988
|
Enabled: true
|
1682
1989
|
|
1683
|
-
|
1684
|
-
Description: 'Checks
|
1990
|
+
Style/TrailingMethodEndStatement:
|
1991
|
+
Description: 'Checks for trailing end statement on line of method body.'
|
1685
1992
|
Enabled: true
|
1686
1993
|
|
1687
|
-
|
1688
|
-
Description:
|
1689
|
-
|
1690
|
-
|
1994
|
+
Style/TrailingUnderscoreVariable:
|
1995
|
+
Description: >-
|
1996
|
+
Checks for the usage of unneeded trailing underscores at the
|
1997
|
+
end of parallel variable assignment.
|
1998
|
+
AllowNamedUnderscoreVariables: true
|
1691
1999
|
Enabled: true
|
1692
2000
|
|
1693
|
-
|
1694
|
-
Description: 'Prefer
|
2001
|
+
Style/TrivialAccessors:
|
2002
|
+
Description: 'Prefer attr_* methods to trivial readers/writers.'
|
2003
|
+
StyleGuide: '#attr_family'
|
1695
2004
|
Enabled: true
|
1696
2005
|
|
1697
|
-
|
2006
|
+
Style/UnlessElse:
|
1698
2007
|
Description: >-
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
2008
|
+
Do not use unless with else. Rewrite these with the positive
|
2009
|
+
case first.
|
2010
|
+
StyleGuide: '#no-else-with-unless'
|
1702
2011
|
Enabled: true
|
1703
2012
|
|
1704
|
-
|
1705
|
-
Description: '
|
2013
|
+
Style/UnneededCapitalW:
|
2014
|
+
Description: 'Checks for %W when interpolation is not needed.'
|
1706
2015
|
Enabled: true
|
1707
2016
|
|
1708
|
-
|
2017
|
+
Style/UnneededInterpolation:
|
2018
|
+
Description: 'Checks for strings that are just an interpolated expression.'
|
2019
|
+
Enabled: true
|
1709
2020
|
|
1710
|
-
|
1711
|
-
Description: '
|
2021
|
+
Style/UnneededPercentQ:
|
2022
|
+
Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
|
2023
|
+
StyleGuide: '#percent-q'
|
1712
2024
|
Enabled: true
|
1713
2025
|
|
1714
|
-
|
2026
|
+
Style/UnpackFirst:
|
1715
2027
|
Description: >-
|
1716
|
-
|
1717
|
-
|
1718
|
-
Reference: 'http://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load'
|
2028
|
+
Checks for accessing the first element of `String#unpack`
|
2029
|
+
instead of using `unpack1`
|
1719
2030
|
Enabled: true
|
1720
|
-
# Autocorrect here will change to a method that may cause crashes depending
|
1721
|
-
# on the value of the argument.
|
1722
|
-
AutoCorrect: false
|
1723
2031
|
|
1724
|
-
|
2032
|
+
Style/VariableInterpolation:
|
1725
2033
|
Description: >-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
2034
|
+
Don't interpolate global, instance and class variables
|
2035
|
+
directly in strings.
|
2036
|
+
StyleGuide: '#curlies-interpolate'
|
1729
2037
|
Enabled: true
|
1730
2038
|
|
1731
|
-
|
2039
|
+
Style/WhenThen:
|
2040
|
+
Description: 'Use when x then ... for one-line cases.'
|
2041
|
+
StyleGuide: '#one-line-cases'
|
2042
|
+
Enabled: true
|
2043
|
+
|
2044
|
+
Style/WhileUntilDo:
|
2045
|
+
Description: 'Checks for redundant do after while or until.'
|
2046
|
+
StyleGuide: '#no-multiline-while-do'
|
2047
|
+
Enabled: true
|
2048
|
+
|
2049
|
+
Style/WhileUntilModifier:
|
1732
2050
|
Description: >-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
2051
|
+
Favor modifier while/until usage when you have a
|
2052
|
+
single-line body.
|
2053
|
+
StyleGuide: '#while-as-a-modifier'
|
1736
2054
|
Enabled: true
|
1737
2055
|
|
1738
|
-
|
2056
|
+
Style/WordArray:
|
2057
|
+
Description: 'Use %w or %W for arrays of words.'
|
2058
|
+
StyleGuide: '#percent-w'
|
2059
|
+
Enabled: true
|
1739
2060
|
|
1740
|
-
|
1741
|
-
Description: '
|
2061
|
+
Style/YodaCondition:
|
2062
|
+
Description: 'Do not use literals as the first operand of a comparison.'
|
2063
|
+
Reference: 'https://en.wikipedia.org/wiki/Yoda_conditions'
|
1742
2064
|
Enabled: true
|
1743
|
-
Include:
|
1744
|
-
- '**/Gemfile'
|
1745
|
-
- '**/gems.rb'
|
1746
2065
|
|
1747
|
-
|
1748
|
-
Description:
|
1749
|
-
Gems within groups in the Gemfile should be alphabetically sorted.
|
2066
|
+
Style/ZeroLengthPredicate:
|
2067
|
+
Description: 'Use #empty? when testing for objects of length 0.'
|
1750
2068
|
Enabled: true
|
1751
|
-
Include:
|
1752
|
-
- '**/Gemfile'
|
1753
|
-
- '**/gems.rb'
|