rubocop 0.91.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +100 -54
  4. data/lib/rubocop.rb +10 -6
  5. data/lib/rubocop/cached_data.rb +2 -1
  6. data/lib/rubocop/cli/command/version.rb +1 -1
  7. data/lib/rubocop/comment_config.rb +9 -5
  8. data/lib/rubocop/config.rb +4 -0
  9. data/lib/rubocop/config_loader.rb +19 -2
  10. data/lib/rubocop/config_loader_resolver.rb +7 -5
  11. data/lib/rubocop/config_regeneration.rb +33 -0
  12. data/lib/rubocop/config_validator.rb +7 -6
  13. data/lib/rubocop/cop/badge.rb +9 -24
  14. data/lib/rubocop/cop/base.rb +16 -1
  15. data/lib/rubocop/cop/commissioner.rb +34 -20
  16. data/lib/rubocop/cop/correctors/line_break_corrector.rb +2 -2
  17. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
  18. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +10 -10
  19. data/lib/rubocop/cop/layout/array_alignment.rb +1 -0
  20. data/lib/rubocop/cop/layout/case_indentation.rb +4 -7
  21. data/lib/rubocop/cop/layout/class_structure.rb +8 -1
  22. data/lib/rubocop/cop/layout/dot_position.rb +6 -9
  23. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +2 -2
  24. data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +4 -13
  25. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +13 -8
  26. data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +2 -2
  27. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -2
  28. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +10 -1
  29. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +4 -13
  30. data/lib/rubocop/cop/layout/space_around_operators.rb +4 -1
  31. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +7 -7
  32. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +0 -4
  33. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +4 -18
  34. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +2 -2
  35. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +2 -2
  36. data/lib/rubocop/cop/layout/trailing_whitespace.rb +37 -13
  37. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +2 -0
  38. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +18 -1
  39. data/lib/rubocop/cop/lint/boolean_symbol.rb +3 -0
  40. data/lib/rubocop/cop/lint/constant_definition_in_block.rb +23 -3
  41. data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +2 -4
  42. data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +37 -0
  43. data/lib/rubocop/cop/lint/identity_comparison.rb +5 -3
  44. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +2 -5
  45. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -0
  46. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -1
  47. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +22 -12
  48. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +14 -4
  49. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +78 -0
  50. data/lib/rubocop/cop/lint/rescue_type.rb +0 -1
  51. data/lib/rubocop/cop/lint/shadowed_exception.rb +6 -6
  52. data/lib/rubocop/cop/lint/to_json.rb +1 -1
  53. data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -5
  54. data/lib/rubocop/cop/lint/useless_access_modifier.rb +3 -9
  55. data/lib/rubocop/cop/lint/useless_times.rb +11 -2
  56. data/lib/rubocop/cop/metrics/block_length.rb +3 -1
  57. data/lib/rubocop/cop/metrics/class_length.rb +14 -6
  58. data/lib/rubocop/cop/metrics/parameter_lists.rb +4 -1
  59. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +25 -16
  60. data/lib/rubocop/cop/mixin/configurable_numbering.rb +3 -3
  61. data/lib/rubocop/cop/mixin/hash_transform_method.rb +1 -1
  62. data/lib/rubocop/cop/mixin/rescue_node.rb +1 -0
  63. data/lib/rubocop/cop/mixin/statement_modifier.rb +9 -3
  64. data/lib/rubocop/cop/mixin/visibility_help.rb +4 -16
  65. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
  66. data/lib/rubocop/cop/offense.rb +15 -2
  67. data/lib/rubocop/cop/security/open.rb +12 -10
  68. data/lib/rubocop/cop/style/access_modifier_declarations.rb +6 -2
  69. data/lib/rubocop/cop/style/accessor_grouping.rb +3 -0
  70. data/lib/rubocop/cop/style/array_coercion.rb +4 -0
  71. data/lib/rubocop/cop/style/case_like_if.rb +20 -4
  72. data/lib/rubocop/cop/style/class_equality_comparison.rb +64 -0
  73. data/lib/rubocop/cop/style/combinable_loops.rb +13 -11
  74. data/lib/rubocop/cop/style/comment_annotation.rb +6 -0
  75. data/lib/rubocop/cop/style/commented_keyword.rb +7 -8
  76. data/lib/rubocop/cop/style/date_time.rb +12 -1
  77. data/lib/rubocop/cop/style/explicit_block_argument.rb +6 -2
  78. data/lib/rubocop/cop/style/for.rb +0 -4
  79. data/lib/rubocop/cop/style/format_string_token.rb +48 -3
  80. data/lib/rubocop/cop/style/hash_as_last_array_item.rb +15 -6
  81. data/lib/rubocop/cop/style/if_unless_modifier.rb +0 -4
  82. data/lib/rubocop/cop/style/keyword_parameters_order.rb +1 -6
  83. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +10 -13
  84. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +6 -11
  85. data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +7 -11
  86. data/lib/rubocop/cop/style/method_def_parentheses.rb +0 -4
  87. data/lib/rubocop/cop/style/mixin_usage.rb +7 -27
  88. data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -2
  89. data/lib/rubocop/cop/style/multiline_when_then.rb +1 -0
  90. data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -0
  91. data/lib/rubocop/cop/style/one_line_conditional.rb +3 -1
  92. data/lib/rubocop/cop/style/optional_boolean_parameter.rb +12 -1
  93. data/lib/rubocop/cop/style/raise_args.rb +0 -3
  94. data/lib/rubocop/cop/style/random_with_offset.rb +3 -3
  95. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -9
  96. data/lib/rubocop/cop/style/redundant_begin.rb +36 -8
  97. data/lib/rubocop/cop/style/redundant_condition.rb +5 -1
  98. data/lib/rubocop/cop/style/redundant_conditional.rb +4 -5
  99. data/lib/rubocop/cop/style/redundant_interpolation.rb +6 -1
  100. data/lib/rubocop/cop/style/redundant_parentheses.rb +6 -3
  101. data/lib/rubocop/cop/style/redundant_percent_q.rb +9 -11
  102. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +39 -24
  103. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +8 -15
  104. data/lib/rubocop/cop/style/redundant_return.rb +17 -17
  105. data/lib/rubocop/cop/style/redundant_self.rb +10 -9
  106. data/lib/rubocop/cop/style/redundant_sort.rb +13 -24
  107. data/lib/rubocop/cop/style/redundant_sort_by.rb +5 -9
  108. data/lib/rubocop/cop/style/rescue_standard_error.rb +20 -16
  109. data/lib/rubocop/cop/style/safe_navigation.rb +16 -4
  110. data/lib/rubocop/cop/style/string_concatenation.rb +14 -2
  111. data/lib/rubocop/cop/style/ternary_parentheses.rb +2 -3
  112. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +4 -3
  113. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +3 -1
  114. data/lib/rubocop/cop/util.rb +0 -1
  115. data/lib/rubocop/cop/variable_force/branch.rb +0 -4
  116. data/lib/rubocop/directive_comment.rb +32 -0
  117. data/lib/rubocop/ext/regexp_node.rb +20 -4
  118. data/lib/rubocop/formatter/disabled_config_formatter.rb +12 -5
  119. data/lib/rubocop/formatter/offense_count_formatter.rb +1 -1
  120. data/lib/rubocop/formatter/worst_offenders_formatter.rb +1 -1
  121. data/lib/rubocop/options.rb +22 -17
  122. data/lib/rubocop/result_cache.rb +8 -2
  123. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  124. data/lib/rubocop/rspec/expect_offense.rb +5 -5
  125. data/lib/rubocop/runner.rb +9 -5
  126. data/lib/rubocop/target_finder.rb +27 -26
  127. data/lib/rubocop/target_ruby.rb +1 -1
  128. data/lib/rubocop/version.rb +61 -6
  129. metadata +14 -17
  130. data/lib/rubocop/cop/mixin/regexp_literal_help.rb +0 -43
  131. data/lib/rubocop/cop/tokens_util.rb +0 -84
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e27cb6b7c6fcded0825904076fe0d1f5bdc7f3dd6d7391e1b3b09900f276eda
4
- data.tar.gz: df22bf3745be7f53ec2c96a0c00f9d467bed247123d929a19938bb15b62b4a1c
3
+ metadata.gz: c25c996f99dbf63d4ffad0041dd929fc0f3d11b5bd2abd5d0aea1ac97cd57afb
4
+ data.tar.gz: 462f0dcd3120a9911fe100c7fb2d02a6919cf81078e871c7896044ebd5e25358
5
5
  SHA512:
6
- metadata.gz: 29e908f8706eedf177e93d909e744f310a57cfdbfb75d1071b4cddfeb3bd4e480ca7d654ec442ceac848b917cc75eebc500321740f8e68c59356e3b99a349b00
7
- data.tar.gz: 4857c9ba3dec5f0c163e63101d630a543ba8a3d3b6a2d2b6237dca2e0072fbc6885222130957617ade1ae98f9a0e2ca624164f10d3fd146aa96270c777dbfc03
6
+ metadata.gz: e3f9afb1fc30fef47c2d3eb64d33f237ca21adcfaf81c64aa24a47eaca9bee840123e29bd07be63e88137544d2e5cf00c4b63110dddfa1f306e0b95a1bc02d45
7
+ data.tar.gz: b0b79a254b907beb97ea89c3e330ca0ed8ed9ad7c3e5e51848ad5dfe77f98aa0a3097dcdab06c8eb82d6981d6354fbbd81b4e43a49b2b3d5f1b7be9cc4dc614a
data/README.md CHANGED
@@ -49,7 +49,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
49
49
  might want to use a conservative version lock in your `Gemfile`:
50
50
 
51
51
  ```rb
52
- gem 'rubocop', '~> 0.91.0', require: false
52
+ gem 'rubocop', '~> 1.0.0', require: false
53
53
  ```
54
54
 
55
55
  ## Quickstart
@@ -313,7 +313,7 @@ Layout/AssignmentIndentation:
313
313
 
314
314
  Layout/BeginEndAlignment:
315
315
  Description: 'Align ends corresponding to begins correctly.'
316
- Enabled: pending
316
+ Enabled: true
317
317
  VersionAdded: '0.91'
318
318
  # The value `start_of_line` means that `end` should be aligned the start of the line
319
319
  # where the `begin` keyword is.
@@ -496,7 +496,7 @@ Layout/EmptyLinesAroundArguments:
496
496
  Layout/EmptyLinesAroundAttributeAccessor:
497
497
  Description: "Keep blank lines around attribute accessors."
498
498
  StyleGuide: '#empty-lines-around-attribute-accessor'
499
- Enabled: pending
499
+ Enabled: true
500
500
  VersionAdded: '0.83'
501
501
  VersionChanged: '0.84'
502
502
  AllowAliasSyntax: true
@@ -1145,7 +1145,7 @@ Layout/SpaceAroundKeyword:
1145
1145
 
1146
1146
  Layout/SpaceAroundMethodCallOperator:
1147
1147
  Description: 'Checks method call operators to not have spaces around them.'
1148
- Enabled: pending
1148
+ Enabled: true
1149
1149
  VersionAdded: '0.82'
1150
1150
 
1151
1151
  Layout/SpaceAroundOperators:
@@ -1335,7 +1335,7 @@ Layout/TrailingWhitespace:
1335
1335
  Enabled: true
1336
1336
  VersionAdded: '0.49'
1337
1337
  VersionChanged: '0.83'
1338
- AllowInHeredoc: true
1338
+ AllowInHeredoc: false
1339
1339
 
1340
1340
  #################### Lint ##################################
1341
1341
  ### Warnings
@@ -1379,7 +1379,7 @@ Lint/BigDecimalNew:
1379
1379
 
1380
1380
  Lint/BinaryOperatorWithIdenticalOperands:
1381
1381
  Description: 'This cop checks for places where binary operator has identical operands.'
1382
- Enabled: pending
1382
+ Enabled: true
1383
1383
  Safe: false
1384
1384
  VersionAdded: '0.89'
1385
1385
 
@@ -1398,7 +1398,7 @@ Lint/CircularArgumentReference:
1398
1398
  Lint/ConstantDefinitionInBlock:
1399
1399
  Description: 'Do not define constants within a block.'
1400
1400
  StyleGuide: '#no-constant-definition-in-block'
1401
- Enabled: pending
1401
+ Enabled: true
1402
1402
  VersionAdded: '0.91'
1403
1403
 
1404
1404
  Lint/ConstantResolution:
@@ -1423,7 +1423,7 @@ Lint/DeprecatedClassMethods:
1423
1423
 
1424
1424
  Lint/DeprecatedOpenSSLConstant:
1425
1425
  Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
1426
- Enabled: pending
1426
+ Enabled: true
1427
1427
  VersionAdded: '0.84'
1428
1428
 
1429
1429
  Lint/DisjunctiveAssignmentInConstructor:
@@ -1440,7 +1440,7 @@ Lint/DuplicateCaseCondition:
1440
1440
 
1441
1441
  Lint/DuplicateElsifCondition:
1442
1442
  Description: 'Do not repeat conditions used in if `elsif`.'
1443
- Enabled: 'pending'
1443
+ Enabled: true
1444
1444
  VersionAdded: '0.88'
1445
1445
 
1446
1446
  Lint/DuplicateHashKey:
@@ -1456,12 +1456,12 @@ Lint/DuplicateMethods:
1456
1456
 
1457
1457
  Lint/DuplicateRequire:
1458
1458
  Description: 'Check for duplicate `require`s and `require_relative`s.'
1459
- Enabled: pending
1459
+ Enabled: true
1460
1460
  VersionAdded: '0.90'
1461
1461
 
1462
1462
  Lint/DuplicateRescueException:
1463
1463
  Description: 'Checks that there are no repeated exceptions used in `rescue` expressions.'
1464
- Enabled: pending
1464
+ Enabled: true
1465
1465
  VersionAdded: '0.89'
1466
1466
 
1467
1467
  Lint/EachWithObjectArgument:
@@ -1476,7 +1476,7 @@ Lint/ElseLayout:
1476
1476
 
1477
1477
  Lint/EmptyConditionalBody:
1478
1478
  Description: 'This cop checks for the presence of `if`, `elsif` and `unless` branches without a body.'
1479
- Enabled: 'pending'
1479
+ Enabled: true
1480
1480
  AllowComments: true
1481
1481
  VersionAdded: '0.89'
1482
1482
 
@@ -1493,7 +1493,7 @@ Lint/EmptyExpression:
1493
1493
 
1494
1494
  Lint/EmptyFile:
1495
1495
  Description: 'Enforces that Ruby source files are not empty.'
1496
- Enabled: pending
1496
+ Enabled: true
1497
1497
  AllowComments: true
1498
1498
  VersionAdded: '0.90'
1499
1499
 
@@ -1531,7 +1531,7 @@ Lint/FlipFlop:
1531
1531
  Lint/FloatComparison:
1532
1532
  Description: 'Checks for the presence of precise comparison of floating point numbers.'
1533
1533
  StyleGuide: '#float-comparison'
1534
- Enabled: pending
1534
+ Enabled: true
1535
1535
  VersionAdded: '0.89'
1536
1536
 
1537
1537
  Lint/FloatOutOfRange:
@@ -1546,6 +1546,13 @@ Lint/FormatParameterMismatch:
1546
1546
  Enabled: true
1547
1547
  VersionAdded: '0.33'
1548
1548
 
1549
+ Lint/HashCompareByIdentity:
1550
+ Description: 'Prefer using `Hash#compare_by_identity` than using `object_id` for keys.'
1551
+ StyleGuide: '#identity-comparison'
1552
+ Enabled: true
1553
+ Safe: false
1554
+ VersionAdded: '0.93'
1555
+
1549
1556
  Lint/HeredocMethodCallPosition:
1550
1557
  Description: >-
1551
1558
  Checks for the ordering of a method call where
@@ -1556,7 +1563,7 @@ Lint/HeredocMethodCallPosition:
1556
1563
 
1557
1564
  Lint/IdentityComparison:
1558
1565
  Description: 'Prefer `equal?` over `==` when comparing `object_id`.'
1559
- Enabled: pending
1566
+ Enabled: true
1560
1567
  StyleGuide: '#identity-comparison'
1561
1568
  VersionAdded: '0.91'
1562
1569
 
@@ -1628,12 +1635,12 @@ Lint/MissingSuper:
1628
1635
  Description: >-
1629
1636
  This cop checks for the presence of constructors and lifecycle callbacks
1630
1637
  without calls to `super`'.
1631
- Enabled: pending
1638
+ Enabled: true
1632
1639
  VersionAdded: '0.89'
1633
1640
 
1634
1641
  Lint/MixedRegexpCaptureTypes:
1635
1642
  Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
1636
- Enabled: pending
1643
+ Enabled: true
1637
1644
  VersionAdded: '0.85'
1638
1645
 
1639
1646
  Lint/MultipleComparison:
@@ -1685,7 +1692,7 @@ Lint/OrderedMagicComments:
1685
1692
 
1686
1693
  Lint/OutOfRangeRegexpRef:
1687
1694
  Description: 'Checks for out of range reference for Regexp because it always returns nil.'
1688
- Enabled: pending
1695
+ Enabled: true
1689
1696
  Safe: false
1690
1697
  VersionAdded: '0.89'
1691
1698
 
@@ -1714,7 +1721,7 @@ Lint/PercentSymbolArray:
1714
1721
  Lint/RaiseException:
1715
1722
  Description: Checks for `raise` or `fail` statements which are raising `Exception` class.
1716
1723
  StyleGuide: '#raise-exception'
1717
- Enabled: pending
1724
+ Enabled: true
1718
1725
  Safe: false
1719
1726
  VersionAdded: '0.81'
1720
1727
  VersionChanged: '0.86'
@@ -1746,6 +1753,19 @@ Lint/RedundantRequireStatement:
1746
1753
  Enabled: true
1747
1754
  VersionAdded: '0.76'
1748
1755
 
1756
+ Lint/RedundantSafeNavigation:
1757
+ Description: 'Checks for redundant safe navigation calls.'
1758
+ Enabled: true
1759
+ VersionAdded: '0.93'
1760
+ AllowedMethods:
1761
+ - instance_of?
1762
+ - kind_of?
1763
+ - is_a?
1764
+ - eql?
1765
+ - respond_to?
1766
+ - equal?
1767
+ Safe: false
1768
+
1749
1769
  Lint/RedundantSplatExpansion:
1750
1770
  Description: 'Checks for splat unnecessarily being called on literals.'
1751
1771
  Enabled: true
@@ -1842,7 +1862,7 @@ Lint/ScriptPermission:
1842
1862
 
1843
1863
  Lint/SelfAssignment:
1844
1864
  Description: 'Checks for self-assignments.'
1845
- Enabled: pending
1865
+ Enabled: true
1846
1866
  VersionAdded: '0.89'
1847
1867
 
1848
1868
  Lint/SendWithMixinArgument:
@@ -1873,7 +1893,7 @@ Lint/ShadowingOuterLocalVariable:
1873
1893
 
1874
1894
  Lint/StructNewOverride:
1875
1895
  Description: 'Disallow overriding the `Struct` built-in methods via `Struct.new`.'
1876
- Enabled: pending
1896
+ Enabled: true
1877
1897
  VersionAdded: '0.81'
1878
1898
 
1879
1899
  Lint/SuppressedException:
@@ -1897,12 +1917,12 @@ Lint/ToJSON:
1897
1917
 
1898
1918
  Lint/TopLevelReturnWithArgument:
1899
1919
  Description: 'This cop detects top level return statements with argument.'
1900
- Enabled: 'pending'
1920
+ Enabled: true
1901
1921
  VersionAdded: '0.89'
1902
1922
 
1903
1923
  Lint/TrailingCommaInAttributeDeclaration:
1904
1924
  Description: 'This cop checks for trailing commas in attribute declarations.'
1905
- Enabled: pending
1925
+ Enabled: true
1906
1926
  VersionAdded: '0.90'
1907
1927
 
1908
1928
  Lint/UnderscorePrefixedVariableName:
@@ -1923,7 +1943,7 @@ Lint/UnreachableCode:
1923
1943
 
1924
1944
  Lint/UnreachableLoop:
1925
1945
  Description: 'This cop checks for loops that will have at most one iteration.'
1926
- Enabled: pending
1946
+ Enabled: true
1927
1947
  VersionAdded: '0.89'
1928
1948
 
1929
1949
  Lint/UnusedBlockArgument:
@@ -1982,7 +2002,7 @@ Lint/UselessElseWithoutRescue:
1982
2002
 
1983
2003
  Lint/UselessMethodDefinition:
1984
2004
  Description: 'Checks for useless method definitions.'
1985
- Enabled: pending
2005
+ Enabled: true
1986
2006
  VersionAdded: '0.90'
1987
2007
  Safe: false
1988
2008
  AllowComments: true
@@ -1996,7 +2016,7 @@ Lint/UselessSetterCall:
1996
2016
 
1997
2017
  Lint/UselessTimes:
1998
2018
  Description: 'Checks for useless `Integer#times` calls.'
1999
- Enabled: pending
2019
+ Enabled: true
2000
2020
  VersionAdded: '0.91'
2001
2021
  Safe: false
2002
2022
 
@@ -2395,9 +2415,10 @@ Security/MarshalLoad:
2395
2415
  VersionAdded: '0.47'
2396
2416
 
2397
2417
  Security/Open:
2398
- Description: 'The use of Kernel#open represents a serious security risk.'
2418
+ Description: 'The use of `Kernel#open` and `URI.open` represent a serious security risk.'
2399
2419
  Enabled: true
2400
2420
  VersionAdded: '0.53'
2421
+ VersionChanged: '1.0'
2401
2422
  Safe: false
2402
2423
 
2403
2424
  Security/YAMLLoad:
@@ -2424,7 +2445,7 @@ Style/AccessModifierDeclarations:
2424
2445
 
2425
2446
  Style/AccessorGrouping:
2426
2447
  Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
2427
- Enabled: 'pending'
2448
+ Enabled: true
2428
2449
  VersionAdded: '0.87'
2429
2450
  EnforcedStyle: grouped
2430
2451
  SupportedStyles:
@@ -2463,7 +2484,7 @@ Style/ArrayCoercion:
2463
2484
  with a variable you want to treat as an Array, but you're not certain it's an array.
2464
2485
  StyleGuide: '#array-coercion'
2465
2486
  Safe: false
2466
- Enabled: 'pending'
2487
+ Enabled: false
2467
2488
  VersionAdded: '0.88'
2468
2489
 
2469
2490
  Style/ArrayJoin:
@@ -2513,7 +2534,7 @@ Style/BisectedAttrAccessor:
2513
2534
  Description: >-
2514
2535
  Checks for places where `attr_reader` and `attr_writer`
2515
2536
  for the same method can be combined into single `attr_accessor`.
2516
- Enabled: 'pending'
2537
+ Enabled: true
2517
2538
  VersionAdded: '0.87'
2518
2539
 
2519
2540
  Style/BlockComments:
@@ -2652,7 +2673,7 @@ Style/CaseEquality:
2652
2673
  Style/CaseLikeIf:
2653
2674
  Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
2654
2675
  StyleGuide: '#case-vs-if-else'
2655
- Enabled: 'pending'
2676
+ Enabled: true
2656
2677
  Safe: false
2657
2678
  VersionAdded: '0.88'
2658
2679
 
@@ -2702,6 +2723,16 @@ Style/ClassCheck:
2702
2723
  - is_a?
2703
2724
  - kind_of?
2704
2725
 
2726
+ Style/ClassEqualityComparison:
2727
+ Description: 'Enforces the use of `Object#instance_of?` instead of class comparison for equality.'
2728
+ StyleGuide: '#instance-of-vs-class-comparison'
2729
+ Enabled: true
2730
+ VersionAdded: '0.93'
2731
+ IgnoredMethods:
2732
+ - ==
2733
+ - equal?
2734
+ - eql?
2735
+
2705
2736
  Style/ClassMethods:
2706
2737
  Description: 'Use self when defining module/class methods.'
2707
2738
  StyleGuide: '#def-self-class-methods'
@@ -2763,7 +2794,7 @@ Style/CombinableLoops:
2763
2794
  Description: >-
2764
2795
  Checks for places where multiple consecutive loops over the same data
2765
2796
  can be combined into a single loop.
2766
- Enabled: pending
2797
+ Enabled: true
2767
2798
  Safe: false
2768
2799
  VersionAdded: '0.90'
2769
2800
 
@@ -2863,7 +2894,8 @@ Style/DateTime:
2863
2894
  StyleGuide: '#date--time'
2864
2895
  Enabled: false
2865
2896
  VersionAdded: '0.51'
2866
- VersionChanged: '0.59'
2897
+ VersionChanged: '0.92'
2898
+ SafeAutoCorrect: false
2867
2899
  AllowCoercion: false
2868
2900
 
2869
2901
  Style/DefWithParentheses:
@@ -3015,7 +3047,7 @@ Style/ExplicitBlockArgument:
3015
3047
  Consider using explicit block argument to avoid writing block literal
3016
3048
  that just passes its arguments to another block.
3017
3049
  StyleGuide: '#block-argument'
3018
- Enabled: pending
3050
+ Enabled: true
3019
3051
  # May change the yielding arity.
3020
3052
  Safe: false
3021
3053
  VersionAdded: '0.89'
@@ -3023,7 +3055,7 @@ Style/ExplicitBlockArgument:
3023
3055
  Style/ExponentialNotation:
3024
3056
  Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
3025
3057
  StyleGuide: '#exponential-notation'
3026
- Enabled: pending
3058
+ Enabled: true
3027
3059
  VersionAdded: '0.82'
3028
3060
  EnforcedStyle: scientific
3029
3061
  SupportedStyles:
@@ -3078,8 +3110,12 @@ Style/FormatStringToken:
3078
3110
  # Prefer simple looking "template" style tokens like `%{name}`, `%{age}`
3079
3111
  - template
3080
3112
  - unannotated
3113
+ # `MaxUnannotatedPlaceholdersAllowed` defines the number of `unannotated`
3114
+ # style token in a format string to be allowed when enforced style is not
3115
+ # `unannotated`.
3116
+ MaxUnannotatedPlaceholdersAllowed: 1
3081
3117
  VersionAdded: '0.49'
3082
- VersionChanged: '0.75'
3118
+ VersionChanged: '1.0'
3083
3119
 
3084
3120
  Style/FrozenStringLiteralComment:
3085
3121
  Description: >-
@@ -3106,7 +3142,7 @@ Style/FrozenStringLiteralComment:
3106
3142
  Style/GlobalStdStream:
3107
3143
  Description: 'Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.'
3108
3144
  StyleGuide: '#global-stdout'
3109
- Enabled: pending
3145
+ Enabled: true
3110
3146
  VersionAdded: '0.89'
3111
3147
  SafeAutoCorrect: false
3112
3148
 
@@ -3134,7 +3170,7 @@ Style/HashAsLastArrayItem:
3134
3170
  Checks for presence or absence of braces around hash literal as a last
3135
3171
  array item depending on configuration.
3136
3172
  StyleGuide: '#hash-literal-as-last-array-item'
3137
- Enabled: 'pending'
3173
+ Enabled: true
3138
3174
  VersionAdded: '0.88'
3139
3175
  EnforcedStyle: braces
3140
3176
  SupportedStyles:
@@ -3144,7 +3180,7 @@ Style/HashAsLastArrayItem:
3144
3180
  Style/HashEachMethods:
3145
3181
  Description: 'Use Hash#each_key and Hash#each_value.'
3146
3182
  StyleGuide: '#hash-each'
3147
- Enabled: pending
3183
+ Enabled: true
3148
3184
  VersionAdded: '0.80'
3149
3185
  Safe: false
3150
3186
 
@@ -3152,7 +3188,7 @@ Style/HashLikeCase:
3152
3188
  Description: >-
3153
3189
  Checks for places where `case-when` represents a simple 1:1
3154
3190
  mapping and can be replaced with a hash lookup.
3155
- Enabled: 'pending'
3191
+ Enabled: true
3156
3192
  VersionAdded: '0.88'
3157
3193
  # `MinBranchesCount` defines the number of branches `case` needs to have
3158
3194
  # to trigger this cop
@@ -3183,14 +3219,14 @@ Style/HashSyntax:
3183
3219
 
3184
3220
  Style/HashTransformKeys:
3185
3221
  Description: 'Prefer `transform_keys` over `each_with_object`, `map`, or `to_h`.'
3186
- Enabled: 'pending'
3222
+ Enabled: true
3187
3223
  VersionAdded: '0.80'
3188
3224
  VersionChanged: '0.90'
3189
3225
  Safe: false
3190
3226
 
3191
3227
  Style/HashTransformValues:
3192
3228
  Description: 'Prefer `transform_values` over `each_with_object`, `map`, or `to_h`.'
3193
- Enabled: 'pending'
3229
+ Enabled: true
3194
3230
  VersionAdded: '0.80'
3195
3231
  VersionChanged: '0.90'
3196
3232
  Safe: false
@@ -3283,16 +3319,21 @@ Style/IpAddresses:
3283
3319
  Description: "Don't include literal IP addresses in code."
3284
3320
  Enabled: false
3285
3321
  VersionAdded: '0.58'
3286
- VersionChanged: '0.77'
3322
+ VersionChanged: '0.91'
3287
3323
  # Allow addresses to be permitted
3288
3324
  AllowedAddresses:
3289
3325
  - "::"
3290
3326
  # :: is a valid IPv6 address, but could potentially be legitimately in code
3327
+ Exclude:
3328
+ - '**/*.gemfile'
3329
+ - '**/Gemfile'
3330
+ - '**/gems.rb'
3331
+ - '**/*.gemspec'
3291
3332
 
3292
3333
  Style/KeywordParametersOrder:
3293
3334
  Description: 'Enforces that optional keyword parameters are placed at the end of the parameters list.'
3294
3335
  StyleGuide: '#keyword-parameters-order'
3295
- Enabled: pending
3336
+ Enabled: true
3296
3337
  VersionAdded: '0.90'
3297
3338
 
3298
3339
  Style/Lambda:
@@ -3717,9 +3758,11 @@ Style/OptionalArguments:
3717
3758
  Style/OptionalBooleanParameter:
3718
3759
  Description: 'Use keyword arguments when defining method with boolean argument.'
3719
3760
  StyleGuide: '#boolean-keyword-arguments'
3720
- Enabled: pending
3761
+ Enabled: true
3721
3762
  Safe: false
3722
3763
  VersionAdded: '0.89'
3764
+ AllowedMethods:
3765
+ - respond_to_missing?
3723
3766
 
3724
3767
  Style/OrAssignment:
3725
3768
  Description: 'Recommend usage of double pipe equals (||=) where applicable.'
@@ -3819,7 +3862,7 @@ Style/RandomWithOffset:
3819
3862
 
3820
3863
  Style/RedundantAssignment:
3821
3864
  Description: 'Checks for redundant assignment before returning.'
3822
- Enabled: 'pending'
3865
+ Enabled: true
3823
3866
  VersionAdded: '0.87'
3824
3867
 
3825
3868
  Style/RedundantBegin:
@@ -3856,7 +3899,7 @@ Style/RedundantFetchBlock:
3856
3899
  Use `fetch(key, value)` instead of `fetch(key) { value }`
3857
3900
  when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
3858
3901
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
3859
- Enabled: 'pending'
3902
+ Enabled: true
3860
3903
  Safe: false
3861
3904
  # If enabled, this cop will autocorrect usages of
3862
3905
  # `fetch` being called with block returning a constant.
@@ -3869,7 +3912,7 @@ Style/RedundantFileExtensionInRequire:
3869
3912
  Checks for the presence of superfluous `.rb` extension in
3870
3913
  the filename provided to `require` and `require_relative`.
3871
3914
  StyleGuide: '#no-explicit-rb-to-require'
3872
- Enabled: 'pending'
3915
+ Enabled: true
3873
3916
  VersionAdded: '0.88'
3874
3917
 
3875
3918
  Style/RedundantFreeze:
@@ -3896,12 +3939,12 @@ Style/RedundantPercentQ:
3896
3939
 
3897
3940
  Style/RedundantRegexpCharacterClass:
3898
3941
  Description: 'Checks for unnecessary single-element Regexp character classes.'
3899
- Enabled: pending
3942
+ Enabled: true
3900
3943
  VersionAdded: '0.85'
3901
3944
 
3902
3945
  Style/RedundantRegexpEscape:
3903
3946
  Description: 'Checks for redundant escapes in Regexps.'
3904
- Enabled: pending
3947
+ Enabled: true
3905
3948
  VersionAdded: '0.85'
3906
3949
 
3907
3950
  Style/RedundantReturn:
@@ -3922,7 +3965,7 @@ Style/RedundantSelf:
3922
3965
 
3923
3966
  Style/RedundantSelfAssignment:
3924
3967
  Description: 'Checks for places where redundant assignments are made for in place modification methods.'
3925
- Enabled: pending
3968
+ Enabled: true
3926
3969
  Safe: false
3927
3970
  VersionAdded: '0.90'
3928
3971
 
@@ -3988,6 +4031,8 @@ Style/SafeNavigation:
3988
4031
  This cop transforms usages of a method call safeguarded by
3989
4032
  a check for the existence of the object to
3990
4033
  safe navigation (`&.`).
4034
+ Auto-correction is unsafe as it assumes the object will
4035
+ be `nil` or truthy, but never `false`.
3991
4036
  Enabled: true
3992
4037
  VersionAdded: '0.43'
3993
4038
  VersionChanged: '0.77'
@@ -4000,6 +4045,7 @@ Style/SafeNavigation:
4000
4045
  - presence
4001
4046
  - try
4002
4047
  - try!
4048
+ SafeAutoCorrect: false
4003
4049
 
4004
4050
  Style/Sample:
4005
4051
  Description: >-
@@ -4047,7 +4093,7 @@ Style/SignalException:
4047
4093
 
4048
4094
  Style/SingleArgumentDig:
4049
4095
  Description: 'Avoid using single argument dig method.'
4050
- Enabled: pending
4096
+ Enabled: true
4051
4097
  VersionAdded: '0.89'
4052
4098
  Safe: false
4053
4099
 
@@ -4074,7 +4120,7 @@ Style/SingleLineMethods:
4074
4120
 
4075
4121
  Style/SlicingWithRange:
4076
4122
  Description: 'Checks array slicing is done with endless ranges when suitable.'
4077
- Enabled: pending
4123
+ Enabled: true
4078
4124
  VersionAdded: '0.83'
4079
4125
  Safe: false
4080
4126
 
@@ -4082,7 +4128,7 @@ Style/SoleNestedConditional:
4082
4128
  Description: >-
4083
4129
  Finds sole nested conditional nodes
4084
4130
  which can be merged into outer conditional node.
4085
- Enabled: pending
4131
+ Enabled: true
4086
4132
  VersionAdded: '0.89'
4087
4133
  AllowModifier: false
4088
4134
 
@@ -4117,7 +4163,7 @@ Style/StderrPuts:
4117
4163
  Style/StringConcatenation:
4118
4164
  Description: 'Checks for places where string concatenation can be replaced with string interpolation.'
4119
4165
  StyleGuide: '#string-interpolation'
4120
- Enabled: pending
4166
+ Enabled: true
4121
4167
  Safe: false
4122
4168
  VersionAdded: '0.89'
4123
4169