chefstyle 1.1.2 → 1.4.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 +4 -4
- data/bin/chefstyle +2 -3
- data/chefstyle.gemspec +2 -5
- data/config/chefstyle.yml +63 -7
- data/config/disable_all.yml +74 -4
- data/config/upstream.yml +312 -36
- data/lib/chefstyle.rb +15 -3
- data/lib/chefstyle/version.rb +4 -3
- data/lib/rubocop/chef.rb +11 -0
- data/lib/rubocop/cop/chef/ruby/gemspec_require_rubygems.rb +46 -0
- data/lib/rubocop/cop/chef/ruby/require_net_https.rb +54 -0
- data/lib/rubocop/cop/chef/ruby/ruby_27_keyword_argument_warnings.rb +57 -0
- data/lib/rubocop/cop/chef/ruby/unless_defined_require.rb +122 -0
- data/lib/rubocop/monkey_patches/rescue_ensure_alignment.rb +22 -0
- metadata +10 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 066e8ac793f64512443174f9e09c8919b03bbe9559a16a041e8d986f95de3278
|
4
|
+
data.tar.gz: 72e56fd44dac3fd344959b2920611ead077ff18b2517b6b2fedd545375041190
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef9db45e45112086e38e265ceb5c745010c18265b4b12e0096b38112ad91dca303cf9f469e2f8fdb60d73659ead6eb2a59591a440554a59a6b4f9b4494d1c9f8
|
7
|
+
data.tar.gz: ebd7a40b197ec5f97f19b5ed4f57af9e74254fb05641cda8734719c43e9b89aaf2a3fab937d118be2f1808a43f0c77f2151548808be9d0dba45e94e7bc8cacf9
|
data/bin/chefstyle
CHANGED
data/chefstyle.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
#
|
2
|
-
lib = File.expand_path("
|
1
|
+
# frozen_string_literal: true
|
2
|
+
lib = File.expand_path("lib", __dir__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require "chefstyle/version"
|
5
5
|
|
@@ -18,8 +18,5 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = %w{chefstyle}
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler"
|
22
|
-
spec.add_development_dependency "rake", ">= 12.0"
|
23
|
-
spec.add_development_dependency "rspec"
|
24
21
|
spec.add_dependency("rubocop", Chefstyle::RUBOCOP_VERSION)
|
25
22
|
end
|
data/config/chefstyle.yml
CHANGED
@@ -482,11 +482,15 @@ Style/WhileUntilModifier:
|
|
482
482
|
Style/WordArray:
|
483
483
|
Enabled: true
|
484
484
|
|
485
|
+
# we are ruby > 2.0 only so we can remove encoding comments for utf-8
|
486
|
+
Style/Encoding:
|
487
|
+
Enabled: true
|
488
|
+
|
485
489
|
#
|
486
490
|
# Disabled Style
|
487
491
|
#
|
488
492
|
|
489
|
-
#
|
493
|
+
# reduces memory usage, but isn't a simple autocorrect so we need to do this one project at a time
|
490
494
|
Style/FrozenStringLiteralComment:
|
491
495
|
Enabled: false
|
492
496
|
|
@@ -529,10 +533,6 @@ Style/FormatString:
|
|
529
533
|
Style/IfUnlessModifier:
|
530
534
|
Enabled: false
|
531
535
|
|
532
|
-
# we are ruby > 2.0 only so can disable the Encoding cop
|
533
|
-
Style/Encoding:
|
534
|
-
Enabled: false
|
535
|
-
|
536
536
|
# Dan is -1 on this one: https://github.com/chef/chef/pull/4526#issuecomment-179950045
|
537
537
|
Layout/IndentFirstHashElement:
|
538
538
|
Enabled: false
|
@@ -554,7 +554,7 @@ Style/RescueModifier:
|
|
554
554
|
Style/AsciiComments:
|
555
555
|
Enabled: false
|
556
556
|
|
557
|
-
# Parens around ternaries often make them more readable and reduces cognitive load over operator
|
557
|
+
# Parens around ternaries often make them more readable and reduces cognitive load over operator precedence
|
558
558
|
Style/TernaryParentheses:
|
559
559
|
Enabled: false
|
560
560
|
|
@@ -631,4 +631,60 @@ Style/CommentedKeyword:
|
|
631
631
|
|
632
632
|
# make sure we catch this Ruby 3.0 breaking change now
|
633
633
|
Lint/DeprecatedOpenSSLConstant:
|
634
|
-
Enabled: true
|
634
|
+
Enabled: true
|
635
|
+
|
636
|
+
# alert on invalid ruby synatx
|
637
|
+
Lint/Syntax:
|
638
|
+
Enabled: true
|
639
|
+
|
640
|
+
# remove extra requires like 'thread'
|
641
|
+
Lint/RedundantRequireStatement:
|
642
|
+
Enabled: true
|
643
|
+
|
644
|
+
# simplify stripping strings
|
645
|
+
Style/Strip:
|
646
|
+
Enabled: true
|
647
|
+
|
648
|
+
# simplify getting min/max
|
649
|
+
Style/RedundantSort:
|
650
|
+
Enabled: true
|
651
|
+
|
652
|
+
# no need for .rb in requires
|
653
|
+
Style/RedundantFileExtensionInRequire:
|
654
|
+
Enabled: true
|
655
|
+
|
656
|
+
# more code you don't need
|
657
|
+
Style/RedundantCondition:
|
658
|
+
Enabled: true
|
659
|
+
|
660
|
+
# Use __dir__ to simplify things
|
661
|
+
Style/Dir:
|
662
|
+
Enabled: true
|
663
|
+
|
664
|
+
# Use __FILE__ or __dir__ to simplify expand_paths
|
665
|
+
Style/ExpandPathArguments:
|
666
|
+
Enabled: true
|
667
|
+
|
668
|
+
ChefRuby/Ruby27KeywordArgumentWarnings:
|
669
|
+
Description: Pass options to shell_out helpers without the brackets to avoid Ruby 2.7 deprecation warnings.
|
670
|
+
Enabled: true
|
671
|
+
VersionAdded: '1.3.0'
|
672
|
+
|
673
|
+
ChefRuby/UnlessDefinedRequire:
|
674
|
+
Description: Workaround RubyGems' slow requires by only running require if the constant isn't already defined
|
675
|
+
Enabled: true
|
676
|
+
VersionAdded: '1.3.0'
|
677
|
+
Include:
|
678
|
+
- 'lib/**/*'
|
679
|
+
|
680
|
+
ChefRuby/GemspecRequireRubygems:
|
681
|
+
Description: Rubygems does not need to be required in a Gemspec
|
682
|
+
Enabled: true
|
683
|
+
VersionAdded: '1.3.0'
|
684
|
+
Include:
|
685
|
+
- '**/*.gemspec'
|
686
|
+
|
687
|
+
ChefRuby/RequireNetHttps:
|
688
|
+
Description: net/https is deprecated and just includes net/http and openssl. We should include those directly instead
|
689
|
+
Enabled: true
|
690
|
+
VersionAdded: '1.3.0'
|
data/config/disable_all.yml
CHANGED
@@ -25,6 +25,8 @@ Layout/ArrayAlignment:
|
|
25
25
|
Enabled: false
|
26
26
|
Layout/AssignmentIndentation:
|
27
27
|
Enabled: false
|
28
|
+
Layout/BeginEndAlignment:
|
29
|
+
Enabled: false
|
28
30
|
Layout/BlockAlignment:
|
29
31
|
Enabled: false
|
30
32
|
Layout/BlockEndNewline:
|
@@ -53,6 +55,8 @@ Layout/EmptyLineAfterGuardClause:
|
|
53
55
|
Enabled: false
|
54
56
|
Layout/EmptyLineAfterMagicComment:
|
55
57
|
Enabled: false
|
58
|
+
Layout/EmptyLineAfterMultilineCondition:
|
59
|
+
Enabled: false
|
56
60
|
Layout/EmptyLineBetweenDefs:
|
57
61
|
Enabled: false
|
58
62
|
Layout/EmptyLinesAroundAccessModifier:
|
@@ -207,10 +211,14 @@ Lint/AssignmentInCondition:
|
|
207
211
|
Enabled: false
|
208
212
|
Lint/BigDecimalNew:
|
209
213
|
Enabled: false
|
214
|
+
Lint/BinaryOperatorWithIdenticalOperands:
|
215
|
+
Enabled: false
|
210
216
|
Lint/BooleanSymbol:
|
211
217
|
Enabled: false
|
212
218
|
Lint/CircularArgumentReference:
|
213
219
|
Enabled: false
|
220
|
+
Lint/ConstantDefinitionInBlock:
|
221
|
+
Enabled: false
|
214
222
|
Lint/ConstantResolution:
|
215
223
|
Enabled: false
|
216
224
|
Lint/Debugger:
|
@@ -223,18 +231,28 @@ Lint/DisjunctiveAssignmentInConstructor:
|
|
223
231
|
Enabled: false
|
224
232
|
Lint/DuplicateCaseCondition:
|
225
233
|
Enabled: false
|
234
|
+
Lint/DuplicateElsifCondition:
|
235
|
+
Enabled: false
|
226
236
|
Lint/DuplicateHashKey:
|
227
237
|
Enabled: false
|
228
238
|
Lint/DuplicateMethods:
|
229
239
|
Enabled: false
|
240
|
+
Lint/DuplicateRequire:
|
241
|
+
Enabled: false
|
242
|
+
Lint/DuplicateRescueException:
|
243
|
+
Enabled: false
|
230
244
|
Lint/EachWithObjectArgument:
|
231
245
|
Enabled: false
|
232
246
|
Lint/ElseLayout:
|
233
247
|
Enabled: false
|
248
|
+
Lint/EmptyConditionalBody:
|
249
|
+
Enabled: false
|
234
250
|
Lint/EmptyEnsure:
|
235
251
|
Enabled: false
|
236
252
|
Lint/EmptyExpression:
|
237
253
|
Enabled: false
|
254
|
+
Lint/EmptyFile:
|
255
|
+
Enabled: false
|
238
256
|
Lint/EmptyInterpolation:
|
239
257
|
Enabled: false
|
240
258
|
Lint/EmptyWhen:
|
@@ -245,12 +263,16 @@ Lint/ErbNewArguments:
|
|
245
263
|
Enabled: false
|
246
264
|
Lint/FlipFlop:
|
247
265
|
Enabled: false
|
266
|
+
Lint/FloatComparison:
|
267
|
+
Enabled: false
|
248
268
|
Lint/FloatOutOfRange:
|
249
269
|
Enabled: false
|
250
270
|
Lint/FormatParameterMismatch:
|
251
271
|
Enabled: false
|
252
272
|
Lint/HeredocMethodCallPosition:
|
253
273
|
Enabled: false
|
274
|
+
Lint/IdentityComparison:
|
275
|
+
Enabled: false
|
254
276
|
Lint/ImplicitStringConcatenation:
|
255
277
|
Enabled: false
|
256
278
|
Lint/InheritException:
|
@@ -267,6 +289,8 @@ Lint/Loop:
|
|
267
289
|
Enabled: false
|
268
290
|
Lint/MissingCopEnableDirective:
|
269
291
|
Enabled: false
|
292
|
+
Lint/MissingSuper:
|
293
|
+
Enabled: false
|
270
294
|
Lint/MixedRegexpCaptureTypes:
|
271
295
|
Enabled: false
|
272
296
|
Lint/MultipleComparison:
|
@@ -285,6 +309,8 @@ Lint/NumberConversion:
|
|
285
309
|
Enabled: false
|
286
310
|
Lint/OrderedMagicComments:
|
287
311
|
Enabled: false
|
312
|
+
Lint/OutOfRangeRegexpRef:
|
313
|
+
Enabled: false
|
288
314
|
Lint/ParenthesesAsGroupedExpression:
|
289
315
|
Enabled: false
|
290
316
|
Lint/PercentStringArray:
|
@@ -327,6 +353,8 @@ Lint/SafeNavigationWithEmpty:
|
|
327
353
|
Enabled: false
|
328
354
|
Lint/ScriptPermission:
|
329
355
|
Enabled: false
|
356
|
+
Lint/SelfAssignment:
|
357
|
+
Enabled: false
|
330
358
|
Lint/SendWithMixinArgument:
|
331
359
|
Enabled: false
|
332
360
|
Lint/ShadowedArgument:
|
@@ -343,12 +371,18 @@ Lint/Syntax:
|
|
343
371
|
Enabled: false
|
344
372
|
Lint/ToJSON:
|
345
373
|
Enabled: false
|
374
|
+
Lint/TopLevelReturnWithArgument:
|
375
|
+
Enabled: false
|
376
|
+
Lint/TrailingCommaInAttributeDeclaration:
|
377
|
+
Enabled: false
|
346
378
|
Lint/UnderscorePrefixedVariableName:
|
347
379
|
Enabled: false
|
348
380
|
Lint/UnifiedInteger:
|
349
381
|
Enabled: false
|
350
382
|
Lint/UnreachableCode:
|
351
383
|
Enabled: false
|
384
|
+
Lint/UnreachableLoop:
|
385
|
+
Enabled: false
|
352
386
|
Lint/UnusedBlockArgument:
|
353
387
|
Enabled: false
|
354
388
|
Lint/UnusedMethodArgument:
|
@@ -361,12 +395,14 @@ Lint/UselessAccessModifier:
|
|
361
395
|
Enabled: false
|
362
396
|
Lint/UselessAssignment:
|
363
397
|
Enabled: false
|
364
|
-
Lint/UselessComparison:
|
365
|
-
Enabled: false
|
366
398
|
Lint/UselessElseWithoutRescue:
|
367
399
|
Enabled: false
|
400
|
+
Lint/UselessMethodDefinition:
|
401
|
+
Enabled: false
|
368
402
|
Lint/UselessSetterCall:
|
369
403
|
Enabled: false
|
404
|
+
Lint/UselessTimes:
|
405
|
+
Enabled: false
|
370
406
|
Lint/Void:
|
371
407
|
Enabled: false
|
372
408
|
Metrics/CyclomaticComplexity:
|
@@ -421,10 +457,14 @@ Naming/VariableNumber:
|
|
421
457
|
Enabled: false
|
422
458
|
Style/AccessModifierDeclarations:
|
423
459
|
Enabled: false
|
460
|
+
Style/AccessorGrouping:
|
461
|
+
Enabled: false
|
424
462
|
Style/Alias:
|
425
463
|
Enabled: false
|
426
464
|
Style/AndOr:
|
427
465
|
Enabled: false
|
466
|
+
Style/ArrayCoercion:
|
467
|
+
Enabled: false
|
428
468
|
Style/ArrayJoin:
|
429
469
|
Enabled: false
|
430
470
|
Style/AsciiComments:
|
@@ -437,12 +477,16 @@ Style/BarePercentLiterals:
|
|
437
477
|
Enabled: false
|
438
478
|
Style/BeginBlock:
|
439
479
|
Enabled: false
|
480
|
+
Style/BisectedAttrAccessor:
|
481
|
+
Enabled: false
|
440
482
|
Style/BlockComments:
|
441
483
|
Enabled: false
|
442
484
|
Style/BlockDelimiters:
|
443
485
|
Enabled: false
|
444
486
|
Style/CaseEquality:
|
445
487
|
Enabled: false
|
488
|
+
Style/CaseLikeIf:
|
489
|
+
Enabled: false
|
446
490
|
Style/CharacterLiteral:
|
447
491
|
Enabled: false
|
448
492
|
Style/ClassAndModuleChildren:
|
@@ -451,6 +495,8 @@ Style/ClassCheck:
|
|
451
495
|
Enabled: false
|
452
496
|
Style/ClassMethods:
|
453
497
|
Enabled: false
|
498
|
+
Style/ClassMethodsDefinitions:
|
499
|
+
Enabled: false
|
454
500
|
Style/ClassVars:
|
455
501
|
Enabled: false
|
456
502
|
Style/CollectionMethods:
|
@@ -459,6 +505,8 @@ Style/ColonMethodCall:
|
|
459
505
|
Enabled: false
|
460
506
|
Style/ColonMethodDefinition:
|
461
507
|
Enabled: false
|
508
|
+
Style/CombinableLoops:
|
509
|
+
Enabled: false
|
462
510
|
Style/CommandLiteral:
|
463
511
|
Enabled: false
|
464
512
|
Style/CommentAnnotation:
|
@@ -513,6 +561,8 @@ Style/EvenOdd:
|
|
513
561
|
Enabled: false
|
514
562
|
Style/ExpandPathArguments:
|
515
563
|
Enabled: false
|
564
|
+
Style/ExplicitBlockArgument:
|
565
|
+
Enabled: false
|
516
566
|
Style/ExponentialNotation:
|
517
567
|
Enabled: false
|
518
568
|
Style/FloatDivision:
|
@@ -525,12 +575,18 @@ Style/FormatStringToken:
|
|
525
575
|
Enabled: false
|
526
576
|
Style/FrozenStringLiteralComment:
|
527
577
|
Enabled: false
|
578
|
+
Style/GlobalStdStream:
|
579
|
+
Enabled: false
|
528
580
|
Style/GlobalVars:
|
529
581
|
Enabled: false
|
530
582
|
Style/GuardClause:
|
531
583
|
Enabled: false
|
584
|
+
Style/HashAsLastArrayItem:
|
585
|
+
Enabled: false
|
532
586
|
Style/HashEachMethods:
|
533
587
|
Enabled: false
|
588
|
+
Style/HashLikeCase:
|
589
|
+
Enabled: false
|
534
590
|
Style/HashSyntax:
|
535
591
|
Enabled: false
|
536
592
|
Style/HashTransformKeys:
|
@@ -557,6 +613,8 @@ Style/InlineComment:
|
|
557
613
|
Enabled: false
|
558
614
|
Style/IpAddresses:
|
559
615
|
Enabled: false
|
616
|
+
Style/KeywordParametersOrder:
|
617
|
+
Enabled: false
|
560
618
|
Style/Lambda:
|
561
619
|
Enabled: false
|
562
620
|
Style/LambdaCall:
|
@@ -567,14 +625,20 @@ Style/MethodCallWithoutArgsParentheses:
|
|
567
625
|
Enabled: false
|
568
626
|
Style/MethodCallWithArgsParentheses:
|
569
627
|
Enabled: false
|
628
|
+
Style/RedundantAssignment:
|
629
|
+
Enabled: false
|
570
630
|
Style/RedundantFetchBlock:
|
571
631
|
Enabled: false
|
632
|
+
Style/RedundantFileExtensionInRequire:
|
633
|
+
Enabled: false
|
634
|
+
Style/RedundantSelfAssignment:
|
635
|
+
Enabled: false
|
636
|
+
Style/SoleNestedConditional:
|
637
|
+
Enabled: false
|
572
638
|
Style/MethodCalledOnDoEndBlock:
|
573
639
|
Enabled: false
|
574
640
|
Style/MethodDefParentheses:
|
575
641
|
Enabled: false
|
576
|
-
Style/MethodMissingSuper:
|
577
|
-
Enabled: false
|
578
642
|
Style/MinMax:
|
579
643
|
Enabled: false
|
580
644
|
Style/MissingElse:
|
@@ -639,6 +703,8 @@ Style/OptionHash:
|
|
639
703
|
Enabled: false
|
640
704
|
Style/OptionalArguments:
|
641
705
|
Enabled: false
|
706
|
+
Style/OptionalBooleanParameter:
|
707
|
+
Enabled: false
|
642
708
|
Style/ParallelAssignment:
|
643
709
|
Enabled: false
|
644
710
|
Style/ParenthesesAroundCondition:
|
@@ -707,6 +773,8 @@ Style/Send:
|
|
707
773
|
Enabled: false
|
708
774
|
Style/SignalException:
|
709
775
|
Enabled: false
|
776
|
+
Style/SingleArgumentDig:
|
777
|
+
Enabled: false
|
710
778
|
Style/SingleLineBlockParams:
|
711
779
|
Enabled: false
|
712
780
|
Style/SingleLineMethods:
|
@@ -719,6 +787,8 @@ Style/StabbyLambdaParentheses:
|
|
719
787
|
Enabled: false
|
720
788
|
Style/StderrPuts:
|
721
789
|
Enabled: false
|
790
|
+
Style/StringConcatenation:
|
791
|
+
Enabled: false
|
722
792
|
Style/StringHashKeys:
|
723
793
|
Enabled: false
|
724
794
|
Style/StringLiterals:
|
data/config/upstream.yml
CHANGED
@@ -117,6 +117,8 @@ AllCops:
|
|
117
117
|
# CacheRootDirectory is ~ (nil), which it is by default, the root will be
|
118
118
|
# taken from the environment variable `$XDG_CACHE_HOME` if it is set, or if
|
119
119
|
# `$XDG_CACHE_HOME` is not set, it will be `$HOME/.cache/`.
|
120
|
+
# The CacheRootDirectory can be overwritten by passing the `--cache-root` command
|
121
|
+
# line option or by setting `$RUBOCOP_CACHE_ROOT` environment variable.
|
120
122
|
CacheRootDirectory: ~
|
121
123
|
# It is possible for a malicious user to know the location of RuboCop's cache
|
122
124
|
# directory by looking at CacheRootDirectory, and create a symlink in its
|
@@ -180,6 +182,9 @@ Bundler/OrderedGems:
|
|
180
182
|
VersionAdded: '0.46'
|
181
183
|
VersionChanged: '0.47'
|
182
184
|
TreatCommentsAsGroupSeparators: true
|
185
|
+
# By default, "-" and "_" are ignored for order purposes.
|
186
|
+
# This can be overridden by setting this parameter to true.
|
187
|
+
ConsiderPunctuation: false
|
183
188
|
Include:
|
184
189
|
- '**/*.gemfile'
|
185
190
|
- '**/Gemfile'
|
@@ -200,13 +205,17 @@ Gemspec/OrderedDependencies:
|
|
200
205
|
Enabled: true
|
201
206
|
VersionAdded: '0.51'
|
202
207
|
TreatCommentsAsGroupSeparators: true
|
208
|
+
# By default, "-" and "_" are ignored for order purposes.
|
209
|
+
# This can be overridden by setting this parameter to true.
|
210
|
+
ConsiderPunctuation: false
|
203
211
|
Include:
|
204
212
|
- '**/*.gemspec'
|
205
213
|
|
206
214
|
Gemspec/RequiredRubyVersion:
|
207
|
-
Description: 'Checks that `required_ruby_version` of gemspec and `TargetRubyVersion` of .rubocop.yml
|
215
|
+
Description: 'Checks that `required_ruby_version` of gemspec is specified and equal to `TargetRubyVersion` of .rubocop.yml.'
|
208
216
|
Enabled: true
|
209
217
|
VersionAdded: '0.52'
|
218
|
+
VersionChanged: '0.89'
|
210
219
|
Include:
|
211
220
|
- '**/*.gemspec'
|
212
221
|
|
@@ -302,6 +311,19 @@ Layout/AssignmentIndentation:
|
|
302
311
|
# But it can be overridden by setting this parameter
|
303
312
|
IndentationWidth: ~
|
304
313
|
|
314
|
+
Layout/BeginEndAlignment:
|
315
|
+
Description: 'Align ends corresponding to begins correctly.'
|
316
|
+
Enabled: pending
|
317
|
+
VersionAdded: '0.91'
|
318
|
+
# The value `start_of_line` means that `end` should be aligned the start of the line
|
319
|
+
# where the `begin` keyword is.
|
320
|
+
# The value `begin` means that `end` should be aligned with the `begin` keyword.
|
321
|
+
EnforcedStyleAlignWith: start_of_line
|
322
|
+
SupportedStylesAlignWith:
|
323
|
+
- start_of_line
|
324
|
+
- begin
|
325
|
+
Severity: warning
|
326
|
+
|
305
327
|
Layout/BlockAlignment:
|
306
328
|
Description: 'Align block ends correctly.'
|
307
329
|
Enabled: true
|
@@ -392,7 +414,6 @@ Layout/DefEndAlignment:
|
|
392
414
|
SupportedStylesAlignWith:
|
393
415
|
- start_of_line
|
394
416
|
- def
|
395
|
-
AutoCorrect: false
|
396
417
|
Severity: warning
|
397
418
|
|
398
419
|
Layout/DotPosition:
|
@@ -429,6 +450,14 @@ Layout/EmptyLineAfterMagicComment:
|
|
429
450
|
Enabled: true
|
430
451
|
VersionAdded: '0.49'
|
431
452
|
|
453
|
+
Layout/EmptyLineAfterMultilineCondition:
|
454
|
+
Description: 'Enforces empty line after multiline condition.'
|
455
|
+
# This is disabled, because this style is not very common in practice.
|
456
|
+
Enabled: false
|
457
|
+
VersionAdded: '0.90'
|
458
|
+
Reference:
|
459
|
+
- https://github.com/airbnb/ruby#multiline-if-newline
|
460
|
+
|
432
461
|
Layout/EmptyLineBetweenDefs:
|
433
462
|
Description: 'Use empty lines between defs.'
|
434
463
|
StyleGuide: '#empty-lines-between-methods'
|
@@ -548,7 +577,6 @@ Layout/EndAlignment:
|
|
548
577
|
- keyword
|
549
578
|
- variable
|
550
579
|
- start_of_line
|
551
|
-
AutoCorrect: false
|
552
580
|
Severity: warning
|
553
581
|
|
554
582
|
Layout/EndOfLine:
|
@@ -1228,7 +1256,7 @@ Layout/SpaceInsideBlockBraces:
|
|
1228
1256
|
|
1229
1257
|
Layout/SpaceInsideHashLiteralBraces:
|
1230
1258
|
Description: "Use spaces inside hash literal braces - or don't."
|
1231
|
-
StyleGuide: '#spaces-
|
1259
|
+
StyleGuide: '#spaces-braces'
|
1232
1260
|
Enabled: true
|
1233
1261
|
VersionAdded: '0.49'
|
1234
1262
|
EnforcedStyle: space
|
@@ -1349,6 +1377,12 @@ Lint/BigDecimalNew:
|
|
1349
1377
|
Enabled: true
|
1350
1378
|
VersionAdded: '0.53'
|
1351
1379
|
|
1380
|
+
Lint/BinaryOperatorWithIdenticalOperands:
|
1381
|
+
Description: 'This cop checks for places where binary operator has identical operands.'
|
1382
|
+
Enabled: pending
|
1383
|
+
Safe: false
|
1384
|
+
VersionAdded: '0.89'
|
1385
|
+
|
1352
1386
|
Lint/BooleanSymbol:
|
1353
1387
|
Description: 'Check for `:true` and `:false` symbols.'
|
1354
1388
|
Enabled: true
|
@@ -1361,6 +1395,12 @@ Lint/CircularArgumentReference:
|
|
1361
1395
|
Enabled: true
|
1362
1396
|
VersionAdded: '0.33'
|
1363
1397
|
|
1398
|
+
Lint/ConstantDefinitionInBlock:
|
1399
|
+
Description: 'Do not define constants within a block.'
|
1400
|
+
StyleGuide: '#no-constant-definition-in-block'
|
1401
|
+
Enabled: pending
|
1402
|
+
VersionAdded: '0.91'
|
1403
|
+
|
1364
1404
|
Lint/ConstantResolution:
|
1365
1405
|
Description: 'Check that constants are fully qualified with `::`.'
|
1366
1406
|
Enabled: false
|
@@ -1391,12 +1431,18 @@ Lint/DisjunctiveAssignmentInConstructor:
|
|
1391
1431
|
Enabled: true
|
1392
1432
|
Safe: false
|
1393
1433
|
VersionAdded: '0.62'
|
1434
|
+
VersionChanged: '0.88'
|
1394
1435
|
|
1395
1436
|
Lint/DuplicateCaseCondition:
|
1396
1437
|
Description: 'Do not repeat values in case conditionals.'
|
1397
1438
|
Enabled: true
|
1398
1439
|
VersionAdded: '0.45'
|
1399
1440
|
|
1441
|
+
Lint/DuplicateElsifCondition:
|
1442
|
+
Description: 'Do not repeat conditions used in if `elsif`.'
|
1443
|
+
Enabled: 'pending'
|
1444
|
+
VersionAdded: '0.88'
|
1445
|
+
|
1400
1446
|
Lint/DuplicateHashKey:
|
1401
1447
|
Description: 'Check for duplicate keys in hash literals.'
|
1402
1448
|
Enabled: true
|
@@ -1408,6 +1454,16 @@ Lint/DuplicateMethods:
|
|
1408
1454
|
Enabled: true
|
1409
1455
|
VersionAdded: '0.29'
|
1410
1456
|
|
1457
|
+
Lint/DuplicateRequire:
|
1458
|
+
Description: 'Check for duplicate `require`s and `require_relative`s.'
|
1459
|
+
Enabled: pending
|
1460
|
+
VersionAdded: '0.90'
|
1461
|
+
|
1462
|
+
Lint/DuplicateRescueException:
|
1463
|
+
Description: 'Checks that there are no repeated exceptions used in `rescue` expressions.'
|
1464
|
+
Enabled: pending
|
1465
|
+
VersionAdded: '0.89'
|
1466
|
+
|
1411
1467
|
Lint/EachWithObjectArgument:
|
1412
1468
|
Description: 'Check for immutable argument given to each_with_object.'
|
1413
1469
|
Enabled: true
|
@@ -1418,18 +1474,29 @@ Lint/ElseLayout:
|
|
1418
1474
|
Enabled: true
|
1419
1475
|
VersionAdded: '0.17'
|
1420
1476
|
|
1477
|
+
Lint/EmptyConditionalBody:
|
1478
|
+
Description: 'This cop checks for the presence of `if`, `elsif` and `unless` branches without a body.'
|
1479
|
+
Enabled: 'pending'
|
1480
|
+
AllowComments: true
|
1481
|
+
VersionAdded: '0.89'
|
1482
|
+
|
1421
1483
|
Lint/EmptyEnsure:
|
1422
1484
|
Description: 'Checks for empty ensure block.'
|
1423
1485
|
Enabled: true
|
1424
1486
|
VersionAdded: '0.10'
|
1425
1487
|
VersionChanged: '0.48'
|
1426
|
-
AutoCorrect: false
|
1427
1488
|
|
1428
1489
|
Lint/EmptyExpression:
|
1429
1490
|
Description: 'Checks for empty expressions.'
|
1430
1491
|
Enabled: true
|
1431
1492
|
VersionAdded: '0.45'
|
1432
1493
|
|
1494
|
+
Lint/EmptyFile:
|
1495
|
+
Description: 'Enforces that Ruby source files are not empty.'
|
1496
|
+
Enabled: pending
|
1497
|
+
AllowComments: true
|
1498
|
+
VersionAdded: '0.90'
|
1499
|
+
|
1433
1500
|
Lint/EmptyInterpolation:
|
1434
1501
|
Description: 'Checks for empty string interpolation.'
|
1435
1502
|
Enabled: true
|
@@ -1461,6 +1528,12 @@ Lint/FlipFlop:
|
|
1461
1528
|
Enabled: true
|
1462
1529
|
VersionAdded: '0.16'
|
1463
1530
|
|
1531
|
+
Lint/FloatComparison:
|
1532
|
+
Description: 'Checks for the presence of precise comparison of floating point numbers.'
|
1533
|
+
StyleGuide: '#float-comparison'
|
1534
|
+
Enabled: pending
|
1535
|
+
VersionAdded: '0.89'
|
1536
|
+
|
1464
1537
|
Lint/FloatOutOfRange:
|
1465
1538
|
Description: >-
|
1466
1539
|
Catches floating-point literals too large or small for Ruby to
|
@@ -1481,6 +1554,12 @@ Lint/HeredocMethodCallPosition:
|
|
1481
1554
|
StyleGuide: '#heredoc-method-calls'
|
1482
1555
|
VersionAdded: '0.68'
|
1483
1556
|
|
1557
|
+
Lint/IdentityComparison:
|
1558
|
+
Description: 'Prefer `equal?` over `==` when comparing `object_id`.'
|
1559
|
+
Enabled: pending
|
1560
|
+
StyleGuide: '#identity-comparison'
|
1561
|
+
VersionAdded: '0.91'
|
1562
|
+
|
1484
1563
|
Lint/ImplicitStringConcatenation:
|
1485
1564
|
Description: >-
|
1486
1565
|
Checks for adjacent string literals on the same line, which
|
@@ -1508,7 +1587,9 @@ Lint/InheritException:
|
|
1508
1587
|
Lint/InterpolationCheck:
|
1509
1588
|
Description: 'Raise warning for interpolation in single q strs.'
|
1510
1589
|
Enabled: true
|
1590
|
+
Safe: false
|
1511
1591
|
VersionAdded: '0.50'
|
1592
|
+
VersionChanged: '0.87'
|
1512
1593
|
|
1513
1594
|
Lint/LiteralAsCondition:
|
1514
1595
|
Description: 'Checks of literals used in conditions.'
|
@@ -1528,6 +1609,7 @@ Lint/Loop:
|
|
1528
1609
|
StyleGuide: '#loop-with-break'
|
1529
1610
|
Enabled: true
|
1530
1611
|
VersionAdded: '0.9'
|
1612
|
+
VersionChanged: '0.89'
|
1531
1613
|
|
1532
1614
|
Lint/MissingCopEnableDirective:
|
1533
1615
|
Description: 'Checks for a `# rubocop:enable` after `# rubocop:disable`.'
|
@@ -1542,6 +1624,13 @@ Lint/MissingCopEnableDirective:
|
|
1542
1624
|
# .inf for any size
|
1543
1625
|
MaximumRangeSize: .inf
|
1544
1626
|
|
1627
|
+
Lint/MissingSuper:
|
1628
|
+
Description: >-
|
1629
|
+
This cop checks for the presence of constructors and lifecycle callbacks
|
1630
|
+
without calls to `super`'.
|
1631
|
+
Enabled: pending
|
1632
|
+
VersionAdded: '0.89'
|
1633
|
+
|
1545
1634
|
Lint/MixedRegexpCaptureTypes:
|
1546
1635
|
Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
|
1547
1636
|
Enabled: pending
|
@@ -1594,6 +1683,12 @@ Lint/OrderedMagicComments:
|
|
1594
1683
|
Enabled: true
|
1595
1684
|
VersionAdded: '0.53'
|
1596
1685
|
|
1686
|
+
Lint/OutOfRangeRegexpRef:
|
1687
|
+
Description: 'Checks for out of range reference for Regexp because it always returns nil.'
|
1688
|
+
Enabled: pending
|
1689
|
+
Safe: false
|
1690
|
+
VersionAdded: '0.89'
|
1691
|
+
|
1597
1692
|
Lint/ParenthesesAsGroupedExpression:
|
1598
1693
|
Description: >-
|
1599
1694
|
Checks for method calls with a space before the opening
|
@@ -1716,6 +1811,7 @@ Lint/SafeNavigationChain:
|
|
1716
1811
|
- presence
|
1717
1812
|
- try
|
1718
1813
|
- try!
|
1814
|
+
- in?
|
1719
1815
|
|
1720
1816
|
Lint/SafeNavigationConsistency:
|
1721
1817
|
Description: >-
|
@@ -1736,6 +1832,7 @@ Lint/SafeNavigationWithEmpty:
|
|
1736
1832
|
Description: 'Avoid `foo&.empty?` in conditionals.'
|
1737
1833
|
Enabled: true
|
1738
1834
|
VersionAdded: '0.62'
|
1835
|
+
VersionChanged: '0.87'
|
1739
1836
|
|
1740
1837
|
Lint/ScriptPermission:
|
1741
1838
|
Description: 'Grant script file execute permission.'
|
@@ -1743,6 +1840,11 @@ Lint/ScriptPermission:
|
|
1743
1840
|
VersionAdded: '0.49'
|
1744
1841
|
VersionChanged: '0.50'
|
1745
1842
|
|
1843
|
+
Lint/SelfAssignment:
|
1844
|
+
Description: 'Checks for self-assignments.'
|
1845
|
+
Enabled: pending
|
1846
|
+
VersionAdded: '0.89'
|
1847
|
+
|
1746
1848
|
Lint/SendWithMixinArgument:
|
1747
1849
|
Description: 'Checks for `send` method when using mixin.'
|
1748
1850
|
Enabled: true
|
@@ -1793,6 +1895,16 @@ Lint/ToJSON:
|
|
1793
1895
|
Enabled: true
|
1794
1896
|
VersionAdded: '0.66'
|
1795
1897
|
|
1898
|
+
Lint/TopLevelReturnWithArgument:
|
1899
|
+
Description: 'This cop detects top level return statements with argument.'
|
1900
|
+
Enabled: 'pending'
|
1901
|
+
VersionAdded: '0.89'
|
1902
|
+
|
1903
|
+
Lint/TrailingCommaInAttributeDeclaration:
|
1904
|
+
Description: 'This cop checks for trailing commas in attribute declarations.'
|
1905
|
+
Enabled: pending
|
1906
|
+
VersionAdded: '0.90'
|
1907
|
+
|
1796
1908
|
Lint/UnderscorePrefixedVariableName:
|
1797
1909
|
Description: 'Do not use prefix `_` for a variable that is used.'
|
1798
1910
|
Enabled: true
|
@@ -1809,6 +1921,11 @@ Lint/UnreachableCode:
|
|
1809
1921
|
Enabled: true
|
1810
1922
|
VersionAdded: '0.9'
|
1811
1923
|
|
1924
|
+
Lint/UnreachableLoop:
|
1925
|
+
Description: 'This cop checks for loops that will have at most one iteration.'
|
1926
|
+
Enabled: pending
|
1927
|
+
VersionAdded: '0.89'
|
1928
|
+
|
1812
1929
|
Lint/UnusedBlockArgument:
|
1813
1930
|
Description: 'Checks for unused block arguments.'
|
1814
1931
|
StyleGuide: '#underscore-unused-vars'
|
@@ -1858,16 +1975,18 @@ Lint/UselessAssignment:
|
|
1858
1975
|
Enabled: true
|
1859
1976
|
VersionAdded: '0.11'
|
1860
1977
|
|
1861
|
-
Lint/UselessComparison:
|
1862
|
-
Description: 'Checks for comparison of something with itself.'
|
1863
|
-
Enabled: true
|
1864
|
-
VersionAdded: '0.11'
|
1865
|
-
|
1866
1978
|
Lint/UselessElseWithoutRescue:
|
1867
1979
|
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
|
1868
1980
|
Enabled: true
|
1869
1981
|
VersionAdded: '0.17'
|
1870
1982
|
|
1983
|
+
Lint/UselessMethodDefinition:
|
1984
|
+
Description: 'Checks for useless method definitions.'
|
1985
|
+
Enabled: pending
|
1986
|
+
VersionAdded: '0.90'
|
1987
|
+
Safe: false
|
1988
|
+
AllowComments: true
|
1989
|
+
|
1871
1990
|
Lint/UselessSetterCall:
|
1872
1991
|
Description: 'Checks for useless setter call to a local variable.'
|
1873
1992
|
Enabled: true
|
@@ -1875,6 +1994,12 @@ Lint/UselessSetterCall:
|
|
1875
1994
|
VersionChanged: '0.80'
|
1876
1995
|
Safe: false
|
1877
1996
|
|
1997
|
+
Lint/UselessTimes:
|
1998
|
+
Description: 'Checks for useless `Integer#times` calls.'
|
1999
|
+
Enabled: pending
|
2000
|
+
VersionAdded: '0.91'
|
2001
|
+
Safe: false
|
2002
|
+
|
1878
2003
|
Lint/Void:
|
1879
2004
|
Description: 'Possible use of operator/literal/variable in void context.'
|
1880
2005
|
Enabled: true
|
@@ -1896,15 +2021,16 @@ Metrics/AbcSize:
|
|
1896
2021
|
# The ABC size is a calculated magnitude, so this number can be an Integer or
|
1897
2022
|
# a Float.
|
1898
2023
|
IgnoredMethods: []
|
1899
|
-
Max:
|
2024
|
+
Max: 17
|
1900
2025
|
|
1901
2026
|
Metrics/BlockLength:
|
1902
2027
|
Description: 'Avoid long blocks with many lines.'
|
1903
2028
|
Enabled: true
|
1904
2029
|
VersionAdded: '0.44'
|
1905
|
-
VersionChanged: '0.
|
2030
|
+
VersionChanged: '0.87'
|
1906
2031
|
CountComments: false # count full line comments?
|
1907
2032
|
Max: 25
|
2033
|
+
CountAsOne: []
|
1908
2034
|
ExcludedMethods:
|
1909
2035
|
# By default, exclude the `#refine` method, as it tends to have larger
|
1910
2036
|
# associated blocks.
|
@@ -1925,8 +2051,10 @@ Metrics/ClassLength:
|
|
1925
2051
|
Description: 'Avoid classes longer than 100 lines of code.'
|
1926
2052
|
Enabled: true
|
1927
2053
|
VersionAdded: '0.25'
|
2054
|
+
VersionChanged: '0.87'
|
1928
2055
|
CountComments: false # count full line comments?
|
1929
2056
|
Max: 100
|
2057
|
+
CountAsOne: []
|
1930
2058
|
|
1931
2059
|
# Avoid complex methods.
|
1932
2060
|
Metrics/CyclomaticComplexity:
|
@@ -1944,17 +2072,20 @@ Metrics/MethodLength:
|
|
1944
2072
|
StyleGuide: '#short-methods'
|
1945
2073
|
Enabled: true
|
1946
2074
|
VersionAdded: '0.25'
|
1947
|
-
VersionChanged: '0.
|
2075
|
+
VersionChanged: '0.87'
|
1948
2076
|
CountComments: false # count full line comments?
|
1949
2077
|
Max: 10
|
2078
|
+
CountAsOne: []
|
1950
2079
|
ExcludedMethods: []
|
1951
2080
|
|
1952
2081
|
Metrics/ModuleLength:
|
1953
2082
|
Description: 'Avoid modules longer than 100 lines of code.'
|
1954
2083
|
Enabled: true
|
1955
2084
|
VersionAdded: '0.31'
|
2085
|
+
VersionChanged: '0.87'
|
1956
2086
|
CountComments: false # count full line comments?
|
1957
2087
|
Max: 100
|
2088
|
+
CountAsOne: []
|
1958
2089
|
|
1959
2090
|
Metrics/ParameterLists:
|
1960
2091
|
Description: 'Avoid parameter lists longer than three or four parameters.'
|
@@ -1972,7 +2103,7 @@ Metrics/PerceivedComplexity:
|
|
1972
2103
|
VersionAdded: '0.25'
|
1973
2104
|
VersionChanged: '0.81'
|
1974
2105
|
IgnoredMethods: []
|
1975
|
-
Max:
|
2106
|
+
Max: 8
|
1976
2107
|
|
1977
2108
|
################## Migration #############################
|
1978
2109
|
|
@@ -1992,10 +2123,12 @@ Naming/AccessorMethodName:
|
|
1992
2123
|
VersionAdded: '0.50'
|
1993
2124
|
|
1994
2125
|
Naming/AsciiIdentifiers:
|
1995
|
-
Description: 'Use only ascii symbols in identifiers.'
|
2126
|
+
Description: 'Use only ascii symbols in identifiers and constants.'
|
1996
2127
|
StyleGuide: '#english-identifiers'
|
1997
2128
|
Enabled: true
|
1998
2129
|
VersionAdded: '0.50'
|
2130
|
+
VersionChanged: '0.87'
|
2131
|
+
AsciiConstants: true
|
1999
2132
|
|
2000
2133
|
Naming/BinaryOperatorParameterName:
|
2001
2134
|
Description: 'When defining binary operators, name the argument other.'
|
@@ -2162,17 +2295,18 @@ Naming/MethodParameterName:
|
|
2162
2295
|
AllowNamesEndingInNumbers: true
|
2163
2296
|
# Allowed names that will not register an offense
|
2164
2297
|
AllowedNames:
|
2165
|
-
-
|
2166
|
-
- id
|
2167
|
-
- to
|
2298
|
+
- at
|
2168
2299
|
- by
|
2169
|
-
-
|
2300
|
+
- db
|
2301
|
+
- id
|
2170
2302
|
- in
|
2171
|
-
-
|
2303
|
+
- io
|
2172
2304
|
- ip
|
2173
|
-
-
|
2305
|
+
- of
|
2306
|
+
- 'on'
|
2174
2307
|
- os
|
2175
2308
|
- pp
|
2309
|
+
- to
|
2176
2310
|
# Forbidden names that will register an offense
|
2177
2311
|
ForbiddenNames: []
|
2178
2312
|
|
@@ -2288,6 +2422,17 @@ Style/AccessModifierDeclarations:
|
|
2288
2422
|
- group
|
2289
2423
|
AllowModifiersOnSymbols: true
|
2290
2424
|
|
2425
|
+
Style/AccessorGrouping:
|
2426
|
+
Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
|
2427
|
+
Enabled: 'pending'
|
2428
|
+
VersionAdded: '0.87'
|
2429
|
+
EnforcedStyle: grouped
|
2430
|
+
SupportedStyles:
|
2431
|
+
# separated: each accessor goes in a separate statement.
|
2432
|
+
# grouped: accessors are grouped into a single statement.
|
2433
|
+
- separated
|
2434
|
+
- grouped
|
2435
|
+
|
2291
2436
|
Style/Alias:
|
2292
2437
|
Description: 'Use alias instead of alias_method.'
|
2293
2438
|
StyleGuide: '#alias-method-lexically'
|
@@ -2312,6 +2457,15 @@ Style/AndOr:
|
|
2312
2457
|
- always
|
2313
2458
|
- conditionals
|
2314
2459
|
|
2460
|
+
Style/ArrayCoercion:
|
2461
|
+
Description: >-
|
2462
|
+
Use Array() instead of explicit Array check or [*var], when dealing
|
2463
|
+
with a variable you want to treat as an Array, but you're not certain it's an array.
|
2464
|
+
StyleGuide: '#array-coercion'
|
2465
|
+
Safe: false
|
2466
|
+
Enabled: 'pending'
|
2467
|
+
VersionAdded: '0.88'
|
2468
|
+
|
2315
2469
|
Style/ArrayJoin:
|
2316
2470
|
Description: 'Use Array#join instead of Array#*.'
|
2317
2471
|
StyleGuide: '#array-join'
|
@@ -2355,6 +2509,13 @@ Style/BeginBlock:
|
|
2355
2509
|
Enabled: true
|
2356
2510
|
VersionAdded: '0.9'
|
2357
2511
|
|
2512
|
+
Style/BisectedAttrAccessor:
|
2513
|
+
Description: >-
|
2514
|
+
Checks for places where `attr_reader` and `attr_writer`
|
2515
|
+
for the same method can be combined into single `attr_accessor`.
|
2516
|
+
Enabled: 'pending'
|
2517
|
+
VersionAdded: '0.87'
|
2518
|
+
|
2358
2519
|
Style/BlockComments:
|
2359
2520
|
Description: 'Do not use block comments.'
|
2360
2521
|
StyleGuide: '#no-block-comments'
|
@@ -2477,6 +2638,7 @@ Style/CaseEquality:
|
|
2477
2638
|
StyleGuide: '#no-case-equality'
|
2478
2639
|
Enabled: true
|
2479
2640
|
VersionAdded: '0.9'
|
2641
|
+
VersionChanged: '0.89'
|
2480
2642
|
# If AllowOnConstant is enabled, the cop will ignore violations when the receiver of
|
2481
2643
|
# the case equality operator is a constant.
|
2482
2644
|
#
|
@@ -2487,6 +2649,13 @@ Style/CaseEquality:
|
|
2487
2649
|
# String === "string"
|
2488
2650
|
AllowOnConstant: false
|
2489
2651
|
|
2652
|
+
Style/CaseLikeIf:
|
2653
|
+
Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
2654
|
+
StyleGuide: '#case-vs-if-else'
|
2655
|
+
Enabled: 'pending'
|
2656
|
+
Safe: false
|
2657
|
+
VersionAdded: '0.88'
|
2658
|
+
|
2490
2659
|
Style/CharacterLiteral:
|
2491
2660
|
Description: 'Checks for uses of character literals.'
|
2492
2661
|
StyleGuide: '#no-character-literals'
|
@@ -2502,7 +2671,6 @@ Style/ClassAndModuleChildren:
|
|
2502
2671
|
# have the knowledge to perform either operation safely and thus requires
|
2503
2672
|
# manual oversight.
|
2504
2673
|
SafeAutoCorrect: false
|
2505
|
-
AutoCorrect: false
|
2506
2674
|
Enabled: true
|
2507
2675
|
VersionAdded: '0.19'
|
2508
2676
|
#
|
@@ -2541,6 +2709,16 @@ Style/ClassMethods:
|
|
2541
2709
|
VersionAdded: '0.9'
|
2542
2710
|
VersionChanged: '0.20'
|
2543
2711
|
|
2712
|
+
Style/ClassMethodsDefinitions:
|
2713
|
+
Description: 'Enforces using `def self.method_name` or `class << self` to define class methods.'
|
2714
|
+
StyleGuide: '#def-self-class-methods'
|
2715
|
+
Enabled: false
|
2716
|
+
VersionAdded: '0.89'
|
2717
|
+
EnforcedStyle: def_self
|
2718
|
+
SupportedStyles:
|
2719
|
+
- def_self
|
2720
|
+
- self_class
|
2721
|
+
|
2544
2722
|
Style/ClassVars:
|
2545
2723
|
Description: 'Avoid the use of class variables.'
|
2546
2724
|
StyleGuide: '#no-class-vars'
|
@@ -2581,6 +2759,14 @@ Style/ColonMethodDefinition:
|
|
2581
2759
|
Enabled: true
|
2582
2760
|
VersionAdded: '0.52'
|
2583
2761
|
|
2762
|
+
Style/CombinableLoops:
|
2763
|
+
Description: >-
|
2764
|
+
Checks for places where multiple consecutive loops over the same data
|
2765
|
+
can be combined into a single loop.
|
2766
|
+
Enabled: pending
|
2767
|
+
Safe: false
|
2768
|
+
VersionAdded: '0.90'
|
2769
|
+
|
2584
2770
|
Style/CommandLiteral:
|
2585
2771
|
Description: 'Use `` or %x around command literals.'
|
2586
2772
|
StyleGuide: '#percent-x'
|
@@ -2729,6 +2915,7 @@ Style/DoubleNegation:
|
|
2729
2915
|
VersionAdded: '0.19'
|
2730
2916
|
VersionChanged: '0.84'
|
2731
2917
|
EnforcedStyle: allowed_in_returns
|
2918
|
+
SafeAutoCorrect: false
|
2732
2919
|
SupportedStyles:
|
2733
2920
|
- allowed_in_returns
|
2734
2921
|
- forbidden
|
@@ -2823,6 +3010,16 @@ Style/ExpandPathArguments:
|
|
2823
3010
|
Enabled: true
|
2824
3011
|
VersionAdded: '0.53'
|
2825
3012
|
|
3013
|
+
Style/ExplicitBlockArgument:
|
3014
|
+
Description: >-
|
3015
|
+
Consider using explicit block argument to avoid writing block literal
|
3016
|
+
that just passes its arguments to another block.
|
3017
|
+
StyleGuide: '#block-argument'
|
3018
|
+
Enabled: pending
|
3019
|
+
# May change the yielding arity.
|
3020
|
+
Safe: false
|
3021
|
+
VersionAdded: '0.89'
|
3022
|
+
|
2826
3023
|
Style/ExponentialNotation:
|
2827
3024
|
Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
|
2828
3025
|
StyleGuide: '#exponential-notation'
|
@@ -2904,7 +3101,14 @@ Style/FrozenStringLiteralComment:
|
|
2904
3101
|
# `never` will enforce that the frozen string literal comment does not
|
2905
3102
|
# exist in a file.
|
2906
3103
|
- never
|
2907
|
-
|
3104
|
+
SafeAutoCorrect: false
|
3105
|
+
|
3106
|
+
Style/GlobalStdStream:
|
3107
|
+
Description: 'Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.'
|
3108
|
+
StyleGuide: '#global-stdout'
|
3109
|
+
Enabled: pending
|
3110
|
+
VersionAdded: '0.89'
|
3111
|
+
SafeAutoCorrect: false
|
2908
3112
|
|
2909
3113
|
Style/GlobalVars:
|
2910
3114
|
Description: 'Do not introduce global variables.'
|
@@ -2925,6 +3129,18 @@ Style/GuardClause:
|
|
2925
3129
|
# needs to have to trigger this cop
|
2926
3130
|
MinBodyLength: 1
|
2927
3131
|
|
3132
|
+
Style/HashAsLastArrayItem:
|
3133
|
+
Description: >-
|
3134
|
+
Checks for presence or absence of braces around hash literal as a last
|
3135
|
+
array item depending on configuration.
|
3136
|
+
StyleGuide: '#hash-literal-as-last-array-item'
|
3137
|
+
Enabled: 'pending'
|
3138
|
+
VersionAdded: '0.88'
|
3139
|
+
EnforcedStyle: braces
|
3140
|
+
SupportedStyles:
|
3141
|
+
- braces
|
3142
|
+
- no_braces
|
3143
|
+
|
2928
3144
|
Style/HashEachMethods:
|
2929
3145
|
Description: 'Use Hash#each_key and Hash#each_value.'
|
2930
3146
|
StyleGuide: '#hash-each'
|
@@ -2932,6 +3148,16 @@ Style/HashEachMethods:
|
|
2932
3148
|
VersionAdded: '0.80'
|
2933
3149
|
Safe: false
|
2934
3150
|
|
3151
|
+
Style/HashLikeCase:
|
3152
|
+
Description: >-
|
3153
|
+
Checks for places where `case-when` represents a simple 1:1
|
3154
|
+
mapping and can be replaced with a hash lookup.
|
3155
|
+
Enabled: 'pending'
|
3156
|
+
VersionAdded: '0.88'
|
3157
|
+
# `MinBranchesCount` defines the number of branches `case` needs to have
|
3158
|
+
# to trigger this cop
|
3159
|
+
MinBranchesCount: 3
|
3160
|
+
|
2935
3161
|
Style/HashSyntax:
|
2936
3162
|
Description: >-
|
2937
3163
|
Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
|
@@ -2956,15 +3182,17 @@ Style/HashSyntax:
|
|
2956
3182
|
PreferHashRocketsForNonAlnumEndingSymbols: false
|
2957
3183
|
|
2958
3184
|
Style/HashTransformKeys:
|
2959
|
-
Description: 'Prefer `transform_keys` over `each_with_object`
|
3185
|
+
Description: 'Prefer `transform_keys` over `each_with_object`, `map`, or `to_h`.'
|
2960
3186
|
Enabled: 'pending'
|
2961
3187
|
VersionAdded: '0.80'
|
3188
|
+
VersionChanged: '0.90'
|
2962
3189
|
Safe: false
|
2963
3190
|
|
2964
3191
|
Style/HashTransformValues:
|
2965
|
-
Description: 'Prefer `transform_values` over `each_with_object`
|
3192
|
+
Description: 'Prefer `transform_values` over `each_with_object`, `map`, or `to_h`.'
|
2966
3193
|
Enabled: 'pending'
|
2967
3194
|
VersionAdded: '0.80'
|
3195
|
+
VersionChanged: '0.90'
|
2968
3196
|
Safe: false
|
2969
3197
|
|
2970
3198
|
Style/IdenticalConditionalBranches:
|
@@ -2995,6 +3223,7 @@ Style/IfUnlessModifierOfIfUnless:
|
|
2995
3223
|
Avoid modifier if/unless usage on conditionals.
|
2996
3224
|
Enabled: true
|
2997
3225
|
VersionAdded: '0.39'
|
3226
|
+
VersionChanged: '0.87'
|
2998
3227
|
|
2999
3228
|
Style/IfWithSemicolon:
|
3000
3229
|
Description: 'Do not use if x; .... Use the ternary operator instead.'
|
@@ -3060,6 +3289,12 @@ Style/IpAddresses:
|
|
3060
3289
|
- "::"
|
3061
3290
|
# :: is a valid IPv6 address, but could potentially be legitimately in code
|
3062
3291
|
|
3292
|
+
Style/KeywordParametersOrder:
|
3293
|
+
Description: 'Enforces that optional keyword parameters are placed at the end of the parameters list.'
|
3294
|
+
StyleGuide: '#keyword-parameters-order'
|
3295
|
+
Enabled: pending
|
3296
|
+
VersionAdded: '0.90'
|
3297
|
+
|
3063
3298
|
Style/Lambda:
|
3064
3299
|
Description: 'Use the new lambda literal syntax for single-line blocks.'
|
3065
3300
|
StyleGuide: '#lambda-multi-line'
|
@@ -3138,12 +3373,6 @@ Style/MethodDefParentheses:
|
|
3138
3373
|
- require_no_parentheses
|
3139
3374
|
- require_no_parentheses_except_multiline
|
3140
3375
|
|
3141
|
-
Style/MethodMissingSuper:
|
3142
|
-
Description: Checks for `method_missing` to call `super`.
|
3143
|
-
StyleGuide: '#no-method-missing'
|
3144
|
-
Enabled: true
|
3145
|
-
VersionAdded: '0.56'
|
3146
|
-
|
3147
3376
|
Style/MinMax:
|
3148
3377
|
Description: >-
|
3149
3378
|
Use `Enumerable#minmax` instead of `Enumerable#min`
|
@@ -3439,7 +3668,6 @@ Style/NumericPredicate:
|
|
3439
3668
|
# object. Switching these methods has to be done with knowledge of the types
|
3440
3669
|
# of the variables which rubocop doesn't have.
|
3441
3670
|
SafeAutoCorrect: false
|
3442
|
-
AutoCorrect: false
|
3443
3671
|
Enabled: true
|
3444
3672
|
VersionAdded: '0.42'
|
3445
3673
|
VersionChanged: '0.59'
|
@@ -3455,12 +3683,13 @@ Style/NumericPredicate:
|
|
3455
3683
|
|
3456
3684
|
Style/OneLineConditional:
|
3457
3685
|
Description: >-
|
3458
|
-
Favor the ternary operator(?:) over
|
3459
|
-
if/then/else/end constructs.
|
3686
|
+
Favor the ternary operator (?:) or multi-line constructs over
|
3687
|
+
single-line if/then/else/end constructs.
|
3460
3688
|
StyleGuide: '#ternary-operator'
|
3461
3689
|
Enabled: true
|
3690
|
+
AlwaysCorrectToMultiline: false
|
3462
3691
|
VersionAdded: '0.9'
|
3463
|
-
VersionChanged: '0.
|
3692
|
+
VersionChanged: '0.90'
|
3464
3693
|
|
3465
3694
|
Style/OptionHash:
|
3466
3695
|
Description: "Don't use option hashes when you can use keyword arguments."
|
@@ -3485,6 +3714,13 @@ Style/OptionalArguments:
|
|
3485
3714
|
VersionAdded: '0.33'
|
3486
3715
|
VersionChanged: '0.83'
|
3487
3716
|
|
3717
|
+
Style/OptionalBooleanParameter:
|
3718
|
+
Description: 'Use keyword arguments when defining method with boolean argument.'
|
3719
|
+
StyleGuide: '#boolean-keyword-arguments'
|
3720
|
+
Enabled: pending
|
3721
|
+
Safe: false
|
3722
|
+
VersionAdded: '0.89'
|
3723
|
+
|
3488
3724
|
Style/OrAssignment:
|
3489
3725
|
Description: 'Recommend usage of double pipe equals (||=) where applicable.'
|
3490
3726
|
StyleGuide: '#double-pipe-for-uninit'
|
@@ -3581,6 +3817,11 @@ Style/RandomWithOffset:
|
|
3581
3817
|
Enabled: true
|
3582
3818
|
VersionAdded: '0.52'
|
3583
3819
|
|
3820
|
+
Style/RedundantAssignment:
|
3821
|
+
Description: 'Checks for redundant assignment before returning.'
|
3822
|
+
Enabled: 'pending'
|
3823
|
+
VersionAdded: '0.87'
|
3824
|
+
|
3584
3825
|
Style/RedundantBegin:
|
3585
3826
|
Description: "Don't use begin blocks when they are not needed."
|
3586
3827
|
StyleGuide: '#begin-implicit'
|
@@ -3623,6 +3864,14 @@ Style/RedundantFetchBlock:
|
|
3623
3864
|
SafeForConstants: false
|
3624
3865
|
VersionAdded: '0.86'
|
3625
3866
|
|
3867
|
+
Style/RedundantFileExtensionInRequire:
|
3868
|
+
Description: >-
|
3869
|
+
Checks for the presence of superfluous `.rb` extension in
|
3870
|
+
the filename provided to `require` and `require_relative`.
|
3871
|
+
StyleGuide: '#no-explicit-rb-to-require'
|
3872
|
+
Enabled: 'pending'
|
3873
|
+
VersionAdded: '0.88'
|
3874
|
+
|
3626
3875
|
Style/RedundantFreeze:
|
3627
3876
|
Description: "Checks usages of Object#freeze on immutable objects."
|
3628
3877
|
Enabled: true
|
@@ -3671,6 +3920,12 @@ Style/RedundantSelf:
|
|
3671
3920
|
VersionAdded: '0.10'
|
3672
3921
|
VersionChanged: '0.13'
|
3673
3922
|
|
3923
|
+
Style/RedundantSelfAssignment:
|
3924
|
+
Description: 'Checks for places where redundant assignments are made for in place modification methods.'
|
3925
|
+
Enabled: pending
|
3926
|
+
Safe: false
|
3927
|
+
VersionAdded: '0.90'
|
3928
|
+
|
3674
3929
|
Style/RedundantSort:
|
3675
3930
|
Description: >-
|
3676
3931
|
Use `min` instead of `sort.first`,
|
@@ -3790,6 +4045,12 @@ Style/SignalException:
|
|
3790
4045
|
- only_fail
|
3791
4046
|
- semantic
|
3792
4047
|
|
4048
|
+
Style/SingleArgumentDig:
|
4049
|
+
Description: 'Avoid using single argument dig method.'
|
4050
|
+
Enabled: pending
|
4051
|
+
VersionAdded: '0.89'
|
4052
|
+
Safe: false
|
4053
|
+
|
3793
4054
|
Style/SingleLineBlockParams:
|
3794
4055
|
Description: 'Enforces the names of some block params.'
|
3795
4056
|
Enabled: false
|
@@ -3817,6 +4078,14 @@ Style/SlicingWithRange:
|
|
3817
4078
|
VersionAdded: '0.83'
|
3818
4079
|
Safe: false
|
3819
4080
|
|
4081
|
+
Style/SoleNestedConditional:
|
4082
|
+
Description: >-
|
4083
|
+
Finds sole nested conditional nodes
|
4084
|
+
which can be merged into outer conditional node.
|
4085
|
+
Enabled: pending
|
4086
|
+
VersionAdded: '0.89'
|
4087
|
+
AllowModifier: false
|
4088
|
+
|
3820
4089
|
Style/SpecialGlobalVars:
|
3821
4090
|
Description: 'Avoid Perl-style global variables.'
|
3822
4091
|
StyleGuide: '#no-cryptic-perlisms'
|
@@ -3845,6 +4114,13 @@ Style/StderrPuts:
|
|
3845
4114
|
Enabled: true
|
3846
4115
|
VersionAdded: '0.51'
|
3847
4116
|
|
4117
|
+
Style/StringConcatenation:
|
4118
|
+
Description: 'Checks for places where string concatenation can be replaced with string interpolation.'
|
4119
|
+
StyleGuide: '#string-interpolation'
|
4120
|
+
Enabled: pending
|
4121
|
+
Safe: false
|
4122
|
+
VersionAdded: '0.89'
|
4123
|
+
|
3848
4124
|
Style/StringHashKeys:
|
3849
4125
|
Description: 'Prefer symbols instead of strings as hash keys.'
|
3850
4126
|
StyleGuide: '#symbols-as-keys'
|
@@ -3924,7 +4200,7 @@ Style/SymbolLiteral:
|
|
3924
4200
|
Style/SymbolProc:
|
3925
4201
|
Description: 'Use symbols as procs instead of blocks when possible.'
|
3926
4202
|
Enabled: true
|
3927
|
-
|
4203
|
+
Safe: false
|
3928
4204
|
VersionAdded: '0.26'
|
3929
4205
|
VersionChanged: '0.64'
|
3930
4206
|
# A list of method names to be ignored by the check.
|