chefstyle 1.4.5 → 1.5.7

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: 47af66209187f3a802f47d1f8ff8288aab5ddc78a608217b46d7ae18e58d7c47
4
- data.tar.gz: 765e364cacf5e1e600f47be32c9ff0fdd42a7963e2c7ceaed7c6afaa75cdd718
3
+ metadata.gz: 81eae99d4d4720c3b5fe9eb983ec9ea96a6bd875ad544d6cdef0eb14b38fab6a
4
+ data.tar.gz: a699c9cc4ce4a50c290f3a4c10ba9e0b1744eac6e0a810fd6b65f500e5d3ae87
5
5
  SHA512:
6
- metadata.gz: 65645e67536a598db99d8d4c91440cee1bdc9473f01ea251f4c7544e1d864f19eaa041c84c437b2254cf7cf7fe6be28e3817874e0bcfcb9d0e20b411ce55ab12
7
- data.tar.gz: c5d93ab780c5cd2ed2fccef4156870d8b2d045aa95cd0a2f45934f7fdc780702fd2f6d3c968d0f72fdec5475a59d4b847c83d14f5abd7b9177cc1ab2d4014acc
6
+ metadata.gz: a6db95fd2c908acec863ecc7ce92f7701446741ac0ac51844ab1ec17bf6ce7607c0e9ec8cdd73ee59d9305ee91ada32d58862d639327ff578e3c8a82f9515fbb
7
+ data.tar.gz: d20b03025fbcea9f8f05b58ab2164bc6ddd6864b90f43df4f3c10dad463cb3530bc809f74bef8c9a25effdcf90c5f055fe5d1272f458fcbcf9ee4eba61b6616d
@@ -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,7 +1827,7 @@ 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'
1760
1832
  AllowedMethods:
1761
1833
  - instance_of?
@@ -1808,7 +1880,7 @@ Lint/RescueException:
1808
1880
  StyleGuide: '#no-blind-rescues'
1809
1881
  Enabled: true
1810
1882
  VersionAdded: '0.9'
1811
- VersionChanged: '0.27.1'
1883
+ VersionChanged: '0.27'
1812
1884
 
1813
1885
  Lint/RescueType:
1814
1886
  Description: 'Avoid rescuing from non constants that could result in a `TypeError`.'
@@ -1862,7 +1934,7 @@ Lint/ScriptPermission:
1862
1934
 
1863
1935
  Lint/SelfAssignment:
1864
1936
  Description: 'Checks for self-assignments.'
1865
- Enabled: pending
1937
+ Enabled: true
1866
1938
  VersionAdded: '0.89'
1867
1939
 
1868
1940
  Lint/SendWithMixinArgument:
@@ -1893,7 +1965,7 @@ Lint/ShadowingOuterLocalVariable:
1893
1965
 
1894
1966
  Lint/StructNewOverride:
1895
1967
  Description: 'Disallow overriding the `Struct` built-in methods via `Struct.new`.'
1896
- Enabled: pending
1968
+ Enabled: true
1897
1969
  VersionAdded: '0.81'
1898
1970
 
1899
1971
  Lint/SuppressedException:
@@ -1910,6 +1982,11 @@ Lint/Syntax:
1910
1982
  VersionAdded: '0.9'
1911
1983
 
1912
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
+
1913
1990
  Lint/ToJSON:
1914
1991
  Description: 'Ensure #to_json includes an optional argument.'
1915
1992
  Enabled: true
@@ -1917,12 +1994,12 @@ Lint/ToJSON:
1917
1994
 
1918
1995
  Lint/TopLevelReturnWithArgument:
1919
1996
  Description: 'This cop detects top level return statements with argument.'
1920
- Enabled: 'pending'
1997
+ Enabled: true
1921
1998
  VersionAdded: '0.89'
1922
1999
 
1923
2000
  Lint/TrailingCommaInAttributeDeclaration:
1924
2001
  Description: 'This cop checks for trailing commas in attribute declarations.'
1925
- Enabled: pending
2002
+ Enabled: true
1926
2003
  VersionAdded: '0.90'
1927
2004
 
1928
2005
  Lint/UnderscorePrefixedVariableName:
@@ -1931,11 +2008,34 @@ Lint/UnderscorePrefixedVariableName:
1931
2008
  VersionAdded: '0.21'
1932
2009
  AllowKeywordBlockArguments: false
1933
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
+
1934
2028
  Lint/UnifiedInteger:
1935
2029
  Description: 'Use Integer instead of Fixnum or Bignum.'
1936
2030
  Enabled: true
1937
2031
  VersionAdded: '0.43'
1938
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
+
1939
2039
  Lint/UnreachableCode:
1940
2040
  Description: 'Unreachable code.'
1941
2041
  Enabled: true
@@ -1943,7 +2043,7 @@ Lint/UnreachableCode:
1943
2043
 
1944
2044
  Lint/UnreachableLoop:
1945
2045
  Description: 'This cop checks for loops that will have at most one iteration.'
1946
- Enabled: pending
2046
+ Enabled: true
1947
2047
  VersionAdded: '0.89'
1948
2048
 
1949
2049
  Lint/UnusedBlockArgument:
@@ -2002,7 +2102,7 @@ Lint/UselessElseWithoutRescue:
2002
2102
 
2003
2103
  Lint/UselessMethodDefinition:
2004
2104
  Description: 'Checks for useless method definitions.'
2005
- Enabled: pending
2105
+ Enabled: true
2006
2106
  VersionAdded: '0.90'
2007
2107
  Safe: false
2008
2108
  AllowComments: true
@@ -2010,13 +2110,14 @@ Lint/UselessMethodDefinition:
2010
2110
  Lint/UselessSetterCall:
2011
2111
  Description: 'Checks for useless setter call to a local variable.'
2012
2112
  Enabled: true
2113
+ SafeAutoCorrect: false
2013
2114
  VersionAdded: '0.13'
2014
- VersionChanged: '0.80'
2115
+ VersionChanged: '1.2'
2015
2116
  Safe: false
2016
2117
 
2017
2118
  Lint/UselessTimes:
2018
2119
  Description: 'Checks for useless `Integer#times` calls.'
2019
- Enabled: pending
2120
+ Enabled: true
2020
2121
  VersionAdded: '0.91'
2021
2122
  Safe: false
2022
2123
 
@@ -2037,21 +2138,23 @@ Metrics/AbcSize:
2037
2138
  - https://en.wikipedia.org/wiki/ABC_Software_Metric
2038
2139
  Enabled: true
2039
2140
  VersionAdded: '0.27'
2040
- VersionChanged: '0.81'
2141
+ VersionChanged: '1.5'
2041
2142
  # The ABC size is a calculated magnitude, so this number can be an Integer or
2042
2143
  # a Float.
2043
2144
  IgnoredMethods: []
2145
+ CountRepeatedAttributes: true
2044
2146
  Max: 17
2045
2147
 
2046
2148
  Metrics/BlockLength:
2047
2149
  Description: 'Avoid long blocks with many lines.'
2048
2150
  Enabled: true
2049
2151
  VersionAdded: '0.44'
2050
- VersionChanged: '0.87'
2152
+ VersionChanged: '1.5'
2051
2153
  CountComments: false # count full line comments?
2052
2154
  Max: 25
2053
2155
  CountAsOne: []
2054
- ExcludedMethods:
2156
+ ExcludedMethods: [] # deprecated, retained for backwards compatibility
2157
+ IgnoredMethods:
2055
2158
  # By default, exclude the `#refine` method, as it tends to have larger
2056
2159
  # associated blocks.
2057
2160
  - refine
@@ -2092,11 +2195,12 @@ Metrics/MethodLength:
2092
2195
  StyleGuide: '#short-methods'
2093
2196
  Enabled: true
2094
2197
  VersionAdded: '0.25'
2095
- VersionChanged: '0.87'
2198
+ VersionChanged: '1.5'
2096
2199
  CountComments: false # count full line comments?
2097
2200
  Max: 10
2098
2201
  CountAsOne: []
2099
- ExcludedMethods: []
2202
+ ExcludedMethods: [] # deprecated, retained for backwards compatibility
2203
+ IgnoredMethods: []
2100
2204
 
2101
2205
  Metrics/ModuleLength:
2102
2206
  Description: 'Avoid modules longer than 100 lines of code.'
@@ -2112,8 +2216,10 @@ Metrics/ParameterLists:
2112
2216
  StyleGuide: '#too-many-params'
2113
2217
  Enabled: true
2114
2218
  VersionAdded: '0.25'
2219
+ VersionChanged: '1.5'
2115
2220
  Max: 5
2116
2221
  CountKeywordArgs: true
2222
+ MaxOptionalParameters: 3
2117
2223
 
2118
2224
  Metrics/PerceivedComplexity:
2119
2225
  Description: >-
@@ -2155,6 +2261,7 @@ Naming/BinaryOperatorParameterName:
2155
2261
  StyleGuide: '#other-arg'
2156
2262
  Enabled: true
2157
2263
  VersionAdded: '0.50'
2264
+ VersionChanged: '1.2'
2158
2265
 
2159
2266
  Naming/BlockParameterName:
2160
2267
  Description: >-
@@ -2261,6 +2368,7 @@ Naming/HeredocDelimiterCase:
2261
2368
  StyleGuide: '#heredoc-delimiters'
2262
2369
  Enabled: true
2263
2370
  VersionAdded: '0.50'
2371
+ VersionChanged: '1.2'
2264
2372
  EnforcedStyle: uppercase
2265
2373
  SupportedStyles:
2266
2374
  - lowercase
@@ -2279,7 +2387,7 @@ Naming/MemoizedInstanceVariableName:
2279
2387
  Memoized method name should match memo instance variable name.
2280
2388
  Enabled: true
2281
2389
  VersionAdded: '0.53'
2282
- VersionChanged: '0.58'
2390
+ VersionChanged: '1.2'
2283
2391
  EnforcedStyleForLeadingUnderscores: disallowed
2284
2392
  SupportedStylesForLeadingUnderscores:
2285
2393
  - disallowed
@@ -2377,14 +2485,25 @@ Naming/VariableName:
2377
2485
  - camelCase
2378
2486
 
2379
2487
  Naming/VariableNumber:
2380
- 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'
2381
2490
  Enabled: true
2382
2491
  VersionAdded: '0.50'
2492
+ VersionChanged: '1.4'
2383
2493
  EnforcedStyle: normalcase
2384
2494
  SupportedStyles:
2385
2495
  - snake_case
2386
2496
  - normalcase
2387
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
2388
2507
 
2389
2508
  #################### Security ##############################
2390
2509
 
@@ -2415,9 +2534,10 @@ Security/MarshalLoad:
2415
2534
  VersionAdded: '0.47'
2416
2535
 
2417
2536
  Security/Open:
2418
- 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.'
2419
2538
  Enabled: true
2420
2539
  VersionAdded: '0.53'
2540
+ VersionChanged: '1.0'
2421
2541
  Safe: false
2422
2542
 
2423
2543
  Security/YAMLLoad:
@@ -2444,7 +2564,7 @@ Style/AccessModifierDeclarations:
2444
2564
 
2445
2565
  Style/AccessorGrouping:
2446
2566
  Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
2447
- Enabled: 'pending'
2567
+ Enabled: true
2448
2568
  VersionAdded: '0.87'
2449
2569
  EnforcedStyle: grouped
2450
2570
  SupportedStyles:
@@ -2477,6 +2597,13 @@ Style/AndOr:
2477
2597
  - always
2478
2598
  - conditionals
2479
2599
 
2600
+ Style/ArgumentsForwarding:
2601
+ Description: 'Use arguments forwarding.'
2602
+ StyleGuide: '#arguments-forwarding'
2603
+ Enabled: pending
2604
+ AllowOnlyRestArgument: true
2605
+ VersionAdded: '1.1'
2606
+
2480
2607
  Style/ArrayCoercion:
2481
2608
  Description: >-
2482
2609
  Use Array() instead of explicit Array check or [*var], when dealing
@@ -2533,7 +2660,7 @@ Style/BisectedAttrAccessor:
2533
2660
  Description: >-
2534
2661
  Checks for places where `attr_reader` and `attr_writer`
2535
2662
  for the same method can be combined into single `attr_accessor`.
2536
- Enabled: 'pending'
2663
+ Enabled: true
2537
2664
  VersionAdded: '0.87'
2538
2665
 
2539
2666
  Style/BlockComments:
@@ -2672,7 +2799,7 @@ Style/CaseEquality:
2672
2799
  Style/CaseLikeIf:
2673
2800
  Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
2674
2801
  StyleGuide: '#case-vs-if-else'
2675
- Enabled: 'pending'
2802
+ Enabled: true
2676
2803
  Safe: false
2677
2804
  VersionAdded: '0.88'
2678
2805
 
@@ -2725,7 +2852,7 @@ Style/ClassCheck:
2725
2852
  Style/ClassEqualityComparison:
2726
2853
  Description: 'Enforces the use of `Object#instance_of?` instead of class comparison for equality.'
2727
2854
  StyleGuide: '#instance-of-vs-class-comparison'
2728
- Enabled: pending
2855
+ Enabled: true
2729
2856
  VersionAdded: '0.93'
2730
2857
  IgnoredMethods:
2731
2858
  - ==
@@ -2755,6 +2882,13 @@ Style/ClassVars:
2755
2882
  Enabled: true
2756
2883
  VersionAdded: '0.13'
2757
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
+
2758
2892
  # Align with the style guide.
2759
2893
  Style/CollectionMethods:
2760
2894
  Description: 'Preferred collection methods.'
@@ -2793,7 +2927,7 @@ Style/CombinableLoops:
2793
2927
  Description: >-
2794
2928
  Checks for places where multiple consecutive loops over the same data
2795
2929
  can be combined into a single loop.
2796
- Enabled: pending
2930
+ Enabled: true
2797
2931
  Safe: false
2798
2932
  VersionAdded: '0.90'
2799
2933
 
@@ -2818,17 +2952,18 @@ Style/CommandLiteral:
2818
2952
  Style/CommentAnnotation:
2819
2953
  Description: >-
2820
2954
  Checks formatting of special comments
2821
- (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
2955
+ (TODO, FIXME, OPTIMIZE, HACK, REVIEW, NOTE).
2822
2956
  StyleGuide: '#annotate-keywords'
2823
2957
  Enabled: true
2824
2958
  VersionAdded: '0.10'
2825
- VersionChanged: '0.31'
2959
+ VersionChanged: '1.3'
2826
2960
  Keywords:
2827
2961
  - TODO
2828
2962
  - FIXME
2829
2963
  - OPTIMIZE
2830
2964
  - HACK
2831
2965
  - REVIEW
2966
+ - NOTE
2832
2967
 
2833
2968
  Style/CommentedKeyword:
2834
2969
  Description: 'Do not place comments on the same line as certain keywords.'
@@ -2917,6 +3052,15 @@ Style/DisableCopsWithinSourceCodeDirective:
2917
3052
  Enabled: false
2918
3053
  VersionAdded: '0.82'
2919
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
+
2920
3064
  Style/Documentation:
2921
3065
  Description: 'Document classes and non-namespace modules.'
2922
3066
  Enabled: true
@@ -2944,7 +3088,7 @@ Style/DoubleNegation:
2944
3088
  StyleGuide: '#no-bang-bang'
2945
3089
  Enabled: true
2946
3090
  VersionAdded: '0.19'
2947
- VersionChanged: '0.84'
3091
+ VersionChanged: '1.2'
2948
3092
  EnforcedStyle: allowed_in_returns
2949
3093
  SafeAutoCorrect: false
2950
3094
  SupportedStyles:
@@ -3046,7 +3190,7 @@ Style/ExplicitBlockArgument:
3046
3190
  Consider using explicit block argument to avoid writing block literal
3047
3191
  that just passes its arguments to another block.
3048
3192
  StyleGuide: '#block-argument'
3049
- Enabled: pending
3193
+ Enabled: true
3050
3194
  # May change the yielding arity.
3051
3195
  Safe: false
3052
3196
  VersionAdded: '0.89'
@@ -3054,7 +3198,7 @@ Style/ExplicitBlockArgument:
3054
3198
  Style/ExponentialNotation:
3055
3199
  Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
3056
3200
  StyleGuide: '#exponential-notation'
3057
- Enabled: pending
3201
+ Enabled: true
3058
3202
  VersionAdded: '0.82'
3059
3203
  EnforcedStyle: scientific
3060
3204
  SupportedStyles:
@@ -3109,8 +3253,12 @@ Style/FormatStringToken:
3109
3253
  # Prefer simple looking "template" style tokens like `%{name}`, `%{age}`
3110
3254
  - template
3111
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
3112
3260
  VersionAdded: '0.49'
3113
- VersionChanged: '0.75'
3261
+ VersionChanged: '1.0'
3114
3262
 
3115
3263
  Style/FrozenStringLiteralComment:
3116
3264
  Description: >-
@@ -3137,7 +3285,7 @@ Style/FrozenStringLiteralComment:
3137
3285
  Style/GlobalStdStream:
3138
3286
  Description: 'Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.'
3139
3287
  StyleGuide: '#global-stdout'
3140
- Enabled: pending
3288
+ Enabled: true
3141
3289
  VersionAdded: '0.89'
3142
3290
  SafeAutoCorrect: false
3143
3291
 
@@ -3165,7 +3313,7 @@ Style/HashAsLastArrayItem:
3165
3313
  Checks for presence or absence of braces around hash literal as a last
3166
3314
  array item depending on configuration.
3167
3315
  StyleGuide: '#hash-literal-as-last-array-item'
3168
- Enabled: 'pending'
3316
+ Enabled: true
3169
3317
  VersionAdded: '0.88'
3170
3318
  EnforcedStyle: braces
3171
3319
  SupportedStyles:
@@ -3175,7 +3323,7 @@ Style/HashAsLastArrayItem:
3175
3323
  Style/HashEachMethods:
3176
3324
  Description: 'Use Hash#each_key and Hash#each_value.'
3177
3325
  StyleGuide: '#hash-each'
3178
- Enabled: pending
3326
+ Enabled: true
3179
3327
  VersionAdded: '0.80'
3180
3328
  Safe: false
3181
3329
 
@@ -3183,7 +3331,7 @@ Style/HashLikeCase:
3183
3331
  Description: >-
3184
3332
  Checks for places where `case-when` represents a simple 1:1
3185
3333
  mapping and can be replaced with a hash lookup.
3186
- Enabled: 'pending'
3334
+ Enabled: true
3187
3335
  VersionAdded: '0.88'
3188
3336
  # `MinBranchesCount` defines the number of branches `case` needs to have
3189
3337
  # to trigger this cop
@@ -3214,14 +3362,14 @@ Style/HashSyntax:
3214
3362
 
3215
3363
  Style/HashTransformKeys:
3216
3364
  Description: 'Prefer `transform_keys` over `each_with_object`, `map`, or `to_h`.'
3217
- Enabled: 'pending'
3365
+ Enabled: true
3218
3366
  VersionAdded: '0.80'
3219
3367
  VersionChanged: '0.90'
3220
3368
  Safe: false
3221
3369
 
3222
3370
  Style/HashTransformValues:
3223
3371
  Description: 'Prefer `transform_values` over `each_with_object`, `map`, or `to_h`.'
3224
- Enabled: 'pending'
3372
+ Enabled: true
3225
3373
  VersionAdded: '0.80'
3226
3374
  VersionChanged: '0.90'
3227
3375
  Safe: false
@@ -3239,6 +3387,7 @@ Style/IfInsideElse:
3239
3387
  Enabled: true
3240
3388
  AllowIfModifier: false
3241
3389
  VersionAdded: '0.36'
3390
+ VersionChanged: '1.3'
3242
3391
 
3243
3392
  Style/IfUnlessModifier:
3244
3393
  Description: >-
@@ -3271,12 +3420,14 @@ Style/ImplicitRuntimeError:
3271
3420
  VersionAdded: '0.41'
3272
3421
 
3273
3422
  Style/InfiniteLoop:
3274
- 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
3275
3427
  StyleGuide: '#infinite-loop'
3276
3428
  Enabled: true
3277
3429
  VersionAdded: '0.26'
3278
3430
  VersionChanged: '0.61'
3279
- SafeAutoCorrect: true
3280
3431
 
3281
3432
  Style/InlineComment:
3282
3433
  Description: 'Avoid trailing inline comments.'
@@ -3328,7 +3479,7 @@ Style/IpAddresses:
3328
3479
  Style/KeywordParametersOrder:
3329
3480
  Description: 'Enforces that optional keyword parameters are placed at the end of the parameters list.'
3330
3481
  StyleGuide: '#keyword-parameters-order'
3331
- Enabled: pending
3482
+ Enabled: true
3332
3483
  VersionAdded: '0.90'
3333
3484
 
3334
3485
  Style/Lambda:
@@ -3530,6 +3681,7 @@ Style/MultipleComparison:
3530
3681
  use Array#include? instead.
3531
3682
  Enabled: true
3532
3683
  VersionAdded: '0.49'
3684
+ VersionChanged: '1.1'
3533
3685
 
3534
3686
  Style/MutableConstant:
3535
3687
  Description: 'Do not assign mutable objects to constants.'
@@ -3564,6 +3716,13 @@ Style/NegatedIf:
3564
3716
  - prefix
3565
3717
  - postfix
3566
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
+
3567
3726
  Style/NegatedUnless:
3568
3727
  Description: 'Favor if over unless for negative conditions.'
3569
3728
  StyleGuide: '#if-for-negatives'
@@ -3651,6 +3810,11 @@ Style/NilComparison:
3651
3810
  - predicate
3652
3811
  - comparison
3653
3812
 
3813
+ Style/NilLambda:
3814
+ Description: 'Prefer `-> {}` to `-> { nil }`.'
3815
+ Enabled: pending
3816
+ VersionAdded: '1.3'
3817
+
3654
3818
  Style/NonNilCheck:
3655
3819
  Description: 'Checks for redundant nil checks.'
3656
3820
  StyleGuide: '#no-non-nil-checks'
@@ -3753,7 +3917,7 @@ Style/OptionalArguments:
3753
3917
  Style/OptionalBooleanParameter:
3754
3918
  Description: 'Use keyword arguments when defining method with boolean argument.'
3755
3919
  StyleGuide: '#boolean-keyword-arguments'
3756
- Enabled: pending
3920
+ Enabled: true
3757
3921
  Safe: false
3758
3922
  VersionAdded: '0.89'
3759
3923
  AllowedMethods:
@@ -3800,7 +3964,7 @@ Style/PercentLiteralDelimiters:
3800
3964
  '%r': '{}'
3801
3965
  '%w': '[]'
3802
3966
  '%W': '[]'
3803
- VersionChanged: '0.48.1'
3967
+ VersionChanged: '0.48'
3804
3968
 
3805
3969
  Style/PercentQLiterals:
3806
3970
  Description: 'Checks if uses of %Q/%q match the configured preference.'
@@ -3841,11 +4005,12 @@ Style/RaiseArgs:
3841
4005
  StyleGuide: '#exception-class-messages'
3842
4006
  Enabled: true
3843
4007
  VersionAdded: '0.14'
3844
- VersionChanged: '0.40'
4008
+ VersionChanged: '1.2'
3845
4009
  EnforcedStyle: exploded
3846
4010
  SupportedStyles:
3847
4011
  - compact # raise Exception.new(msg)
3848
4012
  - exploded # raise Exception, msg
4013
+ AllowedCompactTypes: []
3849
4014
 
3850
4015
  Style/RandomWithOffset:
3851
4016
  Description: >-
@@ -3855,9 +4020,20 @@ Style/RandomWithOffset:
3855
4020
  Enabled: true
3856
4021
  VersionAdded: '0.52'
3857
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
+
3858
4034
  Style/RedundantAssignment:
3859
4035
  Description: 'Checks for redundant assignment before returning.'
3860
- Enabled: 'pending'
4036
+ Enabled: true
3861
4037
  VersionAdded: '0.87'
3862
4038
 
3863
4039
  Style/RedundantBegin:
@@ -3894,7 +4070,7 @@ Style/RedundantFetchBlock:
3894
4070
  Use `fetch(key, value)` instead of `fetch(key) { value }`
3895
4071
  when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
3896
4072
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
3897
- Enabled: 'pending'
4073
+ Enabled: true
3898
4074
  Safe: false
3899
4075
  # If enabled, this cop will autocorrect usages of
3900
4076
  # `fetch` being called with block returning a constant.
@@ -3907,7 +4083,7 @@ Style/RedundantFileExtensionInRequire:
3907
4083
  Checks for the presence of superfluous `.rb` extension in
3908
4084
  the filename provided to `require` and `require_relative`.
3909
4085
  StyleGuide: '#no-explicit-rb-to-require'
3910
- Enabled: 'pending'
4086
+ Enabled: true
3911
4087
  VersionAdded: '0.88'
3912
4088
 
3913
4089
  Style/RedundantFreeze:
@@ -3934,12 +4110,12 @@ Style/RedundantPercentQ:
3934
4110
 
3935
4111
  Style/RedundantRegexpCharacterClass:
3936
4112
  Description: 'Checks for unnecessary single-element Regexp character classes.'
3937
- Enabled: pending
4113
+ Enabled: true
3938
4114
  VersionAdded: '0.85'
3939
4115
 
3940
4116
  Style/RedundantRegexpEscape:
3941
4117
  Description: 'Checks for redundant escapes in Regexps.'
3942
- Enabled: pending
4118
+ Enabled: true
3943
4119
  VersionAdded: '0.85'
3944
4120
 
3945
4121
  Style/RedundantReturn:
@@ -3960,7 +4136,7 @@ Style/RedundantSelf:
3960
4136
 
3961
4137
  Style/RedundantSelfAssignment:
3962
4138
  Description: 'Checks for places where redundant assignments are made for in place modification methods.'
3963
- Enabled: pending
4139
+ Enabled: true
3964
4140
  Safe: false
3965
4141
  VersionAdded: '0.90'
3966
4142
 
@@ -4088,7 +4264,7 @@ Style/SignalException:
4088
4264
 
4089
4265
  Style/SingleArgumentDig:
4090
4266
  Description: 'Avoid using single argument dig method.'
4091
- Enabled: pending
4267
+ Enabled: true
4092
4268
  VersionAdded: '0.89'
4093
4269
  Safe: false
4094
4270
 
@@ -4115,7 +4291,7 @@ Style/SingleLineMethods:
4115
4291
 
4116
4292
  Style/SlicingWithRange:
4117
4293
  Description: 'Checks array slicing is done with endless ranges when suitable.'
4118
- Enabled: pending
4294
+ Enabled: true
4119
4295
  VersionAdded: '0.83'
4120
4296
  Safe: false
4121
4297
 
@@ -4123,8 +4299,9 @@ Style/SoleNestedConditional:
4123
4299
  Description: >-
4124
4300
  Finds sole nested conditional nodes
4125
4301
  which can be merged into outer conditional node.
4126
- Enabled: pending
4302
+ Enabled: true
4127
4303
  VersionAdded: '0.89'
4304
+ VersionChanged: '1.5'
4128
4305
  AllowModifier: false
4129
4306
 
4130
4307
  Style/SpecialGlobalVars:
@@ -4149,6 +4326,13 @@ Style/StabbyLambdaParentheses:
4149
4326
  - require_parentheses
4150
4327
  - require_no_parentheses
4151
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
+
4152
4336
  Style/StderrPuts:
4153
4337
  Description: 'Use `warn` instead of `$stderr.puts`.'
4154
4338
  StyleGuide: '#warn'
@@ -4158,7 +4342,7 @@ Style/StderrPuts:
4158
4342
  Style/StringConcatenation:
4159
4343
  Description: 'Checks for places where string concatenation can be replaced with string interpolation.'
4160
4344
  StyleGuide: '#string-interpolation'
4161
- Enabled: pending
4345
+ Enabled: true
4162
4346
  Safe: false
4163
4347
  VersionAdded: '0.89'
4164
4348
 
@@ -4199,7 +4383,7 @@ Style/StringMethods:
4199
4383
  Description: 'Checks if configured preferred methods are used over non-preferred.'
4200
4384
  Enabled: false
4201
4385
  VersionAdded: '0.34'
4202
- VersionChanged: '0.34.2'
4386
+ VersionChanged: '0.34'
4203
4387
  # Mapping from undesired method to desired_method
4204
4388
  # e.g. to use `to_sym` over `intern`:
4205
4389
  #
@@ -4221,6 +4405,13 @@ Style/StructInheritance:
4221
4405
  VersionAdded: '0.29'
4222
4406
  VersionChanged: '0.86'
4223
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
+
4224
4415
  Style/SymbolArray:
4225
4416
  Description: 'Use %i or %I for arrays of symbols.'
4226
4417
  StyleGuide: '#percent-i'
@@ -4243,7 +4434,7 @@ Style/SymbolProc:
4243
4434
  Enabled: true
4244
4435
  Safe: false
4245
4436
  VersionAdded: '0.26'
4246
- VersionChanged: '0.64'
4437
+ VersionChanged: '1.5'
4247
4438
  # A list of method names to be ignored by the check.
4248
4439
  # The names should be fairly unique, otherwise you'll end up ignoring lots of code.
4249
4440
  IgnoredMethods:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Chefstyle
3
- VERSION = "1.4.5"
4
- RUBOCOP_VERSION = "0.93.1"
3
+ VERSION = "1.5.7"
4
+ RUBOCOP_VERSION = "1.5.2"
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.5
4
+ version: 1.5.7
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-12 00:00:00.000000000 Z
11
+ date: 2020-12-04 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.1
19
+ version: 1.5.2
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.1
26
+ version: 1.5.2
27
27
  description:
28
28
  email:
29
29
  - oss@chef.io