rubocop 0.91.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +8 -5
- data/config/default.yml +143 -56
- data/lib/rubocop.rb +17 -5
- data/lib/rubocop/cached_data.rb +2 -1
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +1 -1
- data/lib/rubocop/cli/command/version.rb +1 -1
- data/lib/rubocop/comment_config.rb +1 -1
- data/lib/rubocop/config.rb +4 -0
- data/lib/rubocop/config_loader.rb +19 -2
- data/lib/rubocop/config_loader_resolver.rb +7 -5
- data/lib/rubocop/config_regeneration.rb +33 -0
- data/lib/rubocop/config_validator.rb +7 -6
- data/lib/rubocop/cop/badge.rb +9 -24
- data/lib/rubocop/cop/base.rb +16 -1
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +23 -3
- data/lib/rubocop/cop/commissioner.rb +36 -22
- data/lib/rubocop/cop/corrector.rb +3 -1
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/force.rb +1 -1
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +10 -10
- data/lib/rubocop/cop/layout/array_alignment.rb +1 -0
- data/lib/rubocop/cop/layout/class_structure.rb +7 -0
- data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/dot_position.rb +6 -9
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +7 -7
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +1 -2
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +2 -11
- data/lib/rubocop/cop/layout/space_around_operators.rb +4 -1
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +0 -4
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +37 -13
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +2 -0
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +18 -1
- data/lib/rubocop/cop/lint/boolean_symbol.rb +3 -0
- data/lib/rubocop/cop/lint/debugger.rb +2 -3
- data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +77 -0
- data/lib/rubocop/cop/lint/empty_block.rb +46 -0
- data/lib/rubocop/cop/lint/flip_flop.rb +8 -2
- data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +37 -0
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +17 -3
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -0
- data/lib/rubocop/cop/lint/number_conversion.rb +46 -13
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +27 -8
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +78 -0
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +95 -0
- data/lib/rubocop/cop/lint/to_json.rb +1 -1
- data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +185 -0
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -2
- data/lib/rubocop/cop/metrics/block_length.rb +3 -1
- data/lib/rubocop/cop/metrics/class_length.rb +14 -6
- data/lib/rubocop/cop/metrics/parameter_lists.rb +4 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +1 -1
- data/lib/rubocop/cop/mixin/line_length_help.rb +1 -1
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/predicate_name.rb +2 -1
- data/lib/rubocop/cop/offense.rb +18 -5
- data/lib/rubocop/cop/security/open.rb +12 -10
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +6 -2
- data/lib/rubocop/cop/style/accessor_grouping.rb +3 -0
- data/lib/rubocop/cop/style/arguments_forwarding.rb +142 -0
- data/lib/rubocop/cop/style/array_coercion.rb +4 -0
- data/lib/rubocop/cop/style/case_like_if.rb +20 -4
- data/lib/rubocop/cop/style/class_equality_comparison.rb +64 -0
- data/lib/rubocop/cop/style/combinable_loops.rb +8 -1
- data/lib/rubocop/cop/style/comment_annotation.rb +6 -0
- data/lib/rubocop/cop/style/date_time.rb +12 -1
- data/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +67 -0
- data/lib/rubocop/cop/style/explicit_block_argument.rb +6 -2
- data/lib/rubocop/cop/style/for.rb +0 -4
- data/lib/rubocop/cop/style/format_string_token.rb +48 -3
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +10 -13
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +6 -11
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +7 -11
- data/lib/rubocop/cop/style/method_def_parentheses.rb +0 -4
- data/lib/rubocop/cop/style/mixin_usage.rb +7 -27
- data/lib/rubocop/cop/style/multiple_comparison.rb +54 -7
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -0
- data/lib/rubocop/cop/style/optional_boolean_parameter.rb +11 -3
- data/lib/rubocop/cop/style/raise_args.rb +0 -3
- data/lib/rubocop/cop/style/redundant_begin.rb +36 -8
- data/lib/rubocop/cop/style/redundant_condition.rb +5 -1
- data/lib/rubocop/cop/style/redundant_interpolation.rb +6 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +4 -0
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +45 -24
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +8 -15
- data/lib/rubocop/cop/style/redundant_self.rb +3 -0
- data/lib/rubocop/cop/style/safe_navigation.rb +16 -4
- data/lib/rubocop/cop/style/semicolon.rb +3 -0
- data/lib/rubocop/cop/style/string_concatenation.rb +14 -2
- data/lib/rubocop/cop/style/swap_values.rb +108 -0
- data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +3 -1
- data/lib/rubocop/cop/team.rb +6 -1
- data/lib/rubocop/cop/util.rb +1 -1
- data/lib/rubocop/cop/variable_force/branch.rb +0 -4
- data/lib/rubocop/ext/regexp_node.rb +29 -10
- data/lib/rubocop/ext/regexp_parser.rb +77 -0
- data/lib/rubocop/formatter/disabled_config_formatter.rb +12 -5
- data/lib/rubocop/formatter/formatter_set.rb +1 -1
- data/lib/rubocop/formatter/offense_count_formatter.rb +1 -1
- data/lib/rubocop/formatter/worst_offenders_formatter.rb +1 -1
- data/lib/rubocop/magic_comment.rb +2 -2
- data/lib/rubocop/options.rb +22 -17
- data/lib/rubocop/result_cache.rb +8 -2
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +5 -5
- data/lib/rubocop/rspec/shared_contexts.rb +4 -0
- data/lib/rubocop/runner.rb +9 -5
- data/lib/rubocop/target_finder.rb +27 -26
- data/lib/rubocop/target_ruby.rb +1 -1
- data/lib/rubocop/version.rb +61 -6
- metadata +21 -16
- data/lib/rubocop/cop/mixin/regexp_literal_help.rb +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da2c7f3fe5f1a109fce4e8e9e44efd9e438c45c0c0036f79f3d0156a4dacc452
|
4
|
+
data.tar.gz: ff29fbdedc13116e5fdbcb95dc3af4a81379794f9d36596983f69a09d69ac575
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11f024ff53e3eb551b31b02c3a48ab250941c9fd0e642c3bb518a8d635bee89f0fc61dba12e0a66ac40c4536bf368690ade37ce3a6014531ad97ebc0fd9d82f8
|
7
|
+
data.tar.gz: e567372e804699a2499b6475cdeb4e86906c5fe8eda16428d292a600648d2afe2d34bacea2443fe52229ce4539b5a09b17f387586fc3a9e2d3034d3718ce4bb3
|
data/README.md
CHANGED
@@ -43,15 +43,18 @@ If you'd rather install RuboCop using `bundler`, add a line for it in your `Gemf
|
|
43
43
|
gem 'rubocop', require: false
|
44
44
|
```
|
45
45
|
|
46
|
-
RuboCop
|
47
|
-
|
48
|
-
|
49
|
-
might want to use a conservative version lock
|
46
|
+
RuboCop is stable between major versions, both in terms of API and cop configuration.
|
47
|
+
We aim the ease the maintenance of RuboCop extensions and the upgrades between RuboCop
|
48
|
+
releases. All big changes are reserved for major releases.
|
49
|
+
To prevent an unwanted RuboCop update you might want to use a conservative version lock
|
50
|
+
in your `Gemfile`:
|
50
51
|
|
51
52
|
```rb
|
52
|
-
gem 'rubocop', '~>
|
53
|
+
gem 'rubocop', '~> 1.1', require: false
|
53
54
|
```
|
54
55
|
|
56
|
+
See [versioning](https://docs.rubocop.org/rubocop/1.0/versioning.html) for further details.
|
57
|
+
|
55
58
|
## Quickstart
|
56
59
|
|
57
60
|
Just type `rubocop` in a Ruby project's folder and watch the magic happen.
|
data/config/default.yml
CHANGED
@@ -313,7 +313,7 @@ Layout/AssignmentIndentation:
|
|
313
313
|
|
314
314
|
Layout/BeginEndAlignment:
|
315
315
|
Description: 'Align ends corresponding to begins correctly.'
|
316
|
-
Enabled:
|
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:
|
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:
|
1148
|
+
Enabled: true
|
1149
1149
|
VersionAdded: '0.82'
|
1150
1150
|
|
1151
1151
|
Layout/SpaceAroundOperators:
|
@@ -1334,8 +1334,8 @@ Layout/TrailingWhitespace:
|
|
1334
1334
|
StyleGuide: '#no-trailing-whitespace'
|
1335
1335
|
Enabled: true
|
1336
1336
|
VersionAdded: '0.49'
|
1337
|
-
VersionChanged: '0
|
1338
|
-
AllowInHeredoc:
|
1337
|
+
VersionChanged: '1.0'
|
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:
|
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:
|
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:
|
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:
|
1443
|
+
Enabled: true
|
1444
1444
|
VersionAdded: '0.88'
|
1445
1445
|
|
1446
1446
|
Lint/DuplicateHashKey:
|
@@ -1454,14 +1454,19 @@ Lint/DuplicateMethods:
|
|
1454
1454
|
Enabled: true
|
1455
1455
|
VersionAdded: '0.29'
|
1456
1456
|
|
1457
|
+
Lint/DuplicateRegexpCharacterClassElement:
|
1458
|
+
Description: 'Checks for duplicate elements in Regexp character classes.'
|
1459
|
+
Enabled: pending
|
1460
|
+
VersionAdded: '1.1'
|
1461
|
+
|
1457
1462
|
Lint/DuplicateRequire:
|
1458
1463
|
Description: 'Check for duplicate `require`s and `require_relative`s.'
|
1459
|
-
Enabled:
|
1464
|
+
Enabled: true
|
1460
1465
|
VersionAdded: '0.90'
|
1461
1466
|
|
1462
1467
|
Lint/DuplicateRescueException:
|
1463
1468
|
Description: 'Checks that there are no repeated exceptions used in `rescue` expressions.'
|
1464
|
-
Enabled:
|
1469
|
+
Enabled: true
|
1465
1470
|
VersionAdded: '0.89'
|
1466
1471
|
|
1467
1472
|
Lint/EachWithObjectArgument:
|
@@ -1474,9 +1479,15 @@ Lint/ElseLayout:
|
|
1474
1479
|
Enabled: true
|
1475
1480
|
VersionAdded: '0.17'
|
1476
1481
|
|
1482
|
+
Lint/EmptyBlock:
|
1483
|
+
Description: 'This cop checks for blocks without a body.'
|
1484
|
+
Enabled: pending
|
1485
|
+
VersionAdded: '1.1'
|
1486
|
+
AllowComments: true
|
1487
|
+
|
1477
1488
|
Lint/EmptyConditionalBody:
|
1478
1489
|
Description: 'This cop checks for the presence of `if`, `elsif` and `unless` branches without a body.'
|
1479
|
-
Enabled:
|
1490
|
+
Enabled: true
|
1480
1491
|
AllowComments: true
|
1481
1492
|
VersionAdded: '0.89'
|
1482
1493
|
|
@@ -1493,7 +1504,7 @@ Lint/EmptyExpression:
|
|
1493
1504
|
|
1494
1505
|
Lint/EmptyFile:
|
1495
1506
|
Description: 'Enforces that Ruby source files are not empty.'
|
1496
|
-
Enabled:
|
1507
|
+
Enabled: true
|
1497
1508
|
AllowComments: true
|
1498
1509
|
VersionAdded: '0.90'
|
1499
1510
|
|
@@ -1531,7 +1542,7 @@ Lint/FlipFlop:
|
|
1531
1542
|
Lint/FloatComparison:
|
1532
1543
|
Description: 'Checks for the presence of precise comparison of floating point numbers.'
|
1533
1544
|
StyleGuide: '#float-comparison'
|
1534
|
-
Enabled:
|
1545
|
+
Enabled: true
|
1535
1546
|
VersionAdded: '0.89'
|
1536
1547
|
|
1537
1548
|
Lint/FloatOutOfRange:
|
@@ -1546,6 +1557,13 @@ Lint/FormatParameterMismatch:
|
|
1546
1557
|
Enabled: true
|
1547
1558
|
VersionAdded: '0.33'
|
1548
1559
|
|
1560
|
+
Lint/HashCompareByIdentity:
|
1561
|
+
Description: 'Prefer using `Hash#compare_by_identity` than using `object_id` for keys.'
|
1562
|
+
StyleGuide: '#identity-comparison'
|
1563
|
+
Enabled: true
|
1564
|
+
Safe: false
|
1565
|
+
VersionAdded: '0.93'
|
1566
|
+
|
1549
1567
|
Lint/HeredocMethodCallPosition:
|
1550
1568
|
Description: >-
|
1551
1569
|
Checks for the ordering of a method call where
|
@@ -1556,7 +1574,7 @@ Lint/HeredocMethodCallPosition:
|
|
1556
1574
|
|
1557
1575
|
Lint/IdentityComparison:
|
1558
1576
|
Description: 'Prefer `equal?` over `==` when comparing `object_id`.'
|
1559
|
-
Enabled:
|
1577
|
+
Enabled: true
|
1560
1578
|
StyleGuide: '#identity-comparison'
|
1561
1579
|
VersionAdded: '0.91'
|
1562
1580
|
|
@@ -1628,19 +1646,20 @@ Lint/MissingSuper:
|
|
1628
1646
|
Description: >-
|
1629
1647
|
This cop checks for the presence of constructors and lifecycle callbacks
|
1630
1648
|
without calls to `super`'.
|
1631
|
-
Enabled:
|
1649
|
+
Enabled: true
|
1632
1650
|
VersionAdded: '0.89'
|
1633
1651
|
|
1634
1652
|
Lint/MixedRegexpCaptureTypes:
|
1635
1653
|
Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
|
1636
|
-
Enabled:
|
1654
|
+
Enabled: true
|
1637
1655
|
VersionAdded: '0.85'
|
1638
1656
|
|
1639
1657
|
Lint/MultipleComparison:
|
1640
1658
|
Description: "Use `&&` operator to compare multiple values."
|
1641
1659
|
Enabled: true
|
1642
1660
|
VersionAdded: '0.47'
|
1643
|
-
VersionChanged: '
|
1661
|
+
VersionChanged: '1.1'
|
1662
|
+
AllowMethodComparison: true
|
1644
1663
|
|
1645
1664
|
Lint/NestedMethodDefinition:
|
1646
1665
|
Description: 'Do not use nested method definitions.'
|
@@ -1675,8 +1694,12 @@ Lint/NumberConversion:
|
|
1675
1694
|
Description: 'Checks unsafe usage of number conversion methods.'
|
1676
1695
|
Enabled: false
|
1677
1696
|
VersionAdded: '0.53'
|
1678
|
-
VersionChanged: '
|
1697
|
+
VersionChanged: '1.1'
|
1679
1698
|
SafeAutoCorrect: false
|
1699
|
+
IgnoredMethods: []
|
1700
|
+
IgnoredClasses:
|
1701
|
+
- Time
|
1702
|
+
- DateTime
|
1680
1703
|
|
1681
1704
|
Lint/OrderedMagicComments:
|
1682
1705
|
Description: 'Checks the proper ordering of magic comments and whether a magic comment is not placed before a shebang.'
|
@@ -1685,7 +1708,7 @@ Lint/OrderedMagicComments:
|
|
1685
1708
|
|
1686
1709
|
Lint/OutOfRangeRegexpRef:
|
1687
1710
|
Description: 'Checks for out of range reference for Regexp because it always returns nil.'
|
1688
|
-
Enabled:
|
1711
|
+
Enabled: true
|
1689
1712
|
Safe: false
|
1690
1713
|
VersionAdded: '0.89'
|
1691
1714
|
|
@@ -1714,7 +1737,7 @@ Lint/PercentSymbolArray:
|
|
1714
1737
|
Lint/RaiseException:
|
1715
1738
|
Description: Checks for `raise` or `fail` statements which are raising `Exception` class.
|
1716
1739
|
StyleGuide: '#raise-exception'
|
1717
|
-
Enabled:
|
1740
|
+
Enabled: true
|
1718
1741
|
Safe: false
|
1719
1742
|
VersionAdded: '0.81'
|
1720
1743
|
VersionChanged: '0.86'
|
@@ -1746,6 +1769,19 @@ Lint/RedundantRequireStatement:
|
|
1746
1769
|
Enabled: true
|
1747
1770
|
VersionAdded: '0.76'
|
1748
1771
|
|
1772
|
+
Lint/RedundantSafeNavigation:
|
1773
|
+
Description: 'Checks for redundant safe navigation calls.'
|
1774
|
+
Enabled: true
|
1775
|
+
VersionAdded: '0.93'
|
1776
|
+
AllowedMethods:
|
1777
|
+
- instance_of?
|
1778
|
+
- kind_of?
|
1779
|
+
- is_a?
|
1780
|
+
- eql?
|
1781
|
+
- respond_to?
|
1782
|
+
- equal?
|
1783
|
+
Safe: false
|
1784
|
+
|
1749
1785
|
Lint/RedundantSplatExpansion:
|
1750
1786
|
Description: 'Checks for splat unnecessarily being called on literals.'
|
1751
1787
|
Enabled: true
|
@@ -1842,7 +1878,7 @@ Lint/ScriptPermission:
|
|
1842
1878
|
|
1843
1879
|
Lint/SelfAssignment:
|
1844
1880
|
Description: 'Checks for self-assignments.'
|
1845
|
-
Enabled:
|
1881
|
+
Enabled: true
|
1846
1882
|
VersionAdded: '0.89'
|
1847
1883
|
|
1848
1884
|
Lint/SendWithMixinArgument:
|
@@ -1873,7 +1909,7 @@ Lint/ShadowingOuterLocalVariable:
|
|
1873
1909
|
|
1874
1910
|
Lint/StructNewOverride:
|
1875
1911
|
Description: 'Disallow overriding the `Struct` built-in methods via `Struct.new`.'
|
1876
|
-
Enabled:
|
1912
|
+
Enabled: true
|
1877
1913
|
VersionAdded: '0.81'
|
1878
1914
|
|
1879
1915
|
Lint/SuppressedException:
|
@@ -1890,6 +1926,11 @@ Lint/Syntax:
|
|
1890
1926
|
VersionAdded: '0.9'
|
1891
1927
|
|
1892
1928
|
|
1929
|
+
Lint/ToEnumArguments:
|
1930
|
+
Description: 'This cop ensures that `to_enum`/`enum_for`, called for the current method, has correct arguments.'
|
1931
|
+
Enabled: pending
|
1932
|
+
VersionAdded: '1.1'
|
1933
|
+
|
1893
1934
|
Lint/ToJSON:
|
1894
1935
|
Description: 'Ensure #to_json includes an optional argument.'
|
1895
1936
|
Enabled: true
|
@@ -1897,12 +1938,12 @@ Lint/ToJSON:
|
|
1897
1938
|
|
1898
1939
|
Lint/TopLevelReturnWithArgument:
|
1899
1940
|
Description: 'This cop detects top level return statements with argument.'
|
1900
|
-
Enabled:
|
1941
|
+
Enabled: true
|
1901
1942
|
VersionAdded: '0.89'
|
1902
1943
|
|
1903
1944
|
Lint/TrailingCommaInAttributeDeclaration:
|
1904
1945
|
Description: 'This cop checks for trailing commas in attribute declarations.'
|
1905
|
-
Enabled:
|
1946
|
+
Enabled: true
|
1906
1947
|
VersionAdded: '0.90'
|
1907
1948
|
|
1908
1949
|
Lint/UnderscorePrefixedVariableName:
|
@@ -1916,6 +1957,11 @@ Lint/UnifiedInteger:
|
|
1916
1957
|
Enabled: true
|
1917
1958
|
VersionAdded: '0.43'
|
1918
1959
|
|
1960
|
+
Lint/UnmodifiedReduceAccumulator:
|
1961
|
+
Description: Checks for `reduce` or `inject` blocks that do not update the accumulator each iteration.
|
1962
|
+
Enabled: pending
|
1963
|
+
VersionAdded: '1.1'
|
1964
|
+
|
1919
1965
|
Lint/UnreachableCode:
|
1920
1966
|
Description: 'Unreachable code.'
|
1921
1967
|
Enabled: true
|
@@ -1923,7 +1969,7 @@ Lint/UnreachableCode:
|
|
1923
1969
|
|
1924
1970
|
Lint/UnreachableLoop:
|
1925
1971
|
Description: 'This cop checks for loops that will have at most one iteration.'
|
1926
|
-
Enabled:
|
1972
|
+
Enabled: true
|
1927
1973
|
VersionAdded: '0.89'
|
1928
1974
|
|
1929
1975
|
Lint/UnusedBlockArgument:
|
@@ -1982,7 +2028,7 @@ Lint/UselessElseWithoutRescue:
|
|
1982
2028
|
|
1983
2029
|
Lint/UselessMethodDefinition:
|
1984
2030
|
Description: 'Checks for useless method definitions.'
|
1985
|
-
Enabled:
|
2031
|
+
Enabled: true
|
1986
2032
|
VersionAdded: '0.90'
|
1987
2033
|
Safe: false
|
1988
2034
|
AllowComments: true
|
@@ -1996,7 +2042,7 @@ Lint/UselessSetterCall:
|
|
1996
2042
|
|
1997
2043
|
Lint/UselessTimes:
|
1998
2044
|
Description: 'Checks for useless `Integer#times` calls.'
|
1999
|
-
Enabled:
|
2045
|
+
Enabled: true
|
2000
2046
|
VersionAdded: '0.91'
|
2001
2047
|
Safe: false
|
2002
2048
|
|
@@ -2395,9 +2441,10 @@ Security/MarshalLoad:
|
|
2395
2441
|
VersionAdded: '0.47'
|
2396
2442
|
|
2397
2443
|
Security/Open:
|
2398
|
-
Description: 'The use of Kernel#open
|
2444
|
+
Description: 'The use of `Kernel#open` and `URI.open` represent a serious security risk.'
|
2399
2445
|
Enabled: true
|
2400
2446
|
VersionAdded: '0.53'
|
2447
|
+
VersionChanged: '1.0'
|
2401
2448
|
Safe: false
|
2402
2449
|
|
2403
2450
|
Security/YAMLLoad:
|
@@ -2424,7 +2471,7 @@ Style/AccessModifierDeclarations:
|
|
2424
2471
|
|
2425
2472
|
Style/AccessorGrouping:
|
2426
2473
|
Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
|
2427
|
-
Enabled:
|
2474
|
+
Enabled: true
|
2428
2475
|
VersionAdded: '0.87'
|
2429
2476
|
EnforcedStyle: grouped
|
2430
2477
|
SupportedStyles:
|
@@ -2457,13 +2504,20 @@ Style/AndOr:
|
|
2457
2504
|
- always
|
2458
2505
|
- conditionals
|
2459
2506
|
|
2507
|
+
Style/ArgumentsForwarding:
|
2508
|
+
Description: 'Use arguments forwarding.'
|
2509
|
+
StyleGuide: '#arguments-forwarding'
|
2510
|
+
Enabled: pending
|
2511
|
+
AllowOnlyRestArgument: true
|
2512
|
+
VersionAdded: '1.1'
|
2513
|
+
|
2460
2514
|
Style/ArrayCoercion:
|
2461
2515
|
Description: >-
|
2462
2516
|
Use Array() instead of explicit Array check or [*var], when dealing
|
2463
2517
|
with a variable you want to treat as an Array, but you're not certain it's an array.
|
2464
2518
|
StyleGuide: '#array-coercion'
|
2465
2519
|
Safe: false
|
2466
|
-
Enabled:
|
2520
|
+
Enabled: false
|
2467
2521
|
VersionAdded: '0.88'
|
2468
2522
|
|
2469
2523
|
Style/ArrayJoin:
|
@@ -2513,7 +2567,7 @@ Style/BisectedAttrAccessor:
|
|
2513
2567
|
Description: >-
|
2514
2568
|
Checks for places where `attr_reader` and `attr_writer`
|
2515
2569
|
for the same method can be combined into single `attr_accessor`.
|
2516
|
-
Enabled:
|
2570
|
+
Enabled: true
|
2517
2571
|
VersionAdded: '0.87'
|
2518
2572
|
|
2519
2573
|
Style/BlockComments:
|
@@ -2652,7 +2706,7 @@ Style/CaseEquality:
|
|
2652
2706
|
Style/CaseLikeIf:
|
2653
2707
|
Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
2654
2708
|
StyleGuide: '#case-vs-if-else'
|
2655
|
-
Enabled:
|
2709
|
+
Enabled: true
|
2656
2710
|
Safe: false
|
2657
2711
|
VersionAdded: '0.88'
|
2658
2712
|
|
@@ -2702,6 +2756,16 @@ Style/ClassCheck:
|
|
2702
2756
|
- is_a?
|
2703
2757
|
- kind_of?
|
2704
2758
|
|
2759
|
+
Style/ClassEqualityComparison:
|
2760
|
+
Description: 'Enforces the use of `Object#instance_of?` instead of class comparison for equality.'
|
2761
|
+
StyleGuide: '#instance-of-vs-class-comparison'
|
2762
|
+
Enabled: true
|
2763
|
+
VersionAdded: '0.93'
|
2764
|
+
IgnoredMethods:
|
2765
|
+
- ==
|
2766
|
+
- equal?
|
2767
|
+
- eql?
|
2768
|
+
|
2705
2769
|
Style/ClassMethods:
|
2706
2770
|
Description: 'Use self when defining module/class methods.'
|
2707
2771
|
StyleGuide: '#def-self-class-methods'
|
@@ -2763,7 +2827,7 @@ Style/CombinableLoops:
|
|
2763
2827
|
Description: >-
|
2764
2828
|
Checks for places where multiple consecutive loops over the same data
|
2765
2829
|
can be combined into a single loop.
|
2766
|
-
Enabled:
|
2830
|
+
Enabled: true
|
2767
2831
|
Safe: false
|
2768
2832
|
VersionAdded: '0.90'
|
2769
2833
|
|
@@ -2863,7 +2927,8 @@ Style/DateTime:
|
|
2863
2927
|
StyleGuide: '#date--time'
|
2864
2928
|
Enabled: false
|
2865
2929
|
VersionAdded: '0.51'
|
2866
|
-
VersionChanged: '0.
|
2930
|
+
VersionChanged: '0.92'
|
2931
|
+
SafeAutoCorrect: false
|
2867
2932
|
AllowCoercion: false
|
2868
2933
|
|
2869
2934
|
Style/DefWithParentheses:
|
@@ -2886,6 +2951,14 @@ Style/DisableCopsWithinSourceCodeDirective:
|
|
2886
2951
|
Enabled: false
|
2887
2952
|
VersionAdded: '0.82'
|
2888
2953
|
|
2954
|
+
Style/DocumentDynamicEvalDefinition:
|
2955
|
+
Description: >-
|
2956
|
+
When using `class_eval` (or other `eval`) with string interpolation,
|
2957
|
+
add a comment block showing its appearance if interpolated.
|
2958
|
+
StyleGuide: '#eval-comment-docs'
|
2959
|
+
Enabled: pending
|
2960
|
+
VersionAdded: '1.1'
|
2961
|
+
|
2889
2962
|
Style/Documentation:
|
2890
2963
|
Description: 'Document classes and non-namespace modules.'
|
2891
2964
|
Enabled: true
|
@@ -3015,7 +3088,7 @@ Style/ExplicitBlockArgument:
|
|
3015
3088
|
Consider using explicit block argument to avoid writing block literal
|
3016
3089
|
that just passes its arguments to another block.
|
3017
3090
|
StyleGuide: '#block-argument'
|
3018
|
-
Enabled:
|
3091
|
+
Enabled: true
|
3019
3092
|
# May change the yielding arity.
|
3020
3093
|
Safe: false
|
3021
3094
|
VersionAdded: '0.89'
|
@@ -3023,7 +3096,7 @@ Style/ExplicitBlockArgument:
|
|
3023
3096
|
Style/ExponentialNotation:
|
3024
3097
|
Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
|
3025
3098
|
StyleGuide: '#exponential-notation'
|
3026
|
-
Enabled:
|
3099
|
+
Enabled: true
|
3027
3100
|
VersionAdded: '0.82'
|
3028
3101
|
EnforcedStyle: scientific
|
3029
3102
|
SupportedStyles:
|
@@ -3078,8 +3151,12 @@ Style/FormatStringToken:
|
|
3078
3151
|
# Prefer simple looking "template" style tokens like `%{name}`, `%{age}`
|
3079
3152
|
- template
|
3080
3153
|
- unannotated
|
3154
|
+
# `MaxUnannotatedPlaceholdersAllowed` defines the number of `unannotated`
|
3155
|
+
# style token in a format string to be allowed when enforced style is not
|
3156
|
+
# `unannotated`.
|
3157
|
+
MaxUnannotatedPlaceholdersAllowed: 1
|
3081
3158
|
VersionAdded: '0.49'
|
3082
|
-
VersionChanged: '0
|
3159
|
+
VersionChanged: '1.0'
|
3083
3160
|
|
3084
3161
|
Style/FrozenStringLiteralComment:
|
3085
3162
|
Description: >-
|
@@ -3106,7 +3183,7 @@ Style/FrozenStringLiteralComment:
|
|
3106
3183
|
Style/GlobalStdStream:
|
3107
3184
|
Description: 'Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.'
|
3108
3185
|
StyleGuide: '#global-stdout'
|
3109
|
-
Enabled:
|
3186
|
+
Enabled: true
|
3110
3187
|
VersionAdded: '0.89'
|
3111
3188
|
SafeAutoCorrect: false
|
3112
3189
|
|
@@ -3134,7 +3211,7 @@ Style/HashAsLastArrayItem:
|
|
3134
3211
|
Checks for presence or absence of braces around hash literal as a last
|
3135
3212
|
array item depending on configuration.
|
3136
3213
|
StyleGuide: '#hash-literal-as-last-array-item'
|
3137
|
-
Enabled:
|
3214
|
+
Enabled: true
|
3138
3215
|
VersionAdded: '0.88'
|
3139
3216
|
EnforcedStyle: braces
|
3140
3217
|
SupportedStyles:
|
@@ -3144,7 +3221,7 @@ Style/HashAsLastArrayItem:
|
|
3144
3221
|
Style/HashEachMethods:
|
3145
3222
|
Description: 'Use Hash#each_key and Hash#each_value.'
|
3146
3223
|
StyleGuide: '#hash-each'
|
3147
|
-
Enabled:
|
3224
|
+
Enabled: true
|
3148
3225
|
VersionAdded: '0.80'
|
3149
3226
|
Safe: false
|
3150
3227
|
|
@@ -3152,7 +3229,7 @@ Style/HashLikeCase:
|
|
3152
3229
|
Description: >-
|
3153
3230
|
Checks for places where `case-when` represents a simple 1:1
|
3154
3231
|
mapping and can be replaced with a hash lookup.
|
3155
|
-
Enabled:
|
3232
|
+
Enabled: true
|
3156
3233
|
VersionAdded: '0.88'
|
3157
3234
|
# `MinBranchesCount` defines the number of branches `case` needs to have
|
3158
3235
|
# to trigger this cop
|
@@ -3183,14 +3260,14 @@ Style/HashSyntax:
|
|
3183
3260
|
|
3184
3261
|
Style/HashTransformKeys:
|
3185
3262
|
Description: 'Prefer `transform_keys` over `each_with_object`, `map`, or `to_h`.'
|
3186
|
-
Enabled:
|
3263
|
+
Enabled: true
|
3187
3264
|
VersionAdded: '0.80'
|
3188
3265
|
VersionChanged: '0.90'
|
3189
3266
|
Safe: false
|
3190
3267
|
|
3191
3268
|
Style/HashTransformValues:
|
3192
3269
|
Description: 'Prefer `transform_values` over `each_with_object`, `map`, or `to_h`.'
|
3193
|
-
Enabled:
|
3270
|
+
Enabled: true
|
3194
3271
|
VersionAdded: '0.80'
|
3195
3272
|
VersionChanged: '0.90'
|
3196
3273
|
Safe: false
|
@@ -3297,7 +3374,7 @@ Style/IpAddresses:
|
|
3297
3374
|
Style/KeywordParametersOrder:
|
3298
3375
|
Description: 'Enforces that optional keyword parameters are placed at the end of the parameters list.'
|
3299
3376
|
StyleGuide: '#keyword-parameters-order'
|
3300
|
-
Enabled:
|
3377
|
+
Enabled: true
|
3301
3378
|
VersionAdded: '0.90'
|
3302
3379
|
|
3303
3380
|
Style/Lambda:
|
@@ -3499,6 +3576,7 @@ Style/MultipleComparison:
|
|
3499
3576
|
use Array#include? instead.
|
3500
3577
|
Enabled: true
|
3501
3578
|
VersionAdded: '0.49'
|
3579
|
+
VersionChanged: '1.1'
|
3502
3580
|
|
3503
3581
|
Style/MutableConstant:
|
3504
3582
|
Description: 'Do not assign mutable objects to constants.'
|
@@ -3722,9 +3800,11 @@ Style/OptionalArguments:
|
|
3722
3800
|
Style/OptionalBooleanParameter:
|
3723
3801
|
Description: 'Use keyword arguments when defining method with boolean argument.'
|
3724
3802
|
StyleGuide: '#boolean-keyword-arguments'
|
3725
|
-
Enabled:
|
3803
|
+
Enabled: true
|
3726
3804
|
Safe: false
|
3727
3805
|
VersionAdded: '0.89'
|
3806
|
+
AllowedMethods:
|
3807
|
+
- respond_to_missing?
|
3728
3808
|
|
3729
3809
|
Style/OrAssignment:
|
3730
3810
|
Description: 'Recommend usage of double pipe equals (||=) where applicable.'
|
@@ -3824,7 +3904,7 @@ Style/RandomWithOffset:
|
|
3824
3904
|
|
3825
3905
|
Style/RedundantAssignment:
|
3826
3906
|
Description: 'Checks for redundant assignment before returning.'
|
3827
|
-
Enabled:
|
3907
|
+
Enabled: true
|
3828
3908
|
VersionAdded: '0.87'
|
3829
3909
|
|
3830
3910
|
Style/RedundantBegin:
|
@@ -3861,7 +3941,7 @@ Style/RedundantFetchBlock:
|
|
3861
3941
|
Use `fetch(key, value)` instead of `fetch(key) { value }`
|
3862
3942
|
when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
|
3863
3943
|
Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
|
3864
|
-
Enabled:
|
3944
|
+
Enabled: true
|
3865
3945
|
Safe: false
|
3866
3946
|
# If enabled, this cop will autocorrect usages of
|
3867
3947
|
# `fetch` being called with block returning a constant.
|
@@ -3874,7 +3954,7 @@ Style/RedundantFileExtensionInRequire:
|
|
3874
3954
|
Checks for the presence of superfluous `.rb` extension in
|
3875
3955
|
the filename provided to `require` and `require_relative`.
|
3876
3956
|
StyleGuide: '#no-explicit-rb-to-require'
|
3877
|
-
Enabled:
|
3957
|
+
Enabled: true
|
3878
3958
|
VersionAdded: '0.88'
|
3879
3959
|
|
3880
3960
|
Style/RedundantFreeze:
|
@@ -3901,12 +3981,12 @@ Style/RedundantPercentQ:
|
|
3901
3981
|
|
3902
3982
|
Style/RedundantRegexpCharacterClass:
|
3903
3983
|
Description: 'Checks for unnecessary single-element Regexp character classes.'
|
3904
|
-
Enabled:
|
3984
|
+
Enabled: true
|
3905
3985
|
VersionAdded: '0.85'
|
3906
3986
|
|
3907
3987
|
Style/RedundantRegexpEscape:
|
3908
3988
|
Description: 'Checks for redundant escapes in Regexps.'
|
3909
|
-
Enabled:
|
3989
|
+
Enabled: true
|
3910
3990
|
VersionAdded: '0.85'
|
3911
3991
|
|
3912
3992
|
Style/RedundantReturn:
|
@@ -3927,7 +4007,7 @@ Style/RedundantSelf:
|
|
3927
4007
|
|
3928
4008
|
Style/RedundantSelfAssignment:
|
3929
4009
|
Description: 'Checks for places where redundant assignments are made for in place modification methods.'
|
3930
|
-
Enabled:
|
4010
|
+
Enabled: true
|
3931
4011
|
Safe: false
|
3932
4012
|
VersionAdded: '0.90'
|
3933
4013
|
|
@@ -4055,7 +4135,7 @@ Style/SignalException:
|
|
4055
4135
|
|
4056
4136
|
Style/SingleArgumentDig:
|
4057
4137
|
Description: 'Avoid using single argument dig method.'
|
4058
|
-
Enabled:
|
4138
|
+
Enabled: true
|
4059
4139
|
VersionAdded: '0.89'
|
4060
4140
|
Safe: false
|
4061
4141
|
|
@@ -4082,7 +4162,7 @@ Style/SingleLineMethods:
|
|
4082
4162
|
|
4083
4163
|
Style/SlicingWithRange:
|
4084
4164
|
Description: 'Checks array slicing is done with endless ranges when suitable.'
|
4085
|
-
Enabled:
|
4165
|
+
Enabled: true
|
4086
4166
|
VersionAdded: '0.83'
|
4087
4167
|
Safe: false
|
4088
4168
|
|
@@ -4090,7 +4170,7 @@ Style/SoleNestedConditional:
|
|
4090
4170
|
Description: >-
|
4091
4171
|
Finds sole nested conditional nodes
|
4092
4172
|
which can be merged into outer conditional node.
|
4093
|
-
Enabled:
|
4173
|
+
Enabled: true
|
4094
4174
|
VersionAdded: '0.89'
|
4095
4175
|
AllowModifier: false
|
4096
4176
|
|
@@ -4125,7 +4205,7 @@ Style/StderrPuts:
|
|
4125
4205
|
Style/StringConcatenation:
|
4126
4206
|
Description: 'Checks for places where string concatenation can be replaced with string interpolation.'
|
4127
4207
|
StyleGuide: '#string-interpolation'
|
4128
|
-
Enabled:
|
4208
|
+
Enabled: true
|
4129
4209
|
Safe: false
|
4130
4210
|
VersionAdded: '0.89'
|
4131
4211
|
|
@@ -4188,6 +4268,13 @@ Style/StructInheritance:
|
|
4188
4268
|
VersionAdded: '0.29'
|
4189
4269
|
VersionChanged: '0.86'
|
4190
4270
|
|
4271
|
+
Style/SwapValues:
|
4272
|
+
Description: 'This cop enforces the use of shorthand-style swapping of 2 variables.'
|
4273
|
+
StyleGuide: '#values-swapping'
|
4274
|
+
Enabled: pending
|
4275
|
+
VersionAdded: '1.1'
|
4276
|
+
SafeAutoCorrect: false
|
4277
|
+
|
4191
4278
|
Style/SymbolArray:
|
4192
4279
|
Description: 'Use %i or %I for arrays of symbols.'
|
4193
4280
|
StyleGuide: '#percent-i'
|