rubocop 0.91.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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