rubocop 1.57.2 → 1.62.1
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/LICENSE.txt +1 -1
- data/README.md +4 -4
- data/assets/output.css.erb +159 -0
- data/assets/output.html.erb +1 -160
- data/config/default.yml +87 -15
- data/lib/rubocop/cli/command/auto_generate_config.rb +12 -3
- data/lib/rubocop/cli/command/lsp.rb +2 -2
- data/lib/rubocop/cli.rb +6 -1
- data/lib/rubocop/config.rb +4 -2
- data/lib/rubocop/config_finder.rb +12 -2
- data/lib/rubocop/config_loader.rb +0 -1
- data/lib/rubocop/config_obsoletion.rb +11 -8
- data/lib/rubocop/config_validator.rb +14 -7
- data/lib/rubocop/cop/autocorrect_logic.rb +6 -1
- data/lib/rubocop/cop/base.rb +17 -2
- data/lib/rubocop/cop/bundler/gem_comment.rb +2 -2
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +4 -8
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +5 -13
- data/lib/rubocop/cop/exclude_limit.rb +1 -1
- data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +2 -2
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +5 -1
- data/lib/rubocop/cop/internal_affairs/example_description.rb +4 -4
- data/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +8 -6
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +19 -20
- data/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +53 -0
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +123 -29
- data/lib/rubocop/cop/internal_affairs/redundant_expect_offense_arguments.rb +34 -0
- data/lib/rubocop/cop/internal_affairs.rb +2 -0
- data/lib/rubocop/cop/layout/argument_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +14 -7
- data/lib/rubocop/cop/layout/end_alignment.rb +8 -2
- data/lib/rubocop/cop/layout/extra_spacing.rb +4 -10
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +22 -7
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -2
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/line_continuation_leading_space.rb +1 -1
- data/lib/rubocop/cop/layout/redundant_line_break.rb +16 -3
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +4 -4
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +5 -0
- data/lib/rubocop/cop/layout/space_around_operators.rb +50 -20
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +19 -10
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -1
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +4 -4
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +2 -2
- data/lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +2 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +1 -1
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -3
- data/lib/rubocop/cop/lint/float_comparison.rb +10 -0
- data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +2 -1
- data/lib/rubocop/cop/lint/it_without_arguments_in_block.rb +56 -0
- data/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +85 -0
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +6 -21
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +3 -5
- data/lib/rubocop/cop/lint/number_conversion.rb +9 -4
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +54 -6
- data/lib/rubocop/cop/lint/redundant_with_index.rb +3 -2
- data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
- data/lib/rubocop/cop/lint/rescue_type.rb +1 -3
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +3 -4
- data/lib/rubocop/cop/lint/script_permission.rb +3 -3
- data/lib/rubocop/cop/lint/self_assignment.rb +38 -0
- data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -0
- data/lib/rubocop/cop/lint/symbol_conversion.rb +7 -2
- data/lib/rubocop/cop/lint/syntax.rb +6 -3
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +7 -2
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -1
- data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +2 -2
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -2
- data/lib/rubocop/cop/lint/useless_times.rb +2 -2
- data/lib/rubocop/cop/lint/void.rb +20 -2
- data/lib/rubocop/cop/metrics/abc_size.rb +3 -3
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +1 -0
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +1 -1
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
- data/lib/rubocop/cop/naming/block_forwarding.rb +12 -4
- data/lib/rubocop/cop/naming/constant_name.rb +1 -2
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/predicate_name.rb +2 -2
- data/lib/rubocop/cop/registry.rb +1 -1
- data/lib/rubocop/cop/security/open.rb +2 -2
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -2
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +152 -21
- data/lib/rubocop/cop/style/array_first_last.rb +64 -0
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +21 -14
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +2 -2
- data/lib/rubocop/cop/style/case_like_if.rb +5 -5
- data/lib/rubocop/cop/style/class_check.rb +1 -0
- data/lib/rubocop/cop/style/class_vars.rb +3 -3
- data/lib/rubocop/cop/style/collection_compact.rb +18 -8
- data/lib/rubocop/cop/style/combinable_loops.rb +13 -7
- data/lib/rubocop/cop/style/commented_keyword.rb +5 -2
- data/lib/rubocop/cop/style/concat_array_literals.rb +1 -0
- data/lib/rubocop/cop/style/conditional_assignment.rb +6 -7
- data/lib/rubocop/cop/style/date_time.rb +5 -4
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +7 -7
- data/lib/rubocop/cop/style/each_with_object.rb +2 -2
- data/lib/rubocop/cop/style/empty_literal.rb +1 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +3 -14
- data/lib/rubocop/cop/style/exact_regexp_match.rb +2 -1
- data/lib/rubocop/cop/style/explicit_block_argument.rb +2 -2
- data/lib/rubocop/cop/style/for.rb +2 -0
- data/lib/rubocop/cop/style/hash_each_methods.rb +105 -11
- data/lib/rubocop/cop/style/hash_except.rb +2 -1
- data/lib/rubocop/cop/style/hash_syntax.rb +6 -2
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +4 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +14 -13
- data/lib/rubocop/cop/style/invertible_unless_condition.rb +44 -2
- data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +8 -10
- data/lib/rubocop/cop/style/map_to_hash.rb +17 -7
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +14 -5
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +2 -4
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +20 -0
- data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +2 -2
- data/lib/rubocop/cop/style/multiline_method_signature.rb +10 -1
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +5 -3
- data/lib/rubocop/cop/style/next.rb +1 -1
- data/lib/rubocop/cop/style/nil_comparison.rb +2 -0
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +1 -1
- data/lib/rubocop/cop/style/object_then.rb +5 -3
- data/lib/rubocop/cop/style/operator_method_call.rb +2 -2
- data/lib/rubocop/cop/style/parallel_assignment.rb +3 -5
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +8 -0
- data/lib/rubocop/cop/style/raise_args.rb +4 -1
- data/lib/rubocop/cop/style/redundant_argument.rb +4 -3
- data/lib/rubocop/cop/style/redundant_assignment.rb +10 -2
- data/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +4 -3
- data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +3 -3
- data/lib/rubocop/cop/style/redundant_each.rb +7 -4
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -3
- data/lib/rubocop/cop/style/redundant_line_continuation.rb +27 -7
- data/lib/rubocop/cop/style/redundant_parentheses.rb +33 -10
- data/lib/rubocop/cop/style/redundant_return.rb +7 -1
- data/lib/rubocop/cop/style/redundant_self.rb +17 -2
- data/lib/rubocop/cop/style/redundant_sort.rb +9 -8
- data/lib/rubocop/cop/style/redundant_sort_by.rb +2 -2
- data/lib/rubocop/cop/style/redundant_string_escape.rb +1 -1
- data/lib/rubocop/cop/style/sample.rb +3 -4
- data/lib/rubocop/cop/style/select_by_regexp.rb +7 -6
- data/lib/rubocop/cop/style/self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/semicolon.rb +8 -0
- data/lib/rubocop/cop/style/single_argument_dig.rb +5 -2
- data/lib/rubocop/cop/style/slicing_with_range.rb +76 -10
- data/lib/rubocop/cop/style/string_chars.rb +1 -0
- data/lib/rubocop/cop/style/strip.rb +7 -4
- data/lib/rubocop/cop/style/super_with_args_parentheses.rb +35 -0
- data/lib/rubocop/cop/style/symbol_proc.rb +36 -0
- data/lib/rubocop/cop/style/unpack_first.rb +11 -14
- data/lib/rubocop/cop/utils/regexp_ranges.rb +1 -1
- data/lib/rubocop/cops_documentation_generator.rb +15 -3
- data/lib/rubocop/directive_comment.rb +10 -8
- data/lib/rubocop/ext/regexp_node.rb +9 -4
- data/lib/rubocop/formatter/disabled_config_formatter.rb +17 -6
- data/lib/rubocop/formatter/html_formatter.rb +31 -12
- data/lib/rubocop/formatter/json_formatter.rb +0 -1
- data/lib/rubocop/formatter/offense_count_formatter.rb +12 -2
- data/lib/rubocop/formatter.rb +1 -1
- data/lib/rubocop/lsp/logger.rb +1 -1
- data/lib/rubocop/lsp/routes.rb +2 -2
- data/lib/rubocop/lsp/runtime.rb +1 -1
- data/lib/rubocop/lsp/server.rb +5 -2
- data/lib/rubocop/lsp/severity.rb +1 -1
- data/lib/rubocop/lsp.rb +29 -0
- data/lib/rubocop/magic_comment.rb +1 -1
- data/lib/rubocop/options.rb +11 -8
- data/lib/rubocop/path_util.rb +6 -2
- data/lib/rubocop/result_cache.rb +0 -1
- data/lib/rubocop/rspec/cop_helper.rb +8 -2
- data/lib/rubocop/rspec/expect_offense.rb +8 -8
- data/lib/rubocop/rspec/shared_contexts.rb +40 -15
- data/lib/rubocop/rspec/support.rb +2 -0
- data/lib/rubocop/runner.rb +10 -3
- data/lib/rubocop/server/cache.rb +1 -2
- data/lib/rubocop/server/client_command/exec.rb +0 -1
- data/lib/rubocop/server/server_command/exec.rb +0 -1
- data/lib/rubocop/target_finder.rb +84 -78
- data/lib/rubocop/target_ruby.rb +82 -80
- data/lib/rubocop/version.rb +18 -3
- data/lib/rubocop.rb +4 -0
- metadata +18 -10
- /data/lib/rubocop/formatter/{git_hub_actions_formatter.rb → github_actions_formatter.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8daa4ef7dd74b8608039d7dfda5f1e3fe739738949390a6f1347acaccf7bd1c4
|
4
|
+
data.tar.gz: 271a978db956def596a5b06a7fd69d189d807b27db0acdda03fd6200b95ef541
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 484294f43781f114ba01470b22331ef17648219e26dc4ba2f28073f609c909af2997c47e1f1aad62860124f6f4594a2e536cd793f05352a78d588f979732a290
|
7
|
+
data.tar.gz: 6a8313e61422bcd568eea747c0f9a88f61f50620b4dd4f478da0bdd3e067c1aa8bcf70e15744e02118d4c525eb0632fae3cc19caf73db6db1f63ea76dbb84b45
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<p align="center">
|
2
|
-
<img src="https://raw.githubusercontent.com/rubocop/rubocop/master/logo/rubo-logo-horizontal.png" alt="RuboCop Logo"/>
|
2
|
+
<img src="https://raw.githubusercontent.com/rubocop/rubocop/master/logo/rubo-logo-horizontal-white.png" alt="RuboCop Logo"/>
|
3
3
|
</p>
|
4
4
|
|
5
5
|
----------
|
@@ -53,7 +53,7 @@ To prevent an unwanted RuboCop update you might want to use a conservative versi
|
|
53
53
|
in your `Gemfile`:
|
54
54
|
|
55
55
|
```rb
|
56
|
-
gem 'rubocop', '~> 1.
|
56
|
+
gem 'rubocop', '~> 1.62', require: false
|
57
57
|
```
|
58
58
|
|
59
59
|
See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
|
@@ -67,7 +67,7 @@ $ cd my/cool/ruby/project
|
|
67
67
|
$ rubocop
|
68
68
|
```
|
69
69
|
|
70
|
-
You can also use this magic in your favorite editor with RuboCop's [built-in LSP](https://docs.rubocop.org/rubocop/usage/lsp.html).
|
70
|
+
You can also use this magic in your favorite editor with RuboCop's [built-in LSP server](https://docs.rubocop.org/rubocop/usage/lsp.html).
|
71
71
|
|
72
72
|
## Documentation
|
73
73
|
|
@@ -248,5 +248,5 @@ RuboCop's changelog is available [here](CHANGELOG.md).
|
|
248
248
|
|
249
249
|
## Copyright
|
250
250
|
|
251
|
-
Copyright (c) 2012-
|
251
|
+
Copyright (c) 2012-2024 Bozhidar Batsov. See [LICENSE.txt](LICENSE.txt) for
|
252
252
|
further details.
|
@@ -0,0 +1,159 @@
|
|
1
|
+
* {
|
2
|
+
-webkit-box-sizing: border-box;
|
3
|
+
-moz-box-sizing: border-box;
|
4
|
+
box-sizing: border-box;
|
5
|
+
}
|
6
|
+
|
7
|
+
body, html {
|
8
|
+
font-size: 62.5%;
|
9
|
+
}
|
10
|
+
body {
|
11
|
+
background-color: #ecedf0;
|
12
|
+
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
13
|
+
margin: 0;
|
14
|
+
}
|
15
|
+
code {
|
16
|
+
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
17
|
+
font-size: 85%;
|
18
|
+
}
|
19
|
+
#header {
|
20
|
+
background: #f9f9f9;
|
21
|
+
color: #333;
|
22
|
+
border-bottom: 3px solid #ccc;
|
23
|
+
height: 50px;
|
24
|
+
padding: 0;
|
25
|
+
}
|
26
|
+
#header .logo {
|
27
|
+
float: left;
|
28
|
+
margin: 5px 12px 7px 20px;
|
29
|
+
width: 38px;
|
30
|
+
height: 38px;
|
31
|
+
}
|
32
|
+
#header .title {
|
33
|
+
display: inline-block;
|
34
|
+
float: left;
|
35
|
+
height: 50px;
|
36
|
+
font-size: 2.4rem;
|
37
|
+
letter-spacing: normal;
|
38
|
+
line-height: 50px;
|
39
|
+
margin: 0;
|
40
|
+
}
|
41
|
+
|
42
|
+
.information, #offenses {
|
43
|
+
width: 100%;
|
44
|
+
padding: 20px;
|
45
|
+
color: #333;
|
46
|
+
}
|
47
|
+
#offenses {
|
48
|
+
padding: 0 20px;
|
49
|
+
}
|
50
|
+
|
51
|
+
.information .infobox {
|
52
|
+
border-left: 3px solid;
|
53
|
+
border-radius: 4px;
|
54
|
+
background-color: #fff;
|
55
|
+
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
56
|
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
57
|
+
padding: 15px;
|
58
|
+
border-color: #0088cc;
|
59
|
+
font-size: 1.4rem;
|
60
|
+
}
|
61
|
+
.information .infobox .info-title {
|
62
|
+
font-size: 1.8rem;
|
63
|
+
line-height: 2.2rem;
|
64
|
+
margin: 0 0 0.5em;
|
65
|
+
}
|
66
|
+
.information .offenses-list li {
|
67
|
+
line-height: 1.8rem
|
68
|
+
}
|
69
|
+
.information .offenses-list {
|
70
|
+
padding-left: 20px;
|
71
|
+
margin-bottom: 0;
|
72
|
+
}
|
73
|
+
|
74
|
+
#offenses .offense-box {
|
75
|
+
border-radius: 4px;
|
76
|
+
margin-bottom: 20px;
|
77
|
+
background-color: #fff;
|
78
|
+
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
79
|
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
80
|
+
}
|
81
|
+
.fixed .box-title {
|
82
|
+
position: fixed;
|
83
|
+
top: 0;
|
84
|
+
z-index: 10;
|
85
|
+
width: 100%;
|
86
|
+
}
|
87
|
+
.box-title-placeholder {
|
88
|
+
display: none;
|
89
|
+
}
|
90
|
+
.fixed .box-title-placeholder {
|
91
|
+
display: block;
|
92
|
+
}
|
93
|
+
#offenses .offense-box .box-title h3, #offenses .offense-box .box-title-placeholder h3 {
|
94
|
+
color: #33353f;
|
95
|
+
background-color: #f6f6f6;
|
96
|
+
font-size: 2rem;
|
97
|
+
line-height: 2rem;
|
98
|
+
display: block;
|
99
|
+
padding: 15px;
|
100
|
+
border-radius: 5px;
|
101
|
+
margin: 0;
|
102
|
+
}
|
103
|
+
#offenses .offense-box .offense-reports {
|
104
|
+
padding: 0 15px;
|
105
|
+
}
|
106
|
+
#offenses .offense-box .offense-reports .report {
|
107
|
+
border-bottom: 1px dotted #ddd;
|
108
|
+
padding: 15px 0px;
|
109
|
+
position: relative;
|
110
|
+
font-size: 1.3rem;
|
111
|
+
}
|
112
|
+
#offenses .offense-box .offense-reports .report:last-child {
|
113
|
+
border-bottom: none;
|
114
|
+
}
|
115
|
+
#offenses .offense-box .offense-reports .report pre code {
|
116
|
+
display: block;
|
117
|
+
background: #000;
|
118
|
+
color: #fff;
|
119
|
+
padding: 10px 15px;
|
120
|
+
border-radius: 5px;
|
121
|
+
line-height: 1.6rem;
|
122
|
+
}
|
123
|
+
#offenses .offense-box .offense-reports .report .location {
|
124
|
+
font-weight: bold;
|
125
|
+
}
|
126
|
+
#offenses .offense-box .offense-reports .report .message code {
|
127
|
+
padding: 0.3em;
|
128
|
+
background-color: rgba(0,0,0,0.07);
|
129
|
+
border-radius: 3px;
|
130
|
+
}
|
131
|
+
.severity {
|
132
|
+
text-transform: capitalize;
|
133
|
+
font-weight: bold;
|
134
|
+
}
|
135
|
+
.highlight {
|
136
|
+
padding: 2px;
|
137
|
+
border-radius: 2px;
|
138
|
+
font-weight: bold;
|
139
|
+
}
|
140
|
+
<%- SEVERITY_COLORS.each do |severity, color| %>
|
141
|
+
.severity.<%= severity %> {
|
142
|
+
color: <%= color %>;
|
143
|
+
}
|
144
|
+
.highlight.<%= severity %> {
|
145
|
+
background-color: <%= color.fade_out(0.4) %>;
|
146
|
+
border: 1px solid <%= color.fade_out(0.6) %>;
|
147
|
+
}
|
148
|
+
<%- end %>
|
149
|
+
footer {
|
150
|
+
margin-bottom: 20px;
|
151
|
+
margin-right: 20px;
|
152
|
+
font-size: 1.3rem;
|
153
|
+
color: #777;
|
154
|
+
text-align: right;
|
155
|
+
}
|
156
|
+
.extra-code {
|
157
|
+
color: #ED9C28
|
158
|
+
}
|
159
|
+
|
data/assets/output.html.erb
CHANGED
@@ -3,168 +3,9 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset='UTF-8' />
|
5
5
|
<title>RuboCop Inspection Report</title>
|
6
|
-
<%# TODO: Clean up the messy markup and style definitions. %>
|
7
6
|
<style>
|
8
|
-
|
9
|
-
-webkit-box-sizing: border-box;
|
10
|
-
-moz-box-sizing: border-box;
|
11
|
-
box-sizing: border-box;
|
12
|
-
}
|
13
|
-
|
14
|
-
body, html {
|
15
|
-
font-size: 62.5%;
|
16
|
-
}
|
17
|
-
body {
|
18
|
-
background-color: #ecedf0;
|
19
|
-
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
20
|
-
margin: 0;
|
21
|
-
}
|
22
|
-
code {
|
23
|
-
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
24
|
-
font-size: 85%;
|
25
|
-
}
|
26
|
-
#header {
|
27
|
-
background: #f9f9f9;
|
28
|
-
color: #333;
|
29
|
-
border-bottom: 3px solid #ccc;
|
30
|
-
height: 50px;
|
31
|
-
padding: 0;
|
32
|
-
}
|
33
|
-
#header .logo {
|
34
|
-
float: left;
|
35
|
-
margin: 5px 12px 7px 20px;
|
36
|
-
width: 38px;
|
37
|
-
height: 38px;
|
38
|
-
}
|
39
|
-
#header .title {
|
40
|
-
display: inline-block;
|
41
|
-
float: left;
|
42
|
-
height: 50px;
|
43
|
-
font-size: 2.4rem;
|
44
|
-
letter-spacing: normal;
|
45
|
-
line-height: 50px;
|
46
|
-
margin: 0;
|
47
|
-
}
|
48
|
-
|
49
|
-
.information, #offenses {
|
50
|
-
width: 100%;
|
51
|
-
padding: 20px;
|
52
|
-
color: #333;
|
53
|
-
}
|
54
|
-
#offenses {
|
55
|
-
padding: 0 20px;
|
56
|
-
}
|
57
|
-
|
58
|
-
.information .infobox {
|
59
|
-
border-left: 3px solid;
|
60
|
-
border-radius: 4px;
|
61
|
-
background-color: #fff;
|
62
|
-
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
63
|
-
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
64
|
-
padding: 15px;
|
65
|
-
border-color: #0088cc;
|
66
|
-
font-size: 1.4rem;
|
67
|
-
}
|
68
|
-
.information .infobox .info-title {
|
69
|
-
font-size: 1.8rem;
|
70
|
-
line-height: 2.2rem;
|
71
|
-
margin: 0 0 0.5em;
|
72
|
-
}
|
73
|
-
.information .offenses-list li {
|
74
|
-
line-height: 1.8rem
|
75
|
-
}
|
76
|
-
.information .offenses-list {
|
77
|
-
padding-left: 20px;
|
78
|
-
margin-bottom: 0;
|
79
|
-
}
|
80
|
-
|
81
|
-
#offenses .offense-box {
|
82
|
-
border-radius: 4px;
|
83
|
-
margin-bottom: 20px;
|
84
|
-
background-color: #fff;
|
85
|
-
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
86
|
-
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
87
|
-
}
|
88
|
-
.fixed .box-title {
|
89
|
-
position: fixed;
|
90
|
-
top: 0;
|
91
|
-
z-index: 10;
|
92
|
-
width: 100%;
|
93
|
-
}
|
94
|
-
.box-title-placeholder {
|
95
|
-
display: none;
|
96
|
-
}
|
97
|
-
.fixed .box-title-placeholder {
|
98
|
-
display: block;
|
99
|
-
}
|
100
|
-
#offenses .offense-box .box-title h3, #offenses .offense-box .box-title-placeholder h3 {
|
101
|
-
color: #33353f;
|
102
|
-
background-color: #f6f6f6;
|
103
|
-
font-size: 2rem;
|
104
|
-
line-height: 2rem;
|
105
|
-
display: block;
|
106
|
-
padding: 15px;
|
107
|
-
border-radius: 5px;
|
108
|
-
margin: 0;
|
109
|
-
}
|
110
|
-
#offenses .offense-box .offense-reports {
|
111
|
-
padding: 0 15px;
|
112
|
-
}
|
113
|
-
#offenses .offense-box .offense-reports .report {
|
114
|
-
border-bottom: 1px dotted #ddd;
|
115
|
-
padding: 15px 0px;
|
116
|
-
position: relative;
|
117
|
-
font-size: 1.3rem;
|
118
|
-
}
|
119
|
-
#offenses .offense-box .offense-reports .report:last-child {
|
120
|
-
border-bottom: none;
|
121
|
-
}
|
122
|
-
#offenses .offense-box .offense-reports .report pre code {
|
123
|
-
display: block;
|
124
|
-
background: #000;
|
125
|
-
color: #fff;
|
126
|
-
padding: 10px 15px;
|
127
|
-
border-radius: 5px;
|
128
|
-
line-height: 1.6rem;
|
129
|
-
}
|
130
|
-
#offenses .offense-box .offense-reports .report .location {
|
131
|
-
font-weight: bold;
|
132
|
-
}
|
133
|
-
#offenses .offense-box .offense-reports .report .message code {
|
134
|
-
padding: 0.3em;
|
135
|
-
background-color: rgba(0,0,0,0.07);
|
136
|
-
border-radius: 3px;
|
137
|
-
}
|
138
|
-
.severity {
|
139
|
-
text-transform: capitalize;
|
140
|
-
font-weight: bold;
|
141
|
-
}
|
142
|
-
.highlight {
|
143
|
-
padding: 2px;
|
144
|
-
border-radius: 2px;
|
145
|
-
font-weight: bold;
|
146
|
-
}
|
147
|
-
<%- SEVERITY_COLORS.each do |severity, color| %>
|
148
|
-
.severity.<%= severity %> {
|
149
|
-
color: <%= color %>;
|
150
|
-
}
|
151
|
-
.highlight.<%= severity %> {
|
152
|
-
background-color: <%= color.fade_out(0.4) %>;
|
153
|
-
border: 1px solid <%= color.fade_out(0.6) %>;
|
154
|
-
}
|
155
|
-
<%- end %>
|
156
|
-
footer {
|
157
|
-
margin-bottom: 20px;
|
158
|
-
margin-right: 20px;
|
159
|
-
font-size: 1.3rem;
|
160
|
-
color: #777;
|
161
|
-
text-align: right;
|
162
|
-
}
|
163
|
-
.extra-code {
|
164
|
-
color: #ED9C28
|
165
|
-
}
|
7
|
+
<%= render_css %>
|
166
8
|
</style>
|
167
|
-
|
168
9
|
<script>
|
169
10
|
(function() {
|
170
11
|
// floating headers. requires classList support.
|
data/config/default.yml
CHANGED
@@ -144,6 +144,12 @@ AllCops:
|
|
144
144
|
# Ruby version is still unresolved, RuboCop will use the oldest officially
|
145
145
|
# supported Ruby version (currently Ruby 2.7).
|
146
146
|
TargetRubyVersion: ~
|
147
|
+
# You can specify the parser engine. There are two options available:
|
148
|
+
# - `parser_whitequark` ... https://github.com/whitequark/parser
|
149
|
+
# - `parser_prism` ... https://github.com/ruby/prism (`Prism::Translation::Parser`)
|
150
|
+
# By default, `parser` is used. For the `TargetRubyVersion` value, `parser` can be specified for versions `2.0` and above.
|
151
|
+
# `parser_prism` can be specified for versions `3.3` and above. `parser_prism` is faster but still considered experimental.
|
152
|
+
ParserEngine: parser_whitequark
|
147
153
|
# Determines if a notification for extension libraries should be shown when
|
148
154
|
# rubocop is run. Keys are the name of the extension, and values are an array
|
149
155
|
# of gems in the Gemfile that the extension is suggested for, if not already
|
@@ -556,7 +562,9 @@ Layout/ElseAlignment:
|
|
556
562
|
Layout/EmptyComment:
|
557
563
|
Description: 'Checks empty comment.'
|
558
564
|
Enabled: true
|
565
|
+
AutoCorrect: contextual
|
559
566
|
VersionAdded: '0.53'
|
567
|
+
VersionChanged: '1.61'
|
560
568
|
AllowBorderComment: true
|
561
569
|
AllowMarginComment: true
|
562
570
|
|
@@ -1351,6 +1359,10 @@ Layout/SpaceAroundOperators:
|
|
1351
1359
|
SupportedStylesForExponentOperator:
|
1352
1360
|
- space
|
1353
1361
|
- no_space
|
1362
|
+
EnforcedStyleForRationalLiterals: no_space
|
1363
|
+
SupportedStylesForRationalLiterals:
|
1364
|
+
- space
|
1365
|
+
- no_space
|
1354
1366
|
|
1355
1367
|
Layout/SpaceBeforeBlockBraces:
|
1356
1368
|
Description: >-
|
@@ -1821,16 +1833,18 @@ Lint/EmptyClass:
|
|
1821
1833
|
Lint/EmptyConditionalBody:
|
1822
1834
|
Description: 'Checks for the presence of `if`, `elsif` and `unless` branches without a body.'
|
1823
1835
|
Enabled: true
|
1836
|
+
AutoCorrect: contextual
|
1824
1837
|
SafeAutoCorrect: false
|
1825
1838
|
AllowComments: true
|
1826
1839
|
VersionAdded: '0.89'
|
1827
|
-
VersionChanged: '1.
|
1840
|
+
VersionChanged: '1.61'
|
1828
1841
|
|
1829
1842
|
Lint/EmptyEnsure:
|
1830
1843
|
Description: 'Checks for empty ensure block.'
|
1831
1844
|
Enabled: true
|
1845
|
+
AutoCorrect: contextual
|
1832
1846
|
VersionAdded: '0.10'
|
1833
|
-
VersionChanged: '
|
1847
|
+
VersionChanged: '1.61'
|
1834
1848
|
|
1835
1849
|
Lint/EmptyExpression:
|
1836
1850
|
Description: 'Checks for empty expressions.'
|
@@ -1852,8 +1866,9 @@ Lint/EmptyInPattern:
|
|
1852
1866
|
Lint/EmptyInterpolation:
|
1853
1867
|
Description: 'Checks for empty string interpolation.'
|
1854
1868
|
Enabled: true
|
1869
|
+
AutoCorrect: contextual
|
1855
1870
|
VersionAdded: '0.20'
|
1856
|
-
VersionChanged: '
|
1871
|
+
VersionChanged: '1.61'
|
1857
1872
|
|
1858
1873
|
Lint/EmptyWhen:
|
1859
1874
|
Description: 'Checks for `when` branches with empty bodies.'
|
@@ -1959,6 +1974,12 @@ Lint/InterpolationCheck:
|
|
1959
1974
|
VersionAdded: '0.50'
|
1960
1975
|
VersionChanged: '1.40'
|
1961
1976
|
|
1977
|
+
Lint/ItWithoutArgumentsInBlock:
|
1978
|
+
Description: 'Checks uses of `it` calls without arguments in block.'
|
1979
|
+
Reference: 'https://bugs.ruby-lang.org/issues/18980'
|
1980
|
+
Enabled: pending
|
1981
|
+
VersionAdded: '1.59'
|
1982
|
+
|
1962
1983
|
Lint/LambdaWithoutLiteralBlock:
|
1963
1984
|
Description: 'Checks uses of lambda without a literal block.'
|
1964
1985
|
Enabled: pending
|
@@ -1969,6 +1990,11 @@ Lint/LiteralAsCondition:
|
|
1969
1990
|
Enabled: true
|
1970
1991
|
VersionAdded: '0.51'
|
1971
1992
|
|
1993
|
+
Lint/LiteralAssignmentInCondition:
|
1994
|
+
Description: 'Checks for literal assignments in the conditions.'
|
1995
|
+
Enabled: pending
|
1996
|
+
VersionAdded: '1.58'
|
1997
|
+
|
1972
1998
|
Lint/LiteralInInterpolation:
|
1973
1999
|
Description: 'Checks for literals used in interpolation.'
|
1974
2000
|
Enabled: true
|
@@ -2380,7 +2406,9 @@ Lint/TopLevelReturnWithArgument:
|
|
2380
2406
|
Lint/TrailingCommaInAttributeDeclaration:
|
2381
2407
|
Description: 'Checks for trailing commas in attribute declarations.'
|
2382
2408
|
Enabled: true
|
2409
|
+
AutoCorrect: contextual
|
2383
2410
|
VersionAdded: '0.90'
|
2411
|
+
VersionChanged: '1.61'
|
2384
2412
|
|
2385
2413
|
Lint/TripleQuotes:
|
2386
2414
|
Description: 'Checks for useless triple quote constructs.'
|
@@ -2440,8 +2468,9 @@ Lint/UnusedBlockArgument:
|
|
2440
2468
|
Description: 'Checks for unused block arguments.'
|
2441
2469
|
StyleGuide: '#underscore-unused-vars'
|
2442
2470
|
Enabled: true
|
2471
|
+
AutoCorrect: contextual
|
2443
2472
|
VersionAdded: '0.21'
|
2444
|
-
VersionChanged: '
|
2473
|
+
VersionChanged: '1.61'
|
2445
2474
|
IgnoreEmptyBlocks: true
|
2446
2475
|
AllowUnusedKeywordArguments: false
|
2447
2476
|
|
@@ -2449,8 +2478,9 @@ Lint/UnusedMethodArgument:
|
|
2449
2478
|
Description: 'Checks for unused method arguments.'
|
2450
2479
|
StyleGuide: '#underscore-unused-vars'
|
2451
2480
|
Enabled: true
|
2481
|
+
AutoCorrect: contextual
|
2452
2482
|
VersionAdded: '0.21'
|
2453
|
-
VersionChanged: '
|
2483
|
+
VersionChanged: '1.61'
|
2454
2484
|
AllowUnusedKeywordArguments: false
|
2455
2485
|
IgnoreEmptyMethods: true
|
2456
2486
|
IgnoreNotImplementedMethods: true
|
@@ -2474,8 +2504,9 @@ Lint/UriRegexp:
|
|
2474
2504
|
Lint/UselessAccessModifier:
|
2475
2505
|
Description: 'Checks for useless access modifiers.'
|
2476
2506
|
Enabled: true
|
2507
|
+
AutoCorrect: contextual
|
2477
2508
|
VersionAdded: '0.20'
|
2478
|
-
VersionChanged: '
|
2509
|
+
VersionChanged: '1.61'
|
2479
2510
|
ContextCreatingMethods: []
|
2480
2511
|
MethodCreatingMethods: []
|
2481
2512
|
|
@@ -2483,8 +2514,9 @@ Lint/UselessAssignment:
|
|
2483
2514
|
Description: 'Checks for useless assignment to a local variable.'
|
2484
2515
|
StyleGuide: '#underscore-unused-vars'
|
2485
2516
|
Enabled: true
|
2517
|
+
AutoCorrect: contextual
|
2486
2518
|
VersionAdded: '0.11'
|
2487
|
-
VersionChanged: '1.
|
2519
|
+
VersionChanged: '1.61'
|
2488
2520
|
SafeAutoCorrect: false
|
2489
2521
|
|
2490
2522
|
Lint/UselessElseWithoutRescue:
|
@@ -2496,8 +2528,9 @@ Lint/UselessElseWithoutRescue:
|
|
2496
2528
|
Lint/UselessMethodDefinition:
|
2497
2529
|
Description: 'Checks for useless method definitions.'
|
2498
2530
|
Enabled: true
|
2531
|
+
AutoCorrect: contextual
|
2499
2532
|
VersionAdded: '0.90'
|
2500
|
-
VersionChanged: '
|
2533
|
+
VersionChanged: '1.61'
|
2501
2534
|
Safe: false
|
2502
2535
|
|
2503
2536
|
Lint/UselessRescue:
|
@@ -2520,13 +2553,17 @@ Lint/UselessSetterCall:
|
|
2520
2553
|
Lint/UselessTimes:
|
2521
2554
|
Description: 'Checks for useless `Integer#times` calls.'
|
2522
2555
|
Enabled: true
|
2523
|
-
VersionAdded: '0.91'
|
2524
2556
|
Safe: false
|
2557
|
+
AutoCorrect: contextual
|
2558
|
+
VersionAdded: '0.91'
|
2559
|
+
VersionChanged: '1.61'
|
2525
2560
|
|
2526
2561
|
Lint/Void:
|
2527
2562
|
Description: 'Possible use of operator/literal/variable in void context.'
|
2528
2563
|
Enabled: true
|
2564
|
+
AutoCorrect: contextual
|
2529
2565
|
VersionAdded: '0.9'
|
2566
|
+
VersionChanged: '1.61'
|
2530
2567
|
CheckForMethodsWithNoSideEffects: false
|
2531
2568
|
|
2532
2569
|
#################### Metrics ###############################
|
@@ -3085,7 +3122,19 @@ Style/ArgumentsForwarding:
|
|
3085
3122
|
Enabled: pending
|
3086
3123
|
AllowOnlyRestArgument: true
|
3087
3124
|
UseAnonymousForwarding: true
|
3125
|
+
RedundantRestArgumentNames:
|
3126
|
+
- args
|
3127
|
+
- arguments
|
3128
|
+
RedundantKeywordRestArgumentNames:
|
3129
|
+
- kwargs
|
3130
|
+
- options
|
3131
|
+
- opts
|
3132
|
+
RedundantBlockArgumentNames:
|
3133
|
+
- blk
|
3134
|
+
- block
|
3135
|
+
- proc
|
3088
3136
|
VersionAdded: '1.1'
|
3137
|
+
VersionChanged: '1.58'
|
3089
3138
|
|
3090
3139
|
Style/ArrayCoercion:
|
3091
3140
|
Description: >-
|
@@ -3096,6 +3145,13 @@ Style/ArrayCoercion:
|
|
3096
3145
|
Enabled: false
|
3097
3146
|
VersionAdded: '0.88'
|
3098
3147
|
|
3148
|
+
Style/ArrayFirstLast:
|
3149
|
+
Description: 'Use `arr.first` and `arr.last` instead of `arr[0]` and `arr[-1]`.'
|
3150
|
+
Reference: '#first-and-last'
|
3151
|
+
Enabled: false
|
3152
|
+
VersionAdded: '1.58'
|
3153
|
+
Safe: false
|
3154
|
+
|
3099
3155
|
Style/ArrayIntersect:
|
3100
3156
|
Description: 'Use `array1.intersect?(array2)` instead of `(array1 & array2).any?`.'
|
3101
3157
|
Enabled: 'pending'
|
@@ -3667,8 +3723,9 @@ Style/EmptyCaseCondition:
|
|
3667
3723
|
Style/EmptyElse:
|
3668
3724
|
Description: 'Avoid empty else-clauses.'
|
3669
3725
|
Enabled: true
|
3726
|
+
AutoCorrect: contextual
|
3670
3727
|
VersionAdded: '0.28'
|
3671
|
-
VersionChanged: '
|
3728
|
+
VersionChanged: '1.61'
|
3672
3729
|
EnforcedStyle: both
|
3673
3730
|
# empty - warn only on empty `else`
|
3674
3731
|
# nil - warn on `else` with nil in it
|
@@ -3682,7 +3739,9 @@ Style/EmptyElse:
|
|
3682
3739
|
Style/EmptyHeredoc:
|
3683
3740
|
Description: 'Checks for using empty heredoc to reduce redundancy.'
|
3684
3741
|
Enabled: pending
|
3742
|
+
AutoCorrect: contextual
|
3685
3743
|
VersionAdded: '1.32'
|
3744
|
+
VersionChanged: '1.61'
|
3686
3745
|
|
3687
3746
|
Style/EmptyLambdaParameter:
|
3688
3747
|
Description: 'Omit parens for empty lambda parameters.'
|
@@ -3700,7 +3759,9 @@ Style/EmptyMethod:
|
|
3700
3759
|
Description: 'Checks the formatting of empty method definitions.'
|
3701
3760
|
StyleGuide: '#no-single-line-methods'
|
3702
3761
|
Enabled: true
|
3762
|
+
AutoCorrect: contextual
|
3703
3763
|
VersionAdded: '0.46'
|
3764
|
+
VersionChanged: '1.61'
|
3704
3765
|
EnforcedStyle: compact
|
3705
3766
|
SupportedStyles:
|
3706
3767
|
- compact
|
@@ -4678,6 +4739,7 @@ Style/OperatorMethodCall:
|
|
4678
4739
|
|
4679
4740
|
Style/OptionHash:
|
4680
4741
|
Description: "Don't use option hashes when you can use keyword arguments."
|
4742
|
+
StyleGuide: '#keyword-arguments-vs-option-hashes'
|
4681
4743
|
Enabled: false
|
4682
4744
|
VersionAdded: '0.33'
|
4683
4745
|
VersionChanged: '0.34'
|
@@ -4800,8 +4862,9 @@ Style/RaiseArgs:
|
|
4800
4862
|
Description: 'Checks the arguments passed to raise/fail.'
|
4801
4863
|
StyleGuide: '#exception-class-messages'
|
4802
4864
|
Enabled: true
|
4865
|
+
Safe: false
|
4803
4866
|
VersionAdded: '0.14'
|
4804
|
-
VersionChanged: '1.
|
4867
|
+
VersionChanged: '1.61'
|
4805
4868
|
EnforcedStyle: exploded
|
4806
4869
|
SupportedStyles:
|
4807
4870
|
- compact # raise Exception.new(msg)
|
@@ -4902,7 +4965,7 @@ Style/RedundantFetchBlock:
|
|
4902
4965
|
Description: >-
|
4903
4966
|
Use `fetch(key, value)` instead of `fetch(key) { value }`
|
4904
4967
|
when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
|
4905
|
-
Reference: 'https://github.com/
|
4968
|
+
Reference: 'https://github.com/fastruby/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
|
4906
4969
|
Enabled: true
|
4907
4970
|
Safe: false
|
4908
4971
|
# If enabled, this cop will autocorrect usages of
|
@@ -4942,10 +5005,11 @@ Style/RedundantHeredocDelimiterQuotes:
|
|
4942
5005
|
Style/RedundantInitialize:
|
4943
5006
|
Description: 'Checks for redundant `initialize` methods.'
|
4944
5007
|
Enabled: pending
|
5008
|
+
AutoCorrect: contextual
|
4945
5009
|
Safe: false
|
4946
5010
|
AllowComments: true
|
4947
5011
|
VersionAdded: '1.27'
|
4948
|
-
VersionChanged: '1.
|
5012
|
+
VersionChanged: '1.61'
|
4949
5013
|
|
4950
5014
|
Style/RedundantInterpolation:
|
4951
5015
|
Description: 'Checks for strings that are just an interpolated expression.'
|
@@ -5123,7 +5187,7 @@ Style/Sample:
|
|
5123
5187
|
Description: >-
|
5124
5188
|
Use `sample` instead of `shuffle.first`,
|
5125
5189
|
`shuffle.last`, and `shuffle[Integer]`.
|
5126
|
-
Reference: 'https://github.com/
|
5190
|
+
Reference: 'https://github.com/fastruby/fast-ruby#arrayshufflefirst-vs-arraysample-code'
|
5127
5191
|
Enabled: true
|
5128
5192
|
VersionAdded: '0.30'
|
5129
5193
|
|
@@ -5190,6 +5254,7 @@ Style/SingleLineBlockParams:
|
|
5190
5254
|
|
5191
5255
|
Style/SingleLineDoEndBlock:
|
5192
5256
|
Description: 'Checks for single-line `do`...`end` blocks.'
|
5257
|
+
StyleGuide: '#single-line-do-end-block'
|
5193
5258
|
Enabled: pending
|
5194
5259
|
VersionAdded: '1.57'
|
5195
5260
|
|
@@ -5202,7 +5267,8 @@ Style/SingleLineMethods:
|
|
5202
5267
|
AllowIfMethodIsEmpty: true
|
5203
5268
|
|
5204
5269
|
Style/SlicingWithRange:
|
5205
|
-
Description: 'Checks array slicing is done with endless ranges when suitable.'
|
5270
|
+
Description: 'Checks array slicing is done with redundant, endless, and beginless ranges when suitable.'
|
5271
|
+
StyleGuide: '#slicing-with-ranges'
|
5206
5272
|
Enabled: true
|
5207
5273
|
VersionAdded: '0.83'
|
5208
5274
|
Safe: false
|
@@ -5329,6 +5395,12 @@ Style/StructInheritance:
|
|
5329
5395
|
VersionAdded: '0.29'
|
5330
5396
|
VersionChanged: '1.20'
|
5331
5397
|
|
5398
|
+
Style/SuperWithArgsParentheses:
|
5399
|
+
Description: 'Use parentheses for `super` with arguments.'
|
5400
|
+
StyleGuide: '#super-with-args'
|
5401
|
+
Enabled: pending
|
5402
|
+
VersionAdded: '1.58'
|
5403
|
+
|
5332
5404
|
Style/SwapValues:
|
5333
5405
|
Description: 'Enforces the use of shorthand-style swapping of 2 variables.'
|
5334
5406
|
StyleGuide: '#values-swapping'
|