chefstyle 1.4.4 → 1.5.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d720ee7f411ec4e21714e8caca7822a67440deae3ad360a3c9591749b4cc17e8
4
- data.tar.gz: 8cee92cb7017f748d6b55c4c7c87b7a4d3c0a88db3051e47c20fe208421e386b
3
+ metadata.gz: 5eafee1ab58f15782ca6a720315f9502822f1d0e63e07d33e271d987bad49c64
4
+ data.tar.gz: 0004d5f5a676d1801b4b2e6fb786e026874261ef9f636660eb3e3403cbed5108
5
5
  SHA512:
6
- metadata.gz: 84accab6836d7c5ca64b75f257262ecf66f0aad405aec5683aa11c379a5dbb0dfce677635b13f33d2ca95262708d7729f32eae9c06a493d6e4295c8a082b14ef
7
- data.tar.gz: 0d905d5e1da9b5dc5332e56ddec2a60c480faa085efb1982b5bfed067d33e6a9863a014aafb81bfb35b7609f9b25b31e6dd00aa497e17eb8fd611e42d2ec0b8e
6
+ metadata.gz: 6d5c292f15541edf15ecdaea4d135b893550a28ca242b449fa7c05c74644b98d3c8927db666d46f6d30c63be5521dbb58fd7b740d753a7bd38baf651386c2ace
7
+ data.tar.gz: ba0275de1384c823209345d28ff82ab5ef484371491334a1aa110bb86abfc9a61f0795295aaa1b402d0b9bb5fb7ec34038fed04b4000f605f45ce2808eabb6dd
@@ -1,5 +1,6 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.4
3
+ SuggestExtensions: false
3
4
 
4
5
  #
5
6
  # Bundler
@@ -243,6 +244,7 @@ Layout/EmptyLineAfterGuardClause:
243
244
  Enabled: true
244
245
  Layout/EmptyLineBetweenDefs:
245
246
  Enabled: true
247
+ AllowAdjacentOneLineDefs: true
246
248
  Layout/EmptyLines:
247
249
  Enabled: true
248
250
  Layout/EmptyLinesAroundAccessModifier:
@@ -669,26 +671,42 @@ Style/ExpandPathArguments:
669
671
  Lint/RedundantSafeNavigation:
670
672
  Enabled: true
671
673
 
672
- ChefRuby/Ruby27KeywordArgumentWarnings:
674
+ # Eases readability
675
+ Lint/RedundantStringCoercion:
676
+ Enabled: true
677
+
678
+ # unnecessary complexity
679
+ Lint/RedundantWithObject:
680
+ Enabled: true
681
+
682
+ # unnecessary complexity
683
+ Lint/RedundantWithIndex:
684
+ Enabled: true
685
+
686
+ # avoid requiring twice
687
+ Lint/DuplicateRequire:
688
+ Enabled: true
689
+
690
+ Chef/Ruby/Ruby27KeywordArgumentWarnings:
673
691
  Description: Pass options to shell_out helpers without the brackets to avoid Ruby 2.7 deprecation warnings.
674
692
  Enabled: true
675
693
  VersionAdded: '1.3.0'
676
694
 
677
- ChefRuby/UnlessDefinedRequire:
695
+ Chef/Ruby/UnlessDefinedRequire:
678
696
  Description: Workaround RubyGems' slow requires by only running require if the constant isn't already defined
679
697
  Enabled: true
680
698
  VersionAdded: '1.3.0'
681
699
  Include:
682
700
  - 'lib/**/*'
683
701
 
684
- ChefRuby/GemspecRequireRubygems:
702
+ Chef/Ruby/GemspecRequireRubygems:
685
703
  Description: Rubygems does not need to be required in a Gemspec
686
704
  Enabled: true
687
705
  VersionAdded: '1.3.0'
688
706
  Include:
689
707
  - '**/*.gemspec'
690
708
 
691
- ChefRuby/RequireNetHttps:
709
+ Chef/Ruby/RequireNetHttps:
692
710
  Description: net/https is deprecated and just includes net/http and openssl. We should include those directly instead
693
711
  Enabled: true
694
712
  VersionAdded: '1.3.0'
@@ -229,6 +229,8 @@ Lint/DeprecatedOpenSSLConstant:
229
229
  Enabled: false
230
230
  Lint/DisjunctiveAssignmentInConstructor:
231
231
  Enabled: false
232
+ Lint/DuplicateBranch:
233
+ Enabled: false
232
234
  Lint/DuplicateCaseCondition:
233
235
  Enabled: false
234
236
  Lint/DuplicateElsifCondition:
@@ -237,6 +239,8 @@ Lint/DuplicateHashKey:
237
239
  Enabled: false
238
240
  Lint/DuplicateMethods:
239
241
  Enabled: false
242
+ Lint/DuplicateRegexpCharacterClassElement:
243
+ Enabled: false
240
244
  Lint/DuplicateRequire:
241
245
  Enabled: false
242
246
  Lint/DuplicateRescueException:
@@ -245,6 +249,10 @@ Lint/EachWithObjectArgument:
245
249
  Enabled: false
246
250
  Lint/ElseLayout:
247
251
  Enabled: false
252
+ Lint/EmptyBlock:
253
+ Enabled: false
254
+ Lint/EmptyClass:
255
+ Enabled: false
248
256
  Lint/EmptyConditionalBody:
249
257
  Enabled: false
250
258
  Lint/EmptyEnsure:
@@ -303,6 +311,8 @@ Lint/NestedPercentLiteral:
303
311
  Enabled: false
304
312
  Lint/NextWithoutAccumulator:
305
313
  Enabled: false
314
+ Lint/NoReturnInBeginEndBlocks:
315
+ Enabled: false
306
316
  Lint/NonDeterministicRequireOrder:
307
317
  Enabled: false
308
318
  Lint/NonLocalExitFromIterator:
@@ -373,6 +383,8 @@ Lint/SuppressedException:
373
383
  Enabled: false
374
384
  Lint/Syntax:
375
385
  Enabled: false
386
+ Lint/ToEnumArguments:
387
+ Enabled: false
376
388
  Lint/ToJSON:
377
389
  Enabled: false
378
390
  Lint/TopLevelReturnWithArgument:
@@ -381,8 +393,12 @@ Lint/TrailingCommaInAttributeDeclaration:
381
393
  Enabled: false
382
394
  Lint/UnderscorePrefixedVariableName:
383
395
  Enabled: false
396
+ Lint/UnexpectedBlockArity:
397
+ Enabled: false
384
398
  Lint/UnifiedInteger:
385
399
  Enabled: false
400
+ Lint/UnmodifiedReduceAccumulator:
401
+ Enabled: false
386
402
  Lint/UnreachableCode:
387
403
  Enabled: false
388
404
  Lint/UnreachableLoop:
@@ -467,6 +483,8 @@ Style/Alias:
467
483
  Enabled: false
468
484
  Style/AndOr:
469
485
  Enabled: false
486
+ Style/ArgumentsForwarding:
487
+ Enabled: false
470
488
  Style/ArrayCoercion:
471
489
  Enabled: false
472
490
  Style/ArrayJoin:
@@ -505,6 +523,8 @@ Style/ClassMethodsDefinitions:
505
523
  Enabled: false
506
524
  Style/ClassVars:
507
525
  Enabled: false
526
+ Style/CollectionCompact:
527
+ Enabled: false
508
528
  Style/CollectionMethods:
509
529
  Enabled: false
510
530
  Style/ColonMethodCall:
@@ -537,6 +557,8 @@ Style/DocumentationMethod:
537
557
  Enabled: false
538
558
  Style/Documentation:
539
559
  Enabled: false
560
+ Style/DocumentDynamicEvalDefinition:
561
+ Enabled: false
540
562
  Style/DoubleCopDisableDirective:
541
563
  Enabled: false
542
564
  Style/DoubleNegation:
@@ -641,6 +663,8 @@ Style/RedundantSelfAssignment:
641
663
  Enabled: false
642
664
  Style/SoleNestedConditional:
643
665
  Enabled: false
666
+ Style/StaticClass:
667
+ Enabled: false
644
668
  Style/MethodCalledOnDoEndBlock:
645
669
  Enabled: false
646
670
  Style/MethodDefParentheses:
@@ -677,6 +701,8 @@ Style/MutableConstant:
677
701
  Enabled: false
678
702
  Style/NegatedIf:
679
703
  Enabled: false
704
+ Style/NegatedIfElseCondition:
705
+ Enabled: false
680
706
  Style/NegatedUnless:
681
707
  Enabled: false
682
708
  Style/NegatedWhile:
@@ -691,6 +717,8 @@ Style/Next:
691
717
  Enabled: false
692
718
  Style/NilComparison:
693
719
  Enabled: false
720
+ Style/NilLambda:
721
+ Enabled: false
694
722
  Style/NonNilCheck:
695
723
  Enabled: false
696
724
  Style/Not:
@@ -729,6 +757,8 @@ Style/RaiseArgs:
729
757
  Enabled: false
730
758
  Style/RandomWithOffset:
731
759
  Enabled: false
760
+ Style/RedundantArgument:
761
+ Enabled: false
732
762
  Style/RedundantBegin:
733
763
  Enabled: false
734
764
  Style/RedundantCapitalW:
@@ -807,6 +837,8 @@ Style/Strip:
807
837
  Enabled: false
808
838
  Style/StructInheritance:
809
839
  Enabled: false
840
+ Style/SwapValues:
841
+ Enabled: false
810
842
  Style/SymbolArray:
811
843
  Enabled: false
812
844
  Style/SymbolLiteral:
@@ -139,6 +139,16 @@ AllCops:
139
139
  # from the lock file.) If the Ruby version is still unresolved, RuboCop will
140
140
  # use the oldest officially supported Ruby version (currently Ruby 2.4).
141
141
  TargetRubyVersion: ~
142
+ # Determines if a notification for extension libraries should be shown when
143
+ # rubocop is run. Keys are the name of the extension, and values are an array
144
+ # of gems in the Gemfile that the extension is suggested for, if not already
145
+ # included.
146
+ SuggestExtensions:
147
+ rubocop-rails: [rails]
148
+ rubocop-rspec: [rspec, rspec-rails]
149
+ rubocop-minitest: [minitest]
150
+ rubocop-sequel: [sequel]
151
+ rubocop-rake: [rake]
142
152
 
143
153
  #################### Bundler ###############################
144
154
 
@@ -313,7 +323,7 @@ Layout/AssignmentIndentation:
313
323
 
314
324
  Layout/BeginEndAlignment:
315
325
  Description: 'Align ends corresponding to begins correctly.'
316
- Enabled: pending
326
+ Enabled: true
317
327
  VersionAdded: '0.91'
318
328
  # The value `start_of_line` means that `end` should be aligned the start of the line
319
329
  # where the `begin` keyword is.
@@ -459,10 +469,14 @@ Layout/EmptyLineAfterMultilineCondition:
459
469
  - https://github.com/airbnb/ruby#multiline-if-newline
460
470
 
461
471
  Layout/EmptyLineBetweenDefs:
462
- Description: 'Use empty lines between defs.'
472
+ Description: 'Use empty lines between class/module/method defs.'
463
473
  StyleGuide: '#empty-lines-between-methods'
464
474
  Enabled: true
465
475
  VersionAdded: '0.49'
476
+ VersionChanged: '1.4'
477
+ EmptyLineBetweenMethodDefs: true
478
+ EmptyLineBetweenClassDefs: true
479
+ EmptyLineBetweenModuleDefs: true
466
480
  # If `true`, this parameter means that single line method definitions don't
467
481
  # need an empty line between them.
468
482
  AllowAdjacentOneLineDefs: false
@@ -496,7 +510,7 @@ Layout/EmptyLinesAroundArguments:
496
510
  Layout/EmptyLinesAroundAttributeAccessor:
497
511
  Description: "Keep blank lines around attribute accessors."
498
512
  StyleGuide: '#empty-lines-around-attribute-accessor'
499
- Enabled: pending
513
+ Enabled: true
500
514
  VersionAdded: '0.83'
501
515
  VersionChanged: '0.84'
502
516
  AllowAliasSyntax: true
@@ -891,8 +905,8 @@ Layout/LineLength:
891
905
  StyleGuide: '#max-line-length'
892
906
  Enabled: true
893
907
  VersionAdded: '0.25'
894
- VersionChanged: '0.84'
895
- AutoCorrect: false
908
+ VersionChanged: '1.4'
909
+ AutoCorrect: true
896
910
  Max: 120
897
911
  # To make it possible to copy or click on URIs in the code, we allow lines
898
912
  # containing a URI to be longer than Max.
@@ -1145,7 +1159,7 @@ Layout/SpaceAroundKeyword:
1145
1159
 
1146
1160
  Layout/SpaceAroundMethodCallOperator:
1147
1161
  Description: 'Checks method call operators to not have spaces around them.'
1148
- Enabled: pending
1162
+ Enabled: true
1149
1163
  VersionAdded: '0.82'
1150
1164
 
1151
1165
  Layout/SpaceAroundOperators:
@@ -1176,7 +1190,7 @@ Layout/SpaceBeforeBlockBraces:
1176
1190
  SupportedStylesForEmptyBraces:
1177
1191
  - space
1178
1192
  - no_space
1179
- VersionChanged: '0.52.1'
1193
+ VersionChanged: '0.52'
1180
1194
 
1181
1195
  Layout/SpaceBeforeComma:
1182
1196
  Description: 'No spaces before commas.'
@@ -1334,8 +1348,8 @@ Layout/TrailingWhitespace:
1334
1348
  StyleGuide: '#no-trailing-whitespace'
1335
1349
  Enabled: true
1336
1350
  VersionAdded: '0.49'
1337
- VersionChanged: '0.83'
1338
- AllowInHeredoc: true
1351
+ VersionChanged: '1.0'
1352
+ AllowInHeredoc: false
1339
1353
 
1340
1354
  #################### Lint ##################################
1341
1355
  ### Warnings
@@ -1379,7 +1393,7 @@ Lint/BigDecimalNew:
1379
1393
 
1380
1394
  Lint/BinaryOperatorWithIdenticalOperands:
1381
1395
  Description: 'This cop checks for places where binary operator has identical operands.'
1382
- Enabled: pending
1396
+ Enabled: true
1383
1397
  Safe: false
1384
1398
  VersionAdded: '0.89'
1385
1399
 
@@ -1398,8 +1412,13 @@ Lint/CircularArgumentReference:
1398
1412
  Lint/ConstantDefinitionInBlock:
1399
1413
  Description: 'Do not define constants within a block.'
1400
1414
  StyleGuide: '#no-constant-definition-in-block'
1401
- Enabled: pending
1415
+ Enabled: true
1402
1416
  VersionAdded: '0.91'
1417
+ VersionChanged: '1.3'
1418
+ # `enums` for Typed Enums via T::Enum in Sorbet.
1419
+ # https://sorbet.org/docs/tenum
1420
+ AllowedMethods:
1421
+ - enums
1403
1422
 
1404
1423
  Lint/ConstantResolution:
1405
1424
  Description: 'Check that constants are fully qualified with `::`.'
@@ -1415,6 +1434,22 @@ Lint/Debugger:
1415
1434
  Enabled: true
1416
1435
  VersionAdded: '0.14'
1417
1436
  VersionChanged: '0.49'
1437
+ DebuggerReceivers:
1438
+ - binding
1439
+ - Kernel
1440
+ - Pry
1441
+ DebuggerMethods:
1442
+ - debugger
1443
+ - byebug
1444
+ - remote_byebug
1445
+ - pry
1446
+ - remote_pry
1447
+ - pry_remote
1448
+ - console
1449
+ - rescue
1450
+ - save_and_open_page
1451
+ - save_and_open_screenshot
1452
+ - irb
1418
1453
 
1419
1454
  Lint/DeprecatedClassMethods:
1420
1455
  Description: 'Check for deprecated class method calls.'
@@ -1423,7 +1458,7 @@ Lint/DeprecatedClassMethods:
1423
1458
 
1424
1459
  Lint/DeprecatedOpenSSLConstant:
1425
1460
  Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
1426
- Enabled: pending
1461
+ Enabled: true
1427
1462
  VersionAdded: '0.84'
1428
1463
 
1429
1464
  Lint/DisjunctiveAssignmentInConstructor:
@@ -1433,6 +1468,11 @@ Lint/DisjunctiveAssignmentInConstructor:
1433
1468
  VersionAdded: '0.62'
1434
1469
  VersionChanged: '0.88'
1435
1470
 
1471
+ Lint/DuplicateBranch:
1472
+ Description: Checks that there are no repeated bodies within `if/unless`, `case-when` and `rescue` constructs.
1473
+ Enabled: pending
1474
+ VersionAdded: '1.3'
1475
+
1436
1476
  Lint/DuplicateCaseCondition:
1437
1477
  Description: 'Do not repeat values in case conditionals.'
1438
1478
  Enabled: true
@@ -1440,7 +1480,7 @@ Lint/DuplicateCaseCondition:
1440
1480
 
1441
1481
  Lint/DuplicateElsifCondition:
1442
1482
  Description: 'Do not repeat conditions used in if `elsif`.'
1443
- Enabled: 'pending'
1483
+ Enabled: true
1444
1484
  VersionAdded: '0.88'
1445
1485
 
1446
1486
  Lint/DuplicateHashKey:
@@ -1454,14 +1494,19 @@ Lint/DuplicateMethods:
1454
1494
  Enabled: true
1455
1495
  VersionAdded: '0.29'
1456
1496
 
1497
+ Lint/DuplicateRegexpCharacterClassElement:
1498
+ Description: 'Checks for duplicate elements in Regexp character classes.'
1499
+ Enabled: pending
1500
+ VersionAdded: '1.1'
1501
+
1457
1502
  Lint/DuplicateRequire:
1458
1503
  Description: 'Check for duplicate `require`s and `require_relative`s.'
1459
- Enabled: pending
1504
+ Enabled: true
1460
1505
  VersionAdded: '0.90'
1461
1506
 
1462
1507
  Lint/DuplicateRescueException:
1463
1508
  Description: 'Checks that there are no repeated exceptions used in `rescue` expressions.'
1464
- Enabled: pending
1509
+ Enabled: true
1465
1510
  VersionAdded: '0.89'
1466
1511
 
1467
1512
  Lint/EachWithObjectArgument:
@@ -1473,10 +1518,25 @@ Lint/ElseLayout:
1473
1518
  Description: 'Check for odd code arrangement in an else block.'
1474
1519
  Enabled: true
1475
1520
  VersionAdded: '0.17'
1521
+ VersionChanged: '1.2'
1522
+
1523
+ Lint/EmptyBlock:
1524
+ Description: 'This cop checks for blocks without a body.'
1525
+ Enabled: pending
1526
+ VersionAdded: '1.1'
1527
+ VersionChanged: '1.3'
1528
+ AllowComments: true
1529
+ AllowEmptyLambdas: true
1530
+
1531
+ Lint/EmptyClass:
1532
+ Description: 'Checks for classes and metaclasses without a body.'
1533
+ Enabled: pending
1534
+ VersionAdded: '1.3'
1535
+ AllowComments: false
1476
1536
 
1477
1537
  Lint/EmptyConditionalBody:
1478
1538
  Description: 'This cop checks for the presence of `if`, `elsif` and `unless` branches without a body.'
1479
- Enabled: 'pending'
1539
+ Enabled: true
1480
1540
  AllowComments: true
1481
1541
  VersionAdded: '0.89'
1482
1542
 
@@ -1493,7 +1553,7 @@ Lint/EmptyExpression:
1493
1553
 
1494
1554
  Lint/EmptyFile:
1495
1555
  Description: 'Enforces that Ruby source files are not empty.'
1496
- Enabled: pending
1556
+ Enabled: true
1497
1557
  AllowComments: true
1498
1558
  VersionAdded: '0.90'
1499
1559
 
@@ -1531,7 +1591,7 @@ Lint/FlipFlop:
1531
1591
  Lint/FloatComparison:
1532
1592
  Description: 'Checks for the presence of precise comparison of floating point numbers.'
1533
1593
  StyleGuide: '#float-comparison'
1534
- Enabled: pending
1594
+ Enabled: true
1535
1595
  VersionAdded: '0.89'
1536
1596
 
1537
1597
  Lint/FloatOutOfRange:
@@ -1549,7 +1609,7 @@ Lint/FormatParameterMismatch:
1549
1609
  Lint/HashCompareByIdentity:
1550
1610
  Description: 'Prefer using `Hash#compare_by_identity` than using `object_id` for keys.'
1551
1611
  StyleGuide: '#identity-comparison'
1552
- Enabled: pending
1612
+ Enabled: true
1553
1613
  Safe: false
1554
1614
  VersionAdded: '0.93'
1555
1615
 
@@ -1563,7 +1623,7 @@ Lint/HeredocMethodCallPosition:
1563
1623
 
1564
1624
  Lint/IdentityComparison:
1565
1625
  Description: 'Prefer `equal?` over `==` when comparing `object_id`.'
1566
- Enabled: pending
1626
+ Enabled: true
1567
1627
  StyleGuide: '#identity-comparison'
1568
1628
  VersionAdded: '0.91'
1569
1629
 
@@ -1616,7 +1676,8 @@ Lint/Loop:
1616
1676
  StyleGuide: '#loop-with-break'
1617
1677
  Enabled: true
1618
1678
  VersionAdded: '0.9'
1619
- VersionChanged: '0.89'
1679
+ VersionChanged: '1.3'
1680
+ Safe: false
1620
1681
 
1621
1682
  Lint/MissingCopEnableDirective:
1622
1683
  Description: 'Checks for a `# rubocop:enable` after `# rubocop:disable`.'
@@ -1635,19 +1696,21 @@ Lint/MissingSuper:
1635
1696
  Description: >-
1636
1697
  This cop checks for the presence of constructors and lifecycle callbacks
1637
1698
  without calls to `super`'.
1638
- Enabled: pending
1699
+ Enabled: true
1639
1700
  VersionAdded: '0.89'
1701
+ VersionChanged: '1.4'
1640
1702
 
1641
1703
  Lint/MixedRegexpCaptureTypes:
1642
1704
  Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
1643
- Enabled: pending
1705
+ Enabled: true
1644
1706
  VersionAdded: '0.85'
1645
1707
 
1646
1708
  Lint/MultipleComparison:
1647
1709
  Description: "Use `&&` operator to compare multiple values."
1648
1710
  Enabled: true
1649
1711
  VersionAdded: '0.47'
1650
- VersionChanged: '0.77'
1712
+ VersionChanged: '1.1'
1713
+ AllowMethodComparison: true
1651
1714
 
1652
1715
  Lint/NestedMethodDefinition:
1653
1716
  Description: 'Do not use nested method definitions.'
@@ -1667,6 +1730,11 @@ Lint/NextWithoutAccumulator:
1667
1730
  Enabled: true
1668
1731
  VersionAdded: '0.36'
1669
1732
 
1733
+ Lint/NoReturnInBeginEndBlocks:
1734
+ Description: 'Do not `return` inside `begin..end` blocks in assignment contexts.'
1735
+ Enabled: pending
1736
+ VersionAdded: '1.2'
1737
+
1670
1738
  Lint/NonDeterministicRequireOrder:
1671
1739
  Description: 'Always sort arrays returned by Dir.glob when requiring files.'
1672
1740
  Enabled: true
@@ -1682,8 +1750,12 @@ Lint/NumberConversion:
1682
1750
  Description: 'Checks unsafe usage of number conversion methods.'
1683
1751
  Enabled: false
1684
1752
  VersionAdded: '0.53'
1685
- VersionChanged: '0.70'
1753
+ VersionChanged: '1.1'
1686
1754
  SafeAutoCorrect: false
1755
+ IgnoredMethods: []
1756
+ IgnoredClasses:
1757
+ - Time
1758
+ - DateTime
1687
1759
 
1688
1760
  Lint/OrderedMagicComments:
1689
1761
  Description: 'Checks the proper ordering of magic comments and whether a magic comment is not placed before a shebang.'
@@ -1692,7 +1764,7 @@ Lint/OrderedMagicComments:
1692
1764
 
1693
1765
  Lint/OutOfRangeRegexpRef:
1694
1766
  Description: 'Checks for out of range reference for Regexp because it always returns nil.'
1695
- Enabled: pending
1767
+ Enabled: true
1696
1768
  Safe: false
1697
1769
  VersionAdded: '0.89'
1698
1770
 
@@ -1721,7 +1793,7 @@ Lint/PercentSymbolArray:
1721
1793
  Lint/RaiseException:
1722
1794
  Description: Checks for `raise` or `fail` statements which are raising `Exception` class.
1723
1795
  StyleGuide: '#raise-exception'
1724
- Enabled: pending
1796
+ Enabled: true
1725
1797
  Safe: false
1726
1798
  VersionAdded: '0.81'
1727
1799
  VersionChanged: '0.86'
@@ -1755,18 +1827,16 @@ Lint/RedundantRequireStatement:
1755
1827
 
1756
1828
  Lint/RedundantSafeNavigation:
1757
1829
  Description: 'Checks for redundant safe navigation calls.'
1758
- Enabled: pending
1830
+ Enabled: true
1759
1831
  VersionAdded: '0.93'
1832
+ AllowedMethods:
1833
+ - instance_of?
1834
+ - kind_of?
1835
+ - is_a?
1836
+ - eql?
1837
+ - respond_to?
1838
+ - equal?
1760
1839
  Safe: false
1761
- IgnoredMethods:
1762
- - to_c
1763
- - to_f
1764
- - to_i
1765
- - to_r
1766
- - rationalize
1767
- - public_send
1768
- - send
1769
- - __send__
1770
1840
 
1771
1841
  Lint/RedundantSplatExpansion:
1772
1842
  Description: 'Checks for splat unnecessarily being called on literals.'
@@ -1810,7 +1880,7 @@ Lint/RescueException:
1810
1880
  StyleGuide: '#no-blind-rescues'
1811
1881
  Enabled: true
1812
1882
  VersionAdded: '0.9'
1813
- VersionChanged: '0.27.1'
1883
+ VersionChanged: '0.27'
1814
1884
 
1815
1885
  Lint/RescueType:
1816
1886
  Description: 'Avoid rescuing from non constants that could result in a `TypeError`.'
@@ -1864,7 +1934,7 @@ Lint/ScriptPermission:
1864
1934
 
1865
1935
  Lint/SelfAssignment:
1866
1936
  Description: 'Checks for self-assignments.'
1867
- Enabled: pending
1937
+ Enabled: true
1868
1938
  VersionAdded: '0.89'
1869
1939
 
1870
1940
  Lint/SendWithMixinArgument:
@@ -1895,7 +1965,7 @@ Lint/ShadowingOuterLocalVariable:
1895
1965
 
1896
1966
  Lint/StructNewOverride:
1897
1967
  Description: 'Disallow overriding the `Struct` built-in methods via `Struct.new`.'
1898
- Enabled: pending
1968
+ Enabled: true
1899
1969
  VersionAdded: '0.81'
1900
1970
 
1901
1971
  Lint/SuppressedException:
@@ -1912,6 +1982,11 @@ Lint/Syntax:
1912
1982
  VersionAdded: '0.9'
1913
1983
 
1914
1984
 
1985
+ Lint/ToEnumArguments:
1986
+ Description: 'This cop ensures that `to_enum`/`enum_for`, called for the current method, has correct arguments.'
1987
+ Enabled: pending
1988
+ VersionAdded: '1.1'
1989
+
1915
1990
  Lint/ToJSON:
1916
1991
  Description: 'Ensure #to_json includes an optional argument.'
1917
1992
  Enabled: true
@@ -1919,12 +1994,12 @@ Lint/ToJSON:
1919
1994
 
1920
1995
  Lint/TopLevelReturnWithArgument:
1921
1996
  Description: 'This cop detects top level return statements with argument.'
1922
- Enabled: 'pending'
1997
+ Enabled: true
1923
1998
  VersionAdded: '0.89'
1924
1999
 
1925
2000
  Lint/TrailingCommaInAttributeDeclaration:
1926
2001
  Description: 'This cop checks for trailing commas in attribute declarations.'
1927
- Enabled: pending
2002
+ Enabled: true
1928
2003
  VersionAdded: '0.90'
1929
2004
 
1930
2005
  Lint/UnderscorePrefixedVariableName:
@@ -1933,11 +2008,34 @@ Lint/UnderscorePrefixedVariableName:
1933
2008
  VersionAdded: '0.21'
1934
2009
  AllowKeywordBlockArguments: false
1935
2010
 
2011
+ Lint/UnexpectedBlockArity:
2012
+ Description: 'Looks for blocks that have fewer arguments that the calling method expects.'
2013
+ Enabled: pending
2014
+ Safe: false
2015
+ VersionAdded: '1.5'
2016
+ Methods:
2017
+ chunk_while: 2
2018
+ each_with_index: 2
2019
+ each_with_object: 2
2020
+ inject: 2
2021
+ max: 2
2022
+ min: 2
2023
+ minmax: 2
2024
+ reduce: 2
2025
+ slice_when: 2
2026
+ sort: 2
2027
+
1936
2028
  Lint/UnifiedInteger:
1937
2029
  Description: 'Use Integer instead of Fixnum or Bignum.'
1938
2030
  Enabled: true
1939
2031
  VersionAdded: '0.43'
1940
2032
 
2033
+ Lint/UnmodifiedReduceAccumulator:
2034
+ Description: Checks for `reduce` or `inject` blocks that do not update the accumulator each iteration.
2035
+ Enabled: pending
2036
+ VersionAdded: '1.1'
2037
+ VersionChanged: '1.5'
2038
+
1941
2039
  Lint/UnreachableCode:
1942
2040
  Description: 'Unreachable code.'
1943
2041
  Enabled: true
@@ -1945,7 +2043,7 @@ Lint/UnreachableCode:
1945
2043
 
1946
2044
  Lint/UnreachableLoop:
1947
2045
  Description: 'This cop checks for loops that will have at most one iteration.'
1948
- Enabled: pending
2046
+ Enabled: true
1949
2047
  VersionAdded: '0.89'
1950
2048
 
1951
2049
  Lint/UnusedBlockArgument:
@@ -2004,7 +2102,7 @@ Lint/UselessElseWithoutRescue:
2004
2102
 
2005
2103
  Lint/UselessMethodDefinition:
2006
2104
  Description: 'Checks for useless method definitions.'
2007
- Enabled: pending
2105
+ Enabled: true
2008
2106
  VersionAdded: '0.90'
2009
2107
  Safe: false
2010
2108
  AllowComments: true
@@ -2012,13 +2110,14 @@ Lint/UselessMethodDefinition:
2012
2110
  Lint/UselessSetterCall:
2013
2111
  Description: 'Checks for useless setter call to a local variable.'
2014
2112
  Enabled: true
2113
+ SafeAutoCorrect: false
2015
2114
  VersionAdded: '0.13'
2016
- VersionChanged: '0.80'
2115
+ VersionChanged: '1.2'
2017
2116
  Safe: false
2018
2117
 
2019
2118
  Lint/UselessTimes:
2020
2119
  Description: 'Checks for useless `Integer#times` calls.'
2021
- Enabled: pending
2120
+ Enabled: true
2022
2121
  VersionAdded: '0.91'
2023
2122
  Safe: false
2024
2123
 
@@ -2039,21 +2138,23 @@ Metrics/AbcSize:
2039
2138
  - https://en.wikipedia.org/wiki/ABC_Software_Metric
2040
2139
  Enabled: true
2041
2140
  VersionAdded: '0.27'
2042
- VersionChanged: '0.81'
2141
+ VersionChanged: '1.5'
2043
2142
  # The ABC size is a calculated magnitude, so this number can be an Integer or
2044
2143
  # a Float.
2045
2144
  IgnoredMethods: []
2145
+ CountRepeatedAttributes: true
2046
2146
  Max: 17
2047
2147
 
2048
2148
  Metrics/BlockLength:
2049
2149
  Description: 'Avoid long blocks with many lines.'
2050
2150
  Enabled: true
2051
2151
  VersionAdded: '0.44'
2052
- VersionChanged: '0.87'
2152
+ VersionChanged: '1.5'
2053
2153
  CountComments: false # count full line comments?
2054
2154
  Max: 25
2055
2155
  CountAsOne: []
2056
- ExcludedMethods:
2156
+ ExcludedMethods: [] # deprecated, retained for backwards compatibility
2157
+ IgnoredMethods:
2057
2158
  # By default, exclude the `#refine` method, as it tends to have larger
2058
2159
  # associated blocks.
2059
2160
  - refine
@@ -2094,11 +2195,12 @@ Metrics/MethodLength:
2094
2195
  StyleGuide: '#short-methods'
2095
2196
  Enabled: true
2096
2197
  VersionAdded: '0.25'
2097
- VersionChanged: '0.87'
2198
+ VersionChanged: '1.5'
2098
2199
  CountComments: false # count full line comments?
2099
2200
  Max: 10
2100
2201
  CountAsOne: []
2101
- ExcludedMethods: []
2202
+ ExcludedMethods: [] # deprecated, retained for backwards compatibility
2203
+ IgnoredMethods: []
2102
2204
 
2103
2205
  Metrics/ModuleLength:
2104
2206
  Description: 'Avoid modules longer than 100 lines of code.'
@@ -2114,8 +2216,10 @@ Metrics/ParameterLists:
2114
2216
  StyleGuide: '#too-many-params'
2115
2217
  Enabled: true
2116
2218
  VersionAdded: '0.25'
2219
+ VersionChanged: '1.5'
2117
2220
  Max: 5
2118
2221
  CountKeywordArgs: true
2222
+ MaxOptionalParameters: 3
2119
2223
 
2120
2224
  Metrics/PerceivedComplexity:
2121
2225
  Description: >-
@@ -2157,6 +2261,7 @@ Naming/BinaryOperatorParameterName:
2157
2261
  StyleGuide: '#other-arg'
2158
2262
  Enabled: true
2159
2263
  VersionAdded: '0.50'
2264
+ VersionChanged: '1.2'
2160
2265
 
2161
2266
  Naming/BlockParameterName:
2162
2267
  Description: >-
@@ -2263,6 +2368,7 @@ Naming/HeredocDelimiterCase:
2263
2368
  StyleGuide: '#heredoc-delimiters'
2264
2369
  Enabled: true
2265
2370
  VersionAdded: '0.50'
2371
+ VersionChanged: '1.2'
2266
2372
  EnforcedStyle: uppercase
2267
2373
  SupportedStyles:
2268
2374
  - lowercase
@@ -2281,7 +2387,7 @@ Naming/MemoizedInstanceVariableName:
2281
2387
  Memoized method name should match memo instance variable name.
2282
2388
  Enabled: true
2283
2389
  VersionAdded: '0.53'
2284
- VersionChanged: '0.58'
2390
+ VersionChanged: '1.2'
2285
2391
  EnforcedStyleForLeadingUnderscores: disallowed
2286
2392
  SupportedStylesForLeadingUnderscores:
2287
2393
  - disallowed
@@ -2379,14 +2485,25 @@ Naming/VariableName:
2379
2485
  - camelCase
2380
2486
 
2381
2487
  Naming/VariableNumber:
2382
- Description: 'Use the configured style when numbering variables.'
2488
+ Description: 'Use the configured style when numbering symbols, methods and variables.'
2489
+ StyleGuide: '#snake-case-symbols-methods-vars-with-numbers'
2383
2490
  Enabled: true
2384
2491
  VersionAdded: '0.50'
2492
+ VersionChanged: '1.4'
2385
2493
  EnforcedStyle: normalcase
2386
2494
  SupportedStyles:
2387
2495
  - snake_case
2388
2496
  - normalcase
2389
2497
  - non_integer
2498
+ CheckMethodNames: true
2499
+ CheckSymbols: true
2500
+ AllowedIdentifiers:
2501
+ - capture3 # Open3.capture3
2502
+ - iso8601 # Time#iso8601
2503
+ - rfc1123_date # CGI.rfc1123_date
2504
+ - rfc822 # Time#rfc822
2505
+ - rfc2822 # Time#rfc2822
2506
+ - rfc3339 # DateTime.rfc3339
2390
2507
 
2391
2508
  #################### Security ##############################
2392
2509
 
@@ -2417,9 +2534,10 @@ Security/MarshalLoad:
2417
2534
  VersionAdded: '0.47'
2418
2535
 
2419
2536
  Security/Open:
2420
- Description: 'The use of Kernel#open represents a serious security risk.'
2537
+ Description: 'The use of `Kernel#open` and `URI.open` represent a serious security risk.'
2421
2538
  Enabled: true
2422
2539
  VersionAdded: '0.53'
2540
+ VersionChanged: '1.0'
2423
2541
  Safe: false
2424
2542
 
2425
2543
  Security/YAMLLoad:
@@ -2446,7 +2564,7 @@ Style/AccessModifierDeclarations:
2446
2564
 
2447
2565
  Style/AccessorGrouping:
2448
2566
  Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
2449
- Enabled: 'pending'
2567
+ Enabled: true
2450
2568
  VersionAdded: '0.87'
2451
2569
  EnforcedStyle: grouped
2452
2570
  SupportedStyles:
@@ -2479,6 +2597,13 @@ Style/AndOr:
2479
2597
  - always
2480
2598
  - conditionals
2481
2599
 
2600
+ Style/ArgumentsForwarding:
2601
+ Description: 'Use arguments forwarding.'
2602
+ StyleGuide: '#arguments-forwarding'
2603
+ Enabled: pending
2604
+ AllowOnlyRestArgument: true
2605
+ VersionAdded: '1.1'
2606
+
2482
2607
  Style/ArrayCoercion:
2483
2608
  Description: >-
2484
2609
  Use Array() instead of explicit Array check or [*var], when dealing
@@ -2535,7 +2660,7 @@ Style/BisectedAttrAccessor:
2535
2660
  Description: >-
2536
2661
  Checks for places where `attr_reader` and `attr_writer`
2537
2662
  for the same method can be combined into single `attr_accessor`.
2538
- Enabled: 'pending'
2663
+ Enabled: true
2539
2664
  VersionAdded: '0.87'
2540
2665
 
2541
2666
  Style/BlockComments:
@@ -2674,7 +2799,7 @@ Style/CaseEquality:
2674
2799
  Style/CaseLikeIf:
2675
2800
  Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
2676
2801
  StyleGuide: '#case-vs-if-else'
2677
- Enabled: 'pending'
2802
+ Enabled: true
2678
2803
  Safe: false
2679
2804
  VersionAdded: '0.88'
2680
2805
 
@@ -2727,7 +2852,7 @@ Style/ClassCheck:
2727
2852
  Style/ClassEqualityComparison:
2728
2853
  Description: 'Enforces the use of `Object#instance_of?` instead of class comparison for equality.'
2729
2854
  StyleGuide: '#instance-of-vs-class-comparison'
2730
- Enabled: pending
2855
+ Enabled: true
2731
2856
  VersionAdded: '0.93'
2732
2857
  IgnoredMethods:
2733
2858
  - ==
@@ -2757,6 +2882,13 @@ Style/ClassVars:
2757
2882
  Enabled: true
2758
2883
  VersionAdded: '0.13'
2759
2884
 
2885
+ Style/CollectionCompact:
2886
+ Description: 'Use `{Array,Hash}#{compact,compact!}` instead of custom logic to reject nils.'
2887
+ Enabled: pending
2888
+ Safe: false
2889
+ VersionAdded: '1.2'
2890
+ VersionChanged: '1.3'
2891
+
2760
2892
  # Align with the style guide.
2761
2893
  Style/CollectionMethods:
2762
2894
  Description: 'Preferred collection methods.'
@@ -2795,7 +2927,7 @@ Style/CombinableLoops:
2795
2927
  Description: >-
2796
2928
  Checks for places where multiple consecutive loops over the same data
2797
2929
  can be combined into a single loop.
2798
- Enabled: pending
2930
+ Enabled: true
2799
2931
  Safe: false
2800
2932
  VersionAdded: '0.90'
2801
2933
 
@@ -2820,17 +2952,18 @@ Style/CommandLiteral:
2820
2952
  Style/CommentAnnotation:
2821
2953
  Description: >-
2822
2954
  Checks formatting of special comments
2823
- (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
2955
+ (TODO, FIXME, OPTIMIZE, HACK, REVIEW, NOTE).
2824
2956
  StyleGuide: '#annotate-keywords'
2825
2957
  Enabled: true
2826
2958
  VersionAdded: '0.10'
2827
- VersionChanged: '0.31'
2959
+ VersionChanged: '1.3'
2828
2960
  Keywords:
2829
2961
  - TODO
2830
2962
  - FIXME
2831
2963
  - OPTIMIZE
2832
2964
  - HACK
2833
2965
  - REVIEW
2966
+ - NOTE
2834
2967
 
2835
2968
  Style/CommentedKeyword:
2836
2969
  Description: 'Do not place comments on the same line as certain keywords.'
@@ -2919,6 +3052,15 @@ Style/DisableCopsWithinSourceCodeDirective:
2919
3052
  Enabled: false
2920
3053
  VersionAdded: '0.82'
2921
3054
 
3055
+ Style/DocumentDynamicEvalDefinition:
3056
+ Description: >-
3057
+ When using `class_eval` (or other `eval`) with string interpolation,
3058
+ add a comment block showing its appearance if interpolated.
3059
+ StyleGuide: '#eval-comment-docs'
3060
+ Enabled: pending
3061
+ VersionAdded: '1.1'
3062
+ VersionChanged: '1.3'
3063
+
2922
3064
  Style/Documentation:
2923
3065
  Description: 'Document classes and non-namespace modules.'
2924
3066
  Enabled: true
@@ -2946,7 +3088,7 @@ Style/DoubleNegation:
2946
3088
  StyleGuide: '#no-bang-bang'
2947
3089
  Enabled: true
2948
3090
  VersionAdded: '0.19'
2949
- VersionChanged: '0.84'
3091
+ VersionChanged: '1.2'
2950
3092
  EnforcedStyle: allowed_in_returns
2951
3093
  SafeAutoCorrect: false
2952
3094
  SupportedStyles:
@@ -3048,7 +3190,7 @@ Style/ExplicitBlockArgument:
3048
3190
  Consider using explicit block argument to avoid writing block literal
3049
3191
  that just passes its arguments to another block.
3050
3192
  StyleGuide: '#block-argument'
3051
- Enabled: pending
3193
+ Enabled: true
3052
3194
  # May change the yielding arity.
3053
3195
  Safe: false
3054
3196
  VersionAdded: '0.89'
@@ -3056,7 +3198,7 @@ Style/ExplicitBlockArgument:
3056
3198
  Style/ExponentialNotation:
3057
3199
  Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
3058
3200
  StyleGuide: '#exponential-notation'
3059
- Enabled: pending
3201
+ Enabled: true
3060
3202
  VersionAdded: '0.82'
3061
3203
  EnforcedStyle: scientific
3062
3204
  SupportedStyles:
@@ -3111,8 +3253,12 @@ Style/FormatStringToken:
3111
3253
  # Prefer simple looking "template" style tokens like `%{name}`, `%{age}`
3112
3254
  - template
3113
3255
  - unannotated
3256
+ # `MaxUnannotatedPlaceholdersAllowed` defines the number of `unannotated`
3257
+ # style token in a format string to be allowed when enforced style is not
3258
+ # `unannotated`.
3259
+ MaxUnannotatedPlaceholdersAllowed: 1
3114
3260
  VersionAdded: '0.49'
3115
- VersionChanged: '0.75'
3261
+ VersionChanged: '1.0'
3116
3262
 
3117
3263
  Style/FrozenStringLiteralComment:
3118
3264
  Description: >-
@@ -3139,7 +3285,7 @@ Style/FrozenStringLiteralComment:
3139
3285
  Style/GlobalStdStream:
3140
3286
  Description: 'Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.'
3141
3287
  StyleGuide: '#global-stdout'
3142
- Enabled: pending
3288
+ Enabled: true
3143
3289
  VersionAdded: '0.89'
3144
3290
  SafeAutoCorrect: false
3145
3291
 
@@ -3167,7 +3313,7 @@ Style/HashAsLastArrayItem:
3167
3313
  Checks for presence or absence of braces around hash literal as a last
3168
3314
  array item depending on configuration.
3169
3315
  StyleGuide: '#hash-literal-as-last-array-item'
3170
- Enabled: 'pending'
3316
+ Enabled: true
3171
3317
  VersionAdded: '0.88'
3172
3318
  EnforcedStyle: braces
3173
3319
  SupportedStyles:
@@ -3177,7 +3323,7 @@ Style/HashAsLastArrayItem:
3177
3323
  Style/HashEachMethods:
3178
3324
  Description: 'Use Hash#each_key and Hash#each_value.'
3179
3325
  StyleGuide: '#hash-each'
3180
- Enabled: pending
3326
+ Enabled: true
3181
3327
  VersionAdded: '0.80'
3182
3328
  Safe: false
3183
3329
 
@@ -3185,7 +3331,7 @@ Style/HashLikeCase:
3185
3331
  Description: >-
3186
3332
  Checks for places where `case-when` represents a simple 1:1
3187
3333
  mapping and can be replaced with a hash lookup.
3188
- Enabled: 'pending'
3334
+ Enabled: true
3189
3335
  VersionAdded: '0.88'
3190
3336
  # `MinBranchesCount` defines the number of branches `case` needs to have
3191
3337
  # to trigger this cop
@@ -3216,14 +3362,14 @@ Style/HashSyntax:
3216
3362
 
3217
3363
  Style/HashTransformKeys:
3218
3364
  Description: 'Prefer `transform_keys` over `each_with_object`, `map`, or `to_h`.'
3219
- Enabled: 'pending'
3365
+ Enabled: true
3220
3366
  VersionAdded: '0.80'
3221
3367
  VersionChanged: '0.90'
3222
3368
  Safe: false
3223
3369
 
3224
3370
  Style/HashTransformValues:
3225
3371
  Description: 'Prefer `transform_values` over `each_with_object`, `map`, or `to_h`.'
3226
- Enabled: 'pending'
3372
+ Enabled: true
3227
3373
  VersionAdded: '0.80'
3228
3374
  VersionChanged: '0.90'
3229
3375
  Safe: false
@@ -3241,6 +3387,7 @@ Style/IfInsideElse:
3241
3387
  Enabled: true
3242
3388
  AllowIfModifier: false
3243
3389
  VersionAdded: '0.36'
3390
+ VersionChanged: '1.3'
3244
3391
 
3245
3392
  Style/IfUnlessModifier:
3246
3393
  Description: >-
@@ -3273,12 +3420,14 @@ Style/ImplicitRuntimeError:
3273
3420
  VersionAdded: '0.41'
3274
3421
 
3275
3422
  Style/InfiniteLoop:
3276
- Description: 'Use Kernel#loop for infinite loops.'
3423
+ Description: >-
3424
+ Use Kernel#loop for infinite loops.
3425
+ This cop is unsafe in the body may raise a `StopIteration` exception.
3426
+ Safe: false
3277
3427
  StyleGuide: '#infinite-loop'
3278
3428
  Enabled: true
3279
3429
  VersionAdded: '0.26'
3280
3430
  VersionChanged: '0.61'
3281
- SafeAutoCorrect: true
3282
3431
 
3283
3432
  Style/InlineComment:
3284
3433
  Description: 'Avoid trailing inline comments.'
@@ -3330,7 +3479,7 @@ Style/IpAddresses:
3330
3479
  Style/KeywordParametersOrder:
3331
3480
  Description: 'Enforces that optional keyword parameters are placed at the end of the parameters list.'
3332
3481
  StyleGuide: '#keyword-parameters-order'
3333
- Enabled: pending
3482
+ Enabled: true
3334
3483
  VersionAdded: '0.90'
3335
3484
 
3336
3485
  Style/Lambda:
@@ -3532,6 +3681,7 @@ Style/MultipleComparison:
3532
3681
  use Array#include? instead.
3533
3682
  Enabled: true
3534
3683
  VersionAdded: '0.49'
3684
+ VersionChanged: '1.1'
3535
3685
 
3536
3686
  Style/MutableConstant:
3537
3687
  Description: 'Do not assign mutable objects to constants.'
@@ -3566,6 +3716,13 @@ Style/NegatedIf:
3566
3716
  - prefix
3567
3717
  - postfix
3568
3718
 
3719
+ Style/NegatedIfElseCondition:
3720
+ Description: >-
3721
+ This cop checks for uses of `if-else` and ternary operators with a negated condition
3722
+ which can be simplified by inverting condition and swapping branches.
3723
+ Enabled: pending
3724
+ VersionAdded: '1.2'
3725
+
3569
3726
  Style/NegatedUnless:
3570
3727
  Description: 'Favor if over unless for negative conditions.'
3571
3728
  StyleGuide: '#if-for-negatives'
@@ -3653,6 +3810,11 @@ Style/NilComparison:
3653
3810
  - predicate
3654
3811
  - comparison
3655
3812
 
3813
+ Style/NilLambda:
3814
+ Description: 'Prefer `-> {}` to `-> { nil }`.'
3815
+ Enabled: pending
3816
+ VersionAdded: '1.3'
3817
+
3656
3818
  Style/NonNilCheck:
3657
3819
  Description: 'Checks for redundant nil checks.'
3658
3820
  StyleGuide: '#no-non-nil-checks'
@@ -3755,7 +3917,7 @@ Style/OptionalArguments:
3755
3917
  Style/OptionalBooleanParameter:
3756
3918
  Description: 'Use keyword arguments when defining method with boolean argument.'
3757
3919
  StyleGuide: '#boolean-keyword-arguments'
3758
- Enabled: pending
3920
+ Enabled: true
3759
3921
  Safe: false
3760
3922
  VersionAdded: '0.89'
3761
3923
  AllowedMethods:
@@ -3802,7 +3964,7 @@ Style/PercentLiteralDelimiters:
3802
3964
  '%r': '{}'
3803
3965
  '%w': '[]'
3804
3966
  '%W': '[]'
3805
- VersionChanged: '0.48.1'
3967
+ VersionChanged: '0.48'
3806
3968
 
3807
3969
  Style/PercentQLiterals:
3808
3970
  Description: 'Checks if uses of %Q/%q match the configured preference.'
@@ -3843,11 +4005,12 @@ Style/RaiseArgs:
3843
4005
  StyleGuide: '#exception-class-messages'
3844
4006
  Enabled: true
3845
4007
  VersionAdded: '0.14'
3846
- VersionChanged: '0.40'
4008
+ VersionChanged: '1.2'
3847
4009
  EnforcedStyle: exploded
3848
4010
  SupportedStyles:
3849
4011
  - compact # raise Exception.new(msg)
3850
4012
  - exploded # raise Exception, msg
4013
+ AllowedCompactTypes: []
3851
4014
 
3852
4015
  Style/RandomWithOffset:
3853
4016
  Description: >-
@@ -3857,9 +4020,20 @@ Style/RandomWithOffset:
3857
4020
  Enabled: true
3858
4021
  VersionAdded: '0.52'
3859
4022
 
4023
+ Style/RedundantArgument:
4024
+ Description: 'Check for a redundant argument passed to certain methods.'
4025
+ Enabled: pending
4026
+ Safe: false
4027
+ VersionAdded: '1.4'
4028
+ Methods:
4029
+ # Array#join
4030
+ join: ''
4031
+ # String#split
4032
+ split: ' '
4033
+
3860
4034
  Style/RedundantAssignment:
3861
4035
  Description: 'Checks for redundant assignment before returning.'
3862
- Enabled: 'pending'
4036
+ Enabled: true
3863
4037
  VersionAdded: '0.87'
3864
4038
 
3865
4039
  Style/RedundantBegin:
@@ -3896,7 +4070,7 @@ Style/RedundantFetchBlock:
3896
4070
  Use `fetch(key, value)` instead of `fetch(key) { value }`
3897
4071
  when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
3898
4072
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
3899
- Enabled: 'pending'
4073
+ Enabled: true
3900
4074
  Safe: false
3901
4075
  # If enabled, this cop will autocorrect usages of
3902
4076
  # `fetch` being called with block returning a constant.
@@ -3909,7 +4083,7 @@ Style/RedundantFileExtensionInRequire:
3909
4083
  Checks for the presence of superfluous `.rb` extension in
3910
4084
  the filename provided to `require` and `require_relative`.
3911
4085
  StyleGuide: '#no-explicit-rb-to-require'
3912
- Enabled: 'pending'
4086
+ Enabled: true
3913
4087
  VersionAdded: '0.88'
3914
4088
 
3915
4089
  Style/RedundantFreeze:
@@ -3936,12 +4110,12 @@ Style/RedundantPercentQ:
3936
4110
 
3937
4111
  Style/RedundantRegexpCharacterClass:
3938
4112
  Description: 'Checks for unnecessary single-element Regexp character classes.'
3939
- Enabled: pending
4113
+ Enabled: true
3940
4114
  VersionAdded: '0.85'
3941
4115
 
3942
4116
  Style/RedundantRegexpEscape:
3943
4117
  Description: 'Checks for redundant escapes in Regexps.'
3944
- Enabled: pending
4118
+ Enabled: true
3945
4119
  VersionAdded: '0.85'
3946
4120
 
3947
4121
  Style/RedundantReturn:
@@ -3962,7 +4136,7 @@ Style/RedundantSelf:
3962
4136
 
3963
4137
  Style/RedundantSelfAssignment:
3964
4138
  Description: 'Checks for places where redundant assignments are made for in place modification methods.'
3965
- Enabled: pending
4139
+ Enabled: true
3966
4140
  Safe: false
3967
4141
  VersionAdded: '0.90'
3968
4142
 
@@ -4090,7 +4264,7 @@ Style/SignalException:
4090
4264
 
4091
4265
  Style/SingleArgumentDig:
4092
4266
  Description: 'Avoid using single argument dig method.'
4093
- Enabled: pending
4267
+ Enabled: true
4094
4268
  VersionAdded: '0.89'
4095
4269
  Safe: false
4096
4270
 
@@ -4117,7 +4291,7 @@ Style/SingleLineMethods:
4117
4291
 
4118
4292
  Style/SlicingWithRange:
4119
4293
  Description: 'Checks array slicing is done with endless ranges when suitable.'
4120
- Enabled: pending
4294
+ Enabled: true
4121
4295
  VersionAdded: '0.83'
4122
4296
  Safe: false
4123
4297
 
@@ -4125,8 +4299,9 @@ Style/SoleNestedConditional:
4125
4299
  Description: >-
4126
4300
  Finds sole nested conditional nodes
4127
4301
  which can be merged into outer conditional node.
4128
- Enabled: pending
4302
+ Enabled: true
4129
4303
  VersionAdded: '0.89'
4304
+ VersionChanged: '1.5'
4130
4305
  AllowModifier: false
4131
4306
 
4132
4307
  Style/SpecialGlobalVars:
@@ -4151,6 +4326,13 @@ Style/StabbyLambdaParentheses:
4151
4326
  - require_parentheses
4152
4327
  - require_no_parentheses
4153
4328
 
4329
+ Style/StaticClass:
4330
+ Description: 'Prefer modules to classes with only class methods.'
4331
+ StyleGuide: '#modules-vs-classes'
4332
+ Enabled: false
4333
+ Safe: false
4334
+ VersionAdded: '1.3'
4335
+
4154
4336
  Style/StderrPuts:
4155
4337
  Description: 'Use `warn` instead of `$stderr.puts`.'
4156
4338
  StyleGuide: '#warn'
@@ -4160,7 +4342,7 @@ Style/StderrPuts:
4160
4342
  Style/StringConcatenation:
4161
4343
  Description: 'Checks for places where string concatenation can be replaced with string interpolation.'
4162
4344
  StyleGuide: '#string-interpolation'
4163
- Enabled: pending
4345
+ Enabled: true
4164
4346
  Safe: false
4165
4347
  VersionAdded: '0.89'
4166
4348
 
@@ -4201,7 +4383,7 @@ Style/StringMethods:
4201
4383
  Description: 'Checks if configured preferred methods are used over non-preferred.'
4202
4384
  Enabled: false
4203
4385
  VersionAdded: '0.34'
4204
- VersionChanged: '0.34.2'
4386
+ VersionChanged: '0.34'
4205
4387
  # Mapping from undesired method to desired_method
4206
4388
  # e.g. to use `to_sym` over `intern`:
4207
4389
  #
@@ -4223,6 +4405,13 @@ Style/StructInheritance:
4223
4405
  VersionAdded: '0.29'
4224
4406
  VersionChanged: '0.86'
4225
4407
 
4408
+ Style/SwapValues:
4409
+ Description: 'This cop enforces the use of shorthand-style swapping of 2 variables.'
4410
+ StyleGuide: '#values-swapping'
4411
+ Enabled: pending
4412
+ VersionAdded: '1.1'
4413
+ SafeAutoCorrect: false
4414
+
4226
4415
  Style/SymbolArray:
4227
4416
  Description: 'Use %i or %I for arrays of symbols.'
4228
4417
  StyleGuide: '#percent-i'
@@ -4245,7 +4434,7 @@ Style/SymbolProc:
4245
4434
  Enabled: true
4246
4435
  Safe: false
4247
4436
  VersionAdded: '0.26'
4248
- VersionChanged: '0.64'
4437
+ VersionChanged: '1.5'
4249
4438
  # A list of method names to be ignored by the check.
4250
4439
  # The names should be fairly unique, otherwise you'll end up ignoring lots of code.
4251
4440
  IgnoredMethods:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Chefstyle
3
- VERSION = "1.4.4"
4
- RUBOCOP_VERSION = "0.93.0"
3
+ VERSION = "1.5.6"
4
+ RUBOCOP_VERSION = "1.5.0"
5
5
  end
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRuby
22
+ module Ruby
23
23
  # Rubygems does not need to be required in a Gemspec. It's already loaded out of the box in Ruby now.
24
24
  class GemspecRequireRubygems < Base
25
25
  extend RuboCop::Cop::AutoCorrector
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRuby
22
+ module Ruby
23
23
  # net/https is deprecated and just includes net/http and openssl. We should include those directly instead.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRuby
22
+ module Ruby
23
23
  # Pass options to shell_out helpers without the brackets to avoid Ruby 2.7 deprecation warnings.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRuby
22
+ module Ruby
23
23
  # Rubygems is VERY slow to require gems even if they've already been loaded. To work around this
24
24
  # wrap your require statement with an `if defined?()` check.
25
25
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chefstyle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.4
4
+ version: 1.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Software, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-08 00:00:00.000000000 Z
11
+ date: 2020-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.93.0
19
+ version: 1.5.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.93.0
26
+ version: 1.5.0
27
27
  description:
28
28
  email:
29
29
  - oss@chef.io