rubocop 0.74.0 → 0.78.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 +3 -2
- data/config/default.yml +366 -318
- data/lib/rubocop.rb +48 -32
- data/lib/rubocop/ast/builder.rb +1 -0
- data/lib/rubocop/ast/node.rb +5 -1
- data/lib/rubocop/ast/node/block_node.rb +2 -0
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +1 -12
- data/lib/rubocop/ast/node/return_node.rb +24 -0
- data/lib/rubocop/cli.rb +11 -227
- data/lib/rubocop/cli/command.rb +21 -0
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +105 -0
- data/lib/rubocop/cli/command/base.rb +33 -0
- data/lib/rubocop/cli/command/execute_runner.rb +76 -0
- data/lib/rubocop/cli/command/init_dotfile.rb +45 -0
- data/lib/rubocop/cli/command/show_cops.rb +73 -0
- data/lib/rubocop/cli/command/version.rb +17 -0
- data/lib/rubocop/cli/environment.rb +21 -0
- data/lib/rubocop/comment_config.rb +5 -4
- data/lib/rubocop/config.rb +12 -1
- data/lib/rubocop/config_loader.rb +21 -3
- data/lib/rubocop/config_loader_resolver.rb +4 -3
- data/lib/rubocop/config_obsoletion.rb +85 -11
- data/lib/rubocop/config_validator.rb +28 -19
- data/lib/rubocop/cop/autocorrect_logic.rb +3 -3
- data/lib/rubocop/cop/bundler/gem_comment.rb +4 -4
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +2 -2
- data/lib/rubocop/cop/commissioner.rb +15 -7
- data/lib/rubocop/cop/cop.rb +35 -9
- data/lib/rubocop/cop/corrector.rb +8 -7
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +43 -17
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/space_corrector.rb +1 -2
- data/lib/rubocop/cop/generator.rb +3 -3
- data/lib/rubocop/cop/generator/configuration_injector.rb +9 -4
- data/lib/rubocop/cop/generator/require_file_injector.rb +1 -1
- data/lib/rubocop/cop/internal_affairs.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +59 -0
- data/lib/rubocop/cop/layout/{align_arguments.rb → argument_alignment.rb} +1 -1
- data/lib/rubocop/cop/layout/{align_array.rb → array_alignment.rb} +1 -1
- data/lib/rubocop/cop/layout/{indent_assignment.rb → assignment_indentation.rb} +11 -2
- data/lib/rubocop/cop/layout/block_alignment.rb +2 -2
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/comment_indentation.rb +10 -13
- data/lib/rubocop/cop/layout/empty_comment.rb +7 -16
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +22 -7
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +2 -2
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +2 -2
- data/lib/rubocop/cop/layout/end_of_line.rb +8 -3
- data/lib/rubocop/cop/layout/extra_spacing.rb +1 -7
- data/lib/rubocop/cop/layout/{indent_first_argument.rb → first_argument_indentation.rb} +14 -12
- data/lib/rubocop/cop/layout/{indent_first_array_element.rb → first_array_element_indentation.rb} +4 -4
- data/lib/rubocop/cop/layout/{indent_first_hash_element.rb → first_hash_element_indentation.rb} +4 -4
- data/lib/rubocop/cop/layout/{indent_first_parameter.rb → first_parameter_indentation.rb} +3 -3
- data/lib/rubocop/cop/layout/{align_hash.rb → hash_alignment.rb} +8 -4
- data/lib/rubocop/cop/layout/{indent_heredoc.rb → heredoc_indentation.rb} +6 -6
- data/lib/rubocop/cop/layout/{leading_blank_lines.rb → leading_empty_lines.rb} +1 -1
- data/lib/rubocop/cop/{metrics → layout}/line_length.rb +41 -114
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +24 -2
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/{align_parameters.rb → parameter_alignment.rb} +1 -1
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +2 -0
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +5 -1
- data/lib/rubocop/cop/layout/space_around_keyword.rb +12 -0
- data/lib/rubocop/cop/layout/space_around_operators.rb +32 -7
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +17 -0
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +9 -7
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +8 -5
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +7 -0
- data/lib/rubocop/cop/layout/space_inside_parens.rb +6 -6
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +2 -0
- data/lib/rubocop/cop/layout/{trailing_blank_lines.rb → trailing_empty_lines.rb} +1 -1
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +18 -2
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +17 -4
- data/lib/rubocop/cop/lint/debugger.rb +1 -1
- data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
- data/lib/rubocop/cop/lint/{duplicated_key.rb → duplicate_hash_key.rb} +1 -1
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +9 -8
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +10 -36
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +2 -2
- data/lib/rubocop/cop/lint/{multiple_compare.rb → multiple_comparison.rb} +1 -1
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +89 -0
- data/lib/rubocop/cop/lint/number_conversion.rb +1 -1
- data/lib/rubocop/cop/lint/{unneeded_cop_disable_directive.rb → redundant_cop_disable_directive.rb} +26 -26
- data/lib/rubocop/cop/lint/{unneeded_cop_enable_directive.rb → redundant_cop_enable_directive.rb} +10 -12
- data/lib/rubocop/cop/lint/{unneeded_require_statement.rb → redundant_require_statement.rb} +1 -1
- data/lib/rubocop/cop/lint/{unneeded_splat_expansion.rb → redundant_splat_expansion.rb} +6 -6
- data/lib/rubocop/cop/lint/{string_conversion_in_interpolation.rb → redundant_string_coercion.rb} +1 -1
- data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +5 -6
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +91 -0
- data/lib/rubocop/cop/lint/{handle_exceptions.rb → suppressed_exception.rb} +1 -1
- data/lib/rubocop/cop/lint/unused_block_argument.rb +22 -6
- data/lib/rubocop/cop/lint/unused_method_argument.rb +23 -5
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +57 -23
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
- data/lib/rubocop/cop/lint/void.rb +7 -26
- data/lib/rubocop/cop/message_annotator.rb +16 -7
- data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
- data/lib/rubocop/cop/metrics/method_length.rb +1 -1
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +23 -6
- data/lib/rubocop/cop/migration/department_name.rb +44 -0
- data/lib/rubocop/cop/mixin/alignment.rb +2 -2
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -1
- data/lib/rubocop/cop/mixin/{hash_alignment.rb → hash_alignment_styles.rb} +1 -1
- data/lib/rubocop/cop/mixin/line_length_help.rb +88 -0
- data/lib/rubocop/cop/mixin/method_complexity.rb +2 -1
- data/lib/rubocop/cop/mixin/nil_methods.rb +4 -4
- data/lib/rubocop/cop/mixin/rational_literal.rb +18 -0
- data/lib/rubocop/cop/mixin/statement_modifier.rb +7 -4
- data/lib/rubocop/cop/mixin/trailing_comma.rb +14 -9
- data/lib/rubocop/cop/naming/{uncommunicative_block_param_name.rb → block_parameter_name.rb} +3 -3
- data/lib/rubocop/cop/naming/file_name.rb +12 -5
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +5 -5
- data/lib/rubocop/cop/naming/method_name.rb +12 -1
- data/lib/rubocop/cop/naming/{uncommunicative_method_param_name.rb → method_parameter_name.rb} +3 -3
- data/lib/rubocop/cop/naming/predicate_name.rb +6 -6
- data/lib/rubocop/cop/naming/variable_name.rb +1 -0
- data/lib/rubocop/cop/offense.rb +29 -7
- data/lib/rubocop/cop/registry.rb +22 -1
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +1 -0
- data/lib/rubocop/cop/style/alias.rb +1 -1
- data/lib/rubocop/cop/style/array_join.rb +1 -1
- data/lib/rubocop/cop/style/attr.rb +10 -2
- data/lib/rubocop/cop/style/block_delimiters.rb +2 -1
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +35 -16
- data/lib/rubocop/cop/style/class_and_module_children.rb +1 -1
- data/lib/rubocop/cop/style/comment_annotation.rb +5 -5
- data/lib/rubocop/cop/style/commented_keyword.rb +8 -2
- data/lib/rubocop/cop/style/conditional_assignment.rb +6 -6
- data/lib/rubocop/cop/style/copyright.rb +11 -7
- data/lib/rubocop/cop/style/documentation_method.rb +44 -0
- data/lib/rubocop/cop/style/double_cop_disable_directive.rb +10 -4
- data/lib/rubocop/cop/style/empty_case_condition.rb +2 -2
- data/lib/rubocop/cop/style/empty_literal.rb +2 -2
- data/lib/rubocop/cop/style/empty_method.rb +5 -5
- data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
- data/lib/rubocop/cop/style/even_odd.rb +1 -1
- data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -1
- data/lib/rubocop/cop/style/format_string.rb +10 -7
- data/lib/rubocop/cop/style/format_string_token.rb +19 -68
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +28 -33
- data/lib/rubocop/cop/style/guard_clause.rb +3 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +2 -2
- data/lib/rubocop/cop/style/if_unless_modifier.rb +93 -15
- data/lib/rubocop/cop/style/infinite_loop.rb +6 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +19 -13
- data/lib/rubocop/cop/style/ip_addresses.rb +4 -4
- data/lib/rubocop/cop/style/line_end_concatenation.rb +14 -10
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +25 -25
- data/lib/rubocop/cop/style/method_def_parentheses.rb +17 -9
- data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
- data/lib/rubocop/cop/style/mixin_usage.rb +11 -1
- data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
- data/lib/rubocop/cop/style/multiline_when_then.rb +1 -1
- data/lib/rubocop/cop/style/nested_modifier.rb +22 -4
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +5 -5
- data/lib/rubocop/cop/style/next.rb +5 -5
- data/lib/rubocop/cop/style/non_nil_check.rb +21 -9
- data/lib/rubocop/cop/style/numeric_literals.rb +7 -3
- data/lib/rubocop/cop/style/option_hash.rb +3 -3
- data/lib/rubocop/cop/style/or_assignment.rb +6 -1
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +14 -0
- data/lib/rubocop/cop/style/{unneeded_capital_w.rb → redundant_capital_w.rb} +1 -1
- data/lib/rubocop/cop/style/{unneeded_condition.rb → redundant_condition.rb} +3 -3
- data/lib/rubocop/cop/style/{unneeded_interpolation.rb → redundant_interpolation.rb} +1 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +16 -7
- data/lib/rubocop/cop/style/{unneeded_percent_q.rb → redundant_percent_q.rb} +1 -1
- data/lib/rubocop/cop/style/redundant_return.rb +39 -29
- data/lib/rubocop/cop/style/redundant_self.rb +18 -1
- data/lib/rubocop/cop/style/{unneeded_sort.rb → redundant_sort.rb} +5 -5
- data/lib/rubocop/cop/style/rescue_modifier.rb +24 -0
- data/lib/rubocop/cop/style/safe_navigation.rb +23 -3
- data/lib/rubocop/cop/style/semicolon.rb +13 -2
- data/lib/rubocop/cop/style/single_line_methods.rb +8 -1
- data/lib/rubocop/cop/style/special_global_vars.rb +5 -7
- data/lib/rubocop/cop/style/ternary_parentheses.rb +19 -0
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +7 -1
- data/lib/rubocop/cop/style/trivial_accessors.rb +5 -5
- data/lib/rubocop/cop/style/while_until_modifier.rb +1 -1
- data/lib/rubocop/cop/team.rb +5 -0
- data/lib/rubocop/cop/util.rb +1 -1
- data/lib/rubocop/cop/utils/format_string.rb +120 -0
- data/lib/rubocop/cop/variable_force.rb +7 -5
- data/lib/rubocop/cop/variable_force/variable.rb +15 -2
- data/lib/rubocop/core_ext/string.rb +0 -24
- data/lib/rubocop/formatter/base_formatter.rb +2 -2
- data/lib/rubocop/formatter/clang_style_formatter.rb +9 -6
- data/lib/rubocop/formatter/emacs_style_formatter.rb +22 -9
- data/lib/rubocop/formatter/file_list_formatter.rb +1 -1
- data/lib/rubocop/formatter/formatter_set.rb +16 -15
- data/lib/rubocop/formatter/json_formatter.rb +6 -5
- data/lib/rubocop/formatter/pacman_formatter.rb +80 -0
- data/lib/rubocop/formatter/simple_text_formatter.rb +16 -4
- data/lib/rubocop/formatter/tap_formatter.rb +18 -7
- data/lib/rubocop/magic_comment.rb +4 -0
- data/lib/rubocop/node_pattern.rb +4 -2
- data/lib/rubocop/options.rb +21 -26
- data/lib/rubocop/processed_source.rb +1 -1
- data/lib/rubocop/rake_task.rb +1 -0
- data/lib/rubocop/result_cache.rb +24 -8
- data/lib/rubocop/runner.rb +60 -33
- data/lib/rubocop/target_finder.rb +12 -6
- data/lib/rubocop/version.rb +1 -1
- metadata +48 -33
- data/lib/rubocop/cop/mixin/ignored_method_patterns.rb +0 -19
- data/lib/rubocop/cop/mixin/safe_mode.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1c6769965ef19c24fed5115e5ee0e6949aef81f2d4f0c64a28e867b694b8f8b
|
4
|
+
data.tar.gz: 6785ee7c23edbb4b47414ca32a9cb7b7e24565c454c8e4a33f742b9a15de8e5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3e28e9ed24f5e757ce4c24f4ee4d079eb5e7ac1c6f50bd50fb512c5b4986d84ec19b0ba426a9b077ca734177a5e5139a50c12f5fe331216abee67bd6a2436b4
|
7
|
+
data.tar.gz: 2f2739072557a141d69a51037e38a0973bee53caf40d216610eaffd3a8f14409e64562ed71a49803ad8b11b71fedc51312657efaecb27189900c7b5c44b2cb8c
|
data/README.md
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
[](https://www.patreon.com/bbatsov)
|
10
10
|
[](#open-collective-backers)
|
11
11
|
[](#open-collective-sponsors)
|
12
|
+
[](https://tidelift.com/subscription/pkg/rubygems-rubocop?utm_source=rubygems-rubocop&utm_medium=referral&utm_campaign=readme)
|
12
13
|
|
13
14
|
<p align="center">
|
14
15
|
<img src="https://raw.githubusercontent.com/rubocop-hq/rubocop/master/logo/rubo-logo-horizontal.png" alt="RuboCop Logo"/>
|
@@ -52,7 +53,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
|
|
52
53
|
might want to use a conservative version lock in your `Gemfile`:
|
53
54
|
|
54
55
|
```rb
|
55
|
-
gem 'rubocop', '~> 0.
|
56
|
+
gem 'rubocop', '~> 0.78.0', require: false
|
56
57
|
```
|
57
58
|
|
58
59
|
## Quickstart
|
@@ -73,7 +74,7 @@ You can read a lot more about RuboCop in its [official docs](https://docs.ruboco
|
|
73
74
|
RuboCop supports the following Ruby implementations:
|
74
75
|
|
75
76
|
* MRI 2.3+
|
76
|
-
* JRuby 9.
|
77
|
+
* JRuby 9.2+
|
77
78
|
|
78
79
|
## Team
|
79
80
|
|
data/config/default.yml
CHANGED
@@ -59,6 +59,7 @@ AllCops:
|
|
59
59
|
- '**/Vagrantfile'
|
60
60
|
Exclude:
|
61
61
|
- 'node_modules/**/*'
|
62
|
+
- 'tmp/**/*'
|
62
63
|
- 'vendor/**/*'
|
63
64
|
- '.git/**/*'
|
64
65
|
# Default formatter will be used if no `-f/--format` option is given.
|
@@ -141,11 +142,12 @@ Bundler/GemComment:
|
|
141
142
|
Description: 'Add a comment describing each gem.'
|
142
143
|
Enabled: false
|
143
144
|
VersionAdded: '0.59'
|
145
|
+
VersionChanged: '0.77'
|
144
146
|
Include:
|
145
147
|
- '**/*.gemfile'
|
146
148
|
- '**/Gemfile'
|
147
149
|
- '**/gems.rb'
|
148
|
-
|
150
|
+
IgnoredGems: []
|
149
151
|
|
150
152
|
Bundler/InsecureProtocolSource:
|
151
153
|
Description: >-
|
@@ -195,9 +197,10 @@ Gemspec/RequiredRubyVersion:
|
|
195
197
|
VersionAdded: '0.52'
|
196
198
|
Include:
|
197
199
|
- '**/*.gemspec'
|
198
|
-
|
200
|
+
|
199
201
|
Gemspec/RubyVersionGlobalsUsage:
|
200
202
|
Description: Checks usage of RUBY_VERSION in gemspec.
|
203
|
+
StyleGuide: '#no-ruby-version-in-the-gemspec'
|
201
204
|
Enabled: true
|
202
205
|
VersionAdded: '0.72'
|
203
206
|
Include:
|
@@ -218,13 +221,14 @@ Layout/AccessModifierIndentation:
|
|
218
221
|
# But it can be overridden by setting this parameter
|
219
222
|
IndentationWidth: ~
|
220
223
|
|
221
|
-
Layout/
|
224
|
+
Layout/ArgumentAlignment:
|
222
225
|
Description: >-
|
223
226
|
Align the arguments of a method call if they span more
|
224
227
|
than one line.
|
225
228
|
StyleGuide: '#no-double-indent'
|
226
229
|
Enabled: true
|
227
230
|
VersionAdded: '0.68'
|
231
|
+
VersionChanged: '0.77'
|
228
232
|
# Alignment of arguments in multi-line method calls.
|
229
233
|
#
|
230
234
|
# The `with_first_argument` style aligns the following lines along the same
|
@@ -246,117 +250,23 @@ Layout/AlignArguments:
|
|
246
250
|
# But it can be overridden by setting this parameter
|
247
251
|
IndentationWidth: ~
|
248
252
|
|
249
|
-
Layout/
|
253
|
+
Layout/ArrayAlignment:
|
250
254
|
Description: >-
|
251
255
|
Align the elements of an array literal if they span more than
|
252
256
|
one line.
|
253
257
|
StyleGuide: '#align-multiline-arrays'
|
254
258
|
Enabled: true
|
255
259
|
VersionAdded: '0.49'
|
260
|
+
VersionChanged: '0.77'
|
256
261
|
|
257
|
-
Layout/
|
258
|
-
Description: >-
|
259
|
-
Align the elements of a hash literal if they span more than
|
260
|
-
one line.
|
261
|
-
Enabled: true
|
262
|
-
AllowMultipleStyles: true
|
263
|
-
VersionAdded: '0.49'
|
264
|
-
# Alignment of entries using hash rocket as separator. Valid values are:
|
265
|
-
#
|
266
|
-
# key - left alignment of keys
|
267
|
-
# 'a' => 2
|
268
|
-
# 'bb' => 3
|
269
|
-
# separator - alignment of hash rockets, keys are right aligned
|
270
|
-
# 'a' => 2
|
271
|
-
# 'bb' => 3
|
272
|
-
# table - left alignment of keys, hash rockets, and values
|
273
|
-
# 'a' => 2
|
274
|
-
# 'bb' => 3
|
275
|
-
EnforcedHashRocketStyle: key
|
276
|
-
SupportedHashRocketStyles:
|
277
|
-
- key
|
278
|
-
- separator
|
279
|
-
- table
|
280
|
-
# Alignment of entries using colon as separator. Valid values are:
|
281
|
-
#
|
282
|
-
# key - left alignment of keys
|
283
|
-
# a: 0
|
284
|
-
# bb: 1
|
285
|
-
# separator - alignment of colons, keys are right aligned
|
286
|
-
# a: 0
|
287
|
-
# bb: 1
|
288
|
-
# table - left alignment of keys and values
|
289
|
-
# a: 0
|
290
|
-
# bb: 1
|
291
|
-
EnforcedColonStyle: key
|
292
|
-
SupportedColonStyles:
|
293
|
-
- key
|
294
|
-
- separator
|
295
|
-
- table
|
296
|
-
# Select whether hashes that are the last argument in a method call should be
|
297
|
-
# inspected? Valid values are:
|
298
|
-
#
|
299
|
-
# always_inspect - Inspect both implicit and explicit hashes.
|
300
|
-
# Registers an offense for:
|
301
|
-
# function(a: 1,
|
302
|
-
# b: 2)
|
303
|
-
# Registers an offense for:
|
304
|
-
# function({a: 1,
|
305
|
-
# b: 2})
|
306
|
-
# always_ignore - Ignore both implicit and explicit hashes.
|
307
|
-
# Accepts:
|
308
|
-
# function(a: 1,
|
309
|
-
# b: 2)
|
310
|
-
# Accepts:
|
311
|
-
# function({a: 1,
|
312
|
-
# b: 2})
|
313
|
-
# ignore_implicit - Ignore only implicit hashes.
|
314
|
-
# Accepts:
|
315
|
-
# function(a: 1,
|
316
|
-
# b: 2)
|
317
|
-
# Registers an offense for:
|
318
|
-
# function({a: 1,
|
319
|
-
# b: 2})
|
320
|
-
# ignore_explicit - Ignore only explicit hashes.
|
321
|
-
# Accepts:
|
322
|
-
# function({a: 1,
|
323
|
-
# b: 2})
|
324
|
-
# Registers an offense for:
|
325
|
-
# function(a: 1,
|
326
|
-
# b: 2)
|
327
|
-
EnforcedLastArgumentHashStyle: always_inspect
|
328
|
-
SupportedLastArgumentHashStyles:
|
329
|
-
- always_inspect
|
330
|
-
- always_ignore
|
331
|
-
- ignore_implicit
|
332
|
-
- ignore_explicit
|
333
|
-
|
334
|
-
Layout/AlignParameters:
|
262
|
+
Layout/AssignmentIndentation:
|
335
263
|
Description: >-
|
336
|
-
|
337
|
-
|
338
|
-
StyleGuide: '#no-double-indent'
|
264
|
+
Checks the indentation of the first line of the
|
265
|
+
right-hand-side of a multi-line assignment.
|
339
266
|
Enabled: true
|
340
267
|
VersionAdded: '0.49'
|
341
|
-
VersionChanged: '0.
|
342
|
-
#
|
343
|
-
#
|
344
|
-
# The `with_first_parameter` style aligns the following lines along the same
|
345
|
-
# column as the first parameter.
|
346
|
-
#
|
347
|
-
# def method_foo(a,
|
348
|
-
# b)
|
349
|
-
#
|
350
|
-
# The `with_fixed_indentation` style aligns the following lines with one
|
351
|
-
# level of indentation relative to the start of the line with the method call.
|
352
|
-
#
|
353
|
-
# def method_foo(a,
|
354
|
-
# b)
|
355
|
-
EnforcedStyle: with_first_parameter
|
356
|
-
SupportedStyles:
|
357
|
-
- with_first_parameter
|
358
|
-
- with_fixed_indentation
|
359
|
-
# By default, the indentation width from Layout/IndentationWidth is used
|
268
|
+
VersionChanged: '0.77'
|
269
|
+
# By default, the indentation width from `Layout/IndentationWidth` is used
|
360
270
|
# But it can be overridden by setting this parameter
|
361
271
|
IndentationWidth: ~
|
362
272
|
|
@@ -624,56 +534,11 @@ Layout/ExtraSpacing:
|
|
624
534
|
# When true, forces the alignment of `=` in assignments on consecutive lines.
|
625
535
|
ForceEqualSignAlignment: false
|
626
536
|
|
627
|
-
Layout/
|
628
|
-
Description: >-
|
629
|
-
Checks for a line break before the first element in a
|
630
|
-
multi-line array.
|
631
|
-
Enabled: false
|
632
|
-
VersionAdded: '0.49'
|
633
|
-
|
634
|
-
Layout/FirstHashElementLineBreak:
|
635
|
-
Description: >-
|
636
|
-
Checks for a line break before the first element in a
|
637
|
-
multi-line hash.
|
638
|
-
Enabled: false
|
639
|
-
VersionAdded: '0.49'
|
640
|
-
|
641
|
-
Layout/FirstMethodArgumentLineBreak:
|
642
|
-
Description: >-
|
643
|
-
Checks for a line break before the first argument in a
|
644
|
-
multi-line method call.
|
645
|
-
Enabled: false
|
646
|
-
VersionAdded: '0.49'
|
647
|
-
|
648
|
-
Layout/FirstMethodParameterLineBreak:
|
649
|
-
Description: >-
|
650
|
-
Checks for a line break before the first parameter in a
|
651
|
-
multi-line method parameter definition.
|
652
|
-
Enabled: false
|
653
|
-
VersionAdded: '0.49'
|
654
|
-
|
655
|
-
Layout/HeredocArgumentClosingParenthesis:
|
656
|
-
Description: >-
|
657
|
-
Checks for the placement of the closing parenthesis in a
|
658
|
-
method call that passes a HEREDOC string as an argument.
|
659
|
-
Enabled: false
|
660
|
-
StyleGuide: '#heredoc-argument-closing-parentheses'
|
661
|
-
VersionAdded: '0.68'
|
662
|
-
|
663
|
-
Layout/IndentAssignment:
|
664
|
-
Description: >-
|
665
|
-
Checks the indentation of the first line of the
|
666
|
-
right-hand-side of a multi-line assignment.
|
667
|
-
Enabled: true
|
668
|
-
VersionAdded: '0.49'
|
669
|
-
# By default, the indentation width from `Layout/IndentationWidth` is used
|
670
|
-
# But it can be overridden by setting this parameter
|
671
|
-
IndentationWidth: ~
|
672
|
-
|
673
|
-
Layout/IndentFirstArgument:
|
537
|
+
Layout/FirstArgumentIndentation:
|
674
538
|
Description: 'Checks the indentation of the first argument in a method call.'
|
675
539
|
Enabled: true
|
676
540
|
VersionAdded: '0.68'
|
541
|
+
VersionChanged: '0.77'
|
677
542
|
EnforcedStyle: special_for_inner_method_call_in_parentheses
|
678
543
|
SupportedStyles:
|
679
544
|
# The first parameter should always be indented one step more than the
|
@@ -694,12 +559,13 @@ Layout/IndentFirstArgument:
|
|
694
559
|
# But it can be overridden by setting this parameter
|
695
560
|
IndentationWidth: ~
|
696
561
|
|
697
|
-
Layout/
|
562
|
+
Layout/FirstArrayElementIndentation:
|
698
563
|
Description: >-
|
699
564
|
Checks the indentation of the first element in an array
|
700
565
|
literal.
|
701
566
|
Enabled: true
|
702
567
|
VersionAdded: '0.68'
|
568
|
+
VersionChanged: '0.77'
|
703
569
|
# The value `special_inside_parentheses` means that array literals with
|
704
570
|
# brackets that have their opening bracket on the same line as a surrounding
|
705
571
|
# opening round parenthesis, shall have their first element indented relative
|
@@ -720,10 +586,18 @@ Layout/IndentFirstArrayElement:
|
|
720
586
|
# But it can be overridden by setting this parameter
|
721
587
|
IndentationWidth: ~
|
722
588
|
|
723
|
-
Layout/
|
589
|
+
Layout/FirstArrayElementLineBreak:
|
590
|
+
Description: >-
|
591
|
+
Checks for a line break before the first element in a
|
592
|
+
multi-line array.
|
593
|
+
Enabled: false
|
594
|
+
VersionAdded: '0.49'
|
595
|
+
|
596
|
+
Layout/FirstHashElementIndentation:
|
724
597
|
Description: 'Checks the indentation of the first key in a hash literal.'
|
725
598
|
Enabled: true
|
726
599
|
VersionAdded: '0.68'
|
600
|
+
VersionChanged: '0.77'
|
727
601
|
# The value `special_inside_parentheses` means that hash literals with braces
|
728
602
|
# that have their opening brace on the same line as a surrounding opening
|
729
603
|
# round parenthesis, shall have their first key indented relative to the
|
@@ -744,13 +618,34 @@ Layout/IndentFirstHashElement:
|
|
744
618
|
# But it can be overridden by setting this parameter
|
745
619
|
IndentationWidth: ~
|
746
620
|
|
747
|
-
Layout/
|
621
|
+
Layout/FirstHashElementLineBreak:
|
622
|
+
Description: >-
|
623
|
+
Checks for a line break before the first element in a
|
624
|
+
multi-line hash.
|
625
|
+
Enabled: false
|
626
|
+
VersionAdded: '0.49'
|
627
|
+
|
628
|
+
Layout/FirstMethodArgumentLineBreak:
|
629
|
+
Description: >-
|
630
|
+
Checks for a line break before the first argument in a
|
631
|
+
multi-line method call.
|
632
|
+
Enabled: false
|
633
|
+
VersionAdded: '0.49'
|
634
|
+
|
635
|
+
Layout/FirstMethodParameterLineBreak:
|
636
|
+
Description: >-
|
637
|
+
Checks for a line break before the first parameter in a
|
638
|
+
multi-line method parameter definition.
|
639
|
+
Enabled: false
|
640
|
+
VersionAdded: '0.49'
|
641
|
+
|
642
|
+
Layout/FirstParameterIndentation:
|
748
643
|
Description: >-
|
749
644
|
Checks the indentation of the first parameter in a
|
750
645
|
method definition.
|
751
646
|
Enabled: true
|
752
647
|
VersionAdded: '0.49'
|
753
|
-
VersionChanged: '0.
|
648
|
+
VersionChanged: '0.77'
|
754
649
|
EnforcedStyle: consistent
|
755
650
|
SupportedStyles:
|
756
651
|
- consistent
|
@@ -759,12 +654,98 @@ Layout/IndentFirstParameter:
|
|
759
654
|
# But it can be overridden by setting this parameter
|
760
655
|
IndentationWidth: ~
|
761
656
|
|
762
|
-
Layout/
|
657
|
+
Layout/HashAlignment:
|
658
|
+
Description: >-
|
659
|
+
Align the elements of a hash literal if they span more than
|
660
|
+
one line.
|
661
|
+
Enabled: true
|
662
|
+
AllowMultipleStyles: true
|
663
|
+
VersionAdded: '0.49'
|
664
|
+
VersionChanged: '0.77'
|
665
|
+
# Alignment of entries using hash rocket as separator. Valid values are:
|
666
|
+
#
|
667
|
+
# key - left alignment of keys
|
668
|
+
# 'a' => 2
|
669
|
+
# 'bb' => 3
|
670
|
+
# separator - alignment of hash rockets, keys are right aligned
|
671
|
+
# 'a' => 2
|
672
|
+
# 'bb' => 3
|
673
|
+
# table - left alignment of keys, hash rockets, and values
|
674
|
+
# 'a' => 2
|
675
|
+
# 'bb' => 3
|
676
|
+
EnforcedHashRocketStyle: key
|
677
|
+
SupportedHashRocketStyles:
|
678
|
+
- key
|
679
|
+
- separator
|
680
|
+
- table
|
681
|
+
# Alignment of entries using colon as separator. Valid values are:
|
682
|
+
#
|
683
|
+
# key - left alignment of keys
|
684
|
+
# a: 0
|
685
|
+
# bb: 1
|
686
|
+
# separator - alignment of colons, keys are right aligned
|
687
|
+
# a: 0
|
688
|
+
# bb: 1
|
689
|
+
# table - left alignment of keys and values
|
690
|
+
# a: 0
|
691
|
+
# bb: 1
|
692
|
+
EnforcedColonStyle: key
|
693
|
+
SupportedColonStyles:
|
694
|
+
- key
|
695
|
+
- separator
|
696
|
+
- table
|
697
|
+
# Select whether hashes that are the last argument in a method call should be
|
698
|
+
# inspected? Valid values are:
|
699
|
+
#
|
700
|
+
# always_inspect - Inspect both implicit and explicit hashes.
|
701
|
+
# Registers an offense for:
|
702
|
+
# function(a: 1,
|
703
|
+
# b: 2)
|
704
|
+
# Registers an offense for:
|
705
|
+
# function({a: 1,
|
706
|
+
# b: 2})
|
707
|
+
# always_ignore - Ignore both implicit and explicit hashes.
|
708
|
+
# Accepts:
|
709
|
+
# function(a: 1,
|
710
|
+
# b: 2)
|
711
|
+
# Accepts:
|
712
|
+
# function({a: 1,
|
713
|
+
# b: 2})
|
714
|
+
# ignore_implicit - Ignore only implicit hashes.
|
715
|
+
# Accepts:
|
716
|
+
# function(a: 1,
|
717
|
+
# b: 2)
|
718
|
+
# Registers an offense for:
|
719
|
+
# function({a: 1,
|
720
|
+
# b: 2})
|
721
|
+
# ignore_explicit - Ignore only explicit hashes.
|
722
|
+
# Accepts:
|
723
|
+
# function({a: 1,
|
724
|
+
# b: 2})
|
725
|
+
# Registers an offense for:
|
726
|
+
# function(a: 1,
|
727
|
+
# b: 2)
|
728
|
+
EnforcedLastArgumentHashStyle: always_inspect
|
729
|
+
SupportedLastArgumentHashStyles:
|
730
|
+
- always_inspect
|
731
|
+
- always_ignore
|
732
|
+
- ignore_implicit
|
733
|
+
- ignore_explicit
|
734
|
+
|
735
|
+
Layout/HeredocArgumentClosingParenthesis:
|
736
|
+
Description: >-
|
737
|
+
Checks for the placement of the closing parenthesis in a
|
738
|
+
method call that passes a HEREDOC string as an argument.
|
739
|
+
Enabled: false
|
740
|
+
StyleGuide: '#heredoc-argument-closing-parentheses'
|
741
|
+
VersionAdded: '0.68'
|
742
|
+
|
743
|
+
Layout/HeredocIndentation:
|
763
744
|
Description: 'This cop checks the indentation of the here document bodies.'
|
764
745
|
StyleGuide: '#squiggly-heredocs'
|
765
746
|
Enabled: true
|
766
747
|
VersionAdded: '0.49'
|
767
|
-
VersionChanged: '0.
|
748
|
+
VersionChanged: '0.77'
|
768
749
|
EnforcedStyle: squiggly
|
769
750
|
SupportedStyles:
|
770
751
|
- squiggly
|
@@ -806,11 +787,6 @@ Layout/InitialIndentation:
|
|
806
787
|
Enabled: true
|
807
788
|
VersionAdded: '0.49'
|
808
789
|
|
809
|
-
Layout/LeadingBlankLines:
|
810
|
-
Description: Check for unnecessary blank lines at the beginning of a file.
|
811
|
-
Enabled: true
|
812
|
-
VersionAdded: '0.57'
|
813
|
-
|
814
790
|
Layout/LeadingCommentSpace:
|
815
791
|
Description: 'Comments should start with a space.'
|
816
792
|
StyleGuide: '#hash-space'
|
@@ -819,6 +795,35 @@ Layout/LeadingCommentSpace:
|
|
819
795
|
VersionChanged: '0.73'
|
820
796
|
AllowDoxygenCommentStyle: false
|
821
797
|
|
798
|
+
Layout/LeadingEmptyLines:
|
799
|
+
Description: Check for unnecessary blank lines at the beginning of a file.
|
800
|
+
Enabled: true
|
801
|
+
VersionAdded: '0.57'
|
802
|
+
VersionChanged: '0.77'
|
803
|
+
|
804
|
+
Layout/LineLength:
|
805
|
+
Description: 'Limit lines to 80 characters.'
|
806
|
+
StyleGuide: '#80-character-limits'
|
807
|
+
Enabled: true
|
808
|
+
VersionAdded: '0.25'
|
809
|
+
VersionChanged: '0.78'
|
810
|
+
AutoCorrect: false
|
811
|
+
Max: 80
|
812
|
+
# To make it possible to copy or click on URIs in the code, we allow lines
|
813
|
+
# containing a URI to be longer than Max.
|
814
|
+
AllowHeredoc: true
|
815
|
+
AllowURI: true
|
816
|
+
URISchemes:
|
817
|
+
- http
|
818
|
+
- https
|
819
|
+
# The IgnoreCopDirectives option causes the LineLength rule to ignore cop
|
820
|
+
# directives like '# rubocop: enable ...' when calculating a line's length.
|
821
|
+
IgnoreCopDirectives: true
|
822
|
+
# The IgnoredPatterns option is a list of !ruby/regexp and/or string
|
823
|
+
# elements. Strings will be converted to Regexp objects. A line that matches
|
824
|
+
# any regular expression listed in this option will be ignored by LineLength.
|
825
|
+
IgnoredPatterns: []
|
826
|
+
|
822
827
|
Layout/MultilineArrayBraceLayout:
|
823
828
|
Description: >-
|
824
829
|
Checks that the closing brace in an array literal is
|
@@ -960,6 +965,35 @@ Layout/MultilineOperationIndentation:
|
|
960
965
|
# But it can be overridden by setting this parameter
|
961
966
|
IndentationWidth: ~
|
962
967
|
|
968
|
+
Layout/ParameterAlignment:
|
969
|
+
Description: >-
|
970
|
+
Align the parameters of a method definition if they span more
|
971
|
+
than one line.
|
972
|
+
StyleGuide: '#no-double-indent'
|
973
|
+
Enabled: true
|
974
|
+
VersionAdded: '0.49'
|
975
|
+
VersionChanged: '0.77'
|
976
|
+
# Alignment of parameters in multi-line method calls.
|
977
|
+
#
|
978
|
+
# The `with_first_parameter` style aligns the following lines along the same
|
979
|
+
# column as the first parameter.
|
980
|
+
#
|
981
|
+
# def method_foo(a,
|
982
|
+
# b)
|
983
|
+
#
|
984
|
+
# The `with_fixed_indentation` style aligns the following lines with one
|
985
|
+
# level of indentation relative to the start of the line with the method call.
|
986
|
+
#
|
987
|
+
# def method_foo(a,
|
988
|
+
# b)
|
989
|
+
EnforcedStyle: with_first_parameter
|
990
|
+
SupportedStyles:
|
991
|
+
- with_first_parameter
|
992
|
+
- with_fixed_indentation
|
993
|
+
# By default, the indentation width from Layout/IndentationWidth is used
|
994
|
+
# But it can be overridden by setting this parameter
|
995
|
+
IndentationWidth: ~
|
996
|
+
|
963
997
|
Layout/RescueEnsureAlignment:
|
964
998
|
Description: 'Align rescues and ensures correctly.'
|
965
999
|
Enabled: true
|
@@ -1033,6 +1067,10 @@ Layout/SpaceAroundOperators:
|
|
1033
1067
|
# with an operator on the previous or next line, not counting empty lines
|
1034
1068
|
# or comment lines.
|
1035
1069
|
AllowForAlignment: true
|
1070
|
+
EnforcedStyleForExponentOperator: no_space
|
1071
|
+
SupportedStylesForExponentOperator:
|
1072
|
+
- space
|
1073
|
+
- no_space
|
1036
1074
|
|
1037
1075
|
Layout/SpaceBeforeBlockBraces:
|
1038
1076
|
Description: >-
|
@@ -1202,11 +1240,12 @@ Layout/Tab:
|
|
1202
1240
|
# replace each tab.
|
1203
1241
|
IndentationWidth: ~
|
1204
1242
|
|
1205
|
-
Layout/
|
1243
|
+
Layout/TrailingEmptyLines:
|
1206
1244
|
Description: 'Checks trailing blank lines and final newline.'
|
1207
1245
|
StyleGuide: '#newline-eof'
|
1208
1246
|
Enabled: true
|
1209
1247
|
VersionAdded: '0.49'
|
1248
|
+
VersionChanged: '0.77'
|
1210
1249
|
EnforcedStyle: final_newline
|
1211
1250
|
SupportedStyles:
|
1212
1251
|
- final_newline
|
@@ -1290,16 +1329,17 @@ Lint/DuplicateCaseCondition:
|
|
1290
1329
|
Enabled: true
|
1291
1330
|
VersionAdded: '0.45'
|
1292
1331
|
|
1332
|
+
Lint/DuplicateHashKey:
|
1333
|
+
Description: 'Check for duplicate keys in hash literals.'
|
1334
|
+
Enabled: true
|
1335
|
+
VersionAdded: '0.34'
|
1336
|
+
VersionChanged: '0.77'
|
1337
|
+
|
1293
1338
|
Lint/DuplicateMethods:
|
1294
1339
|
Description: 'Check for duplicate method definitions.'
|
1295
1340
|
Enabled: true
|
1296
1341
|
VersionAdded: '0.29'
|
1297
1342
|
|
1298
|
-
Lint/DuplicatedKey:
|
1299
|
-
Description: 'Check for duplicate keys in hash literals.'
|
1300
|
-
Enabled: true
|
1301
|
-
VersionAdded: '0.34'
|
1302
|
-
|
1303
1343
|
Lint/EachWithObjectArgument:
|
1304
1344
|
Description: 'Check for immutable argument given to each_with_object.'
|
1305
1345
|
Enabled: true
|
@@ -1367,14 +1407,6 @@ Lint/FormatParameterMismatch:
|
|
1367
1407
|
Enabled: true
|
1368
1408
|
VersionAdded: '0.33'
|
1369
1409
|
|
1370
|
-
Lint/HandleExceptions:
|
1371
|
-
Description: "Don't suppress exception."
|
1372
|
-
StyleGuide: '#dont-hide-exceptions'
|
1373
|
-
Enabled: true
|
1374
|
-
AllowComments: false
|
1375
|
-
VersionAdded: '0.9'
|
1376
|
-
VersionChanged: '0.70'
|
1377
|
-
|
1378
1410
|
Lint/HeredocMethodCallPosition:
|
1379
1411
|
Description: >-
|
1380
1412
|
Checks for the ordering of a method call where
|
@@ -1444,10 +1476,11 @@ Lint/MissingCopEnableDirective:
|
|
1444
1476
|
# .inf for any size
|
1445
1477
|
MaximumRangeSize: .inf
|
1446
1478
|
|
1447
|
-
Lint/
|
1448
|
-
Description: "Use `&&` operator to compare multiple
|
1479
|
+
Lint/MultipleComparison:
|
1480
|
+
Description: "Use `&&` operator to compare multiple values."
|
1449
1481
|
Enabled: true
|
1450
1482
|
VersionAdded: '0.47'
|
1483
|
+
VersionChanged: '0.77'
|
1451
1484
|
|
1452
1485
|
Lint/NestedMethodDefinition:
|
1453
1486
|
Description: 'Do not use nested method definitions.'
|
@@ -1467,6 +1500,12 @@ Lint/NextWithoutAccumulator:
|
|
1467
1500
|
Enabled: true
|
1468
1501
|
VersionAdded: '0.36'
|
1469
1502
|
|
1503
|
+
Lint/NonDeterministicRequireOrder:
|
1504
|
+
Description: 'Always sort arrays returned by Dir.glob when requiring files.'
|
1505
|
+
Enabled: true
|
1506
|
+
VersionAdded: '0.78'
|
1507
|
+
Safe: false
|
1508
|
+
|
1470
1509
|
Lint/NonLocalExitFromIterator:
|
1471
1510
|
Description: 'Do not use return in iterator to cause non-local exit.'
|
1472
1511
|
Enabled: true
|
@@ -1512,6 +1551,36 @@ Lint/RandOne:
|
|
1512
1551
|
Enabled: true
|
1513
1552
|
VersionAdded: '0.36'
|
1514
1553
|
|
1554
|
+
Lint/RedundantCopDisableDirective:
|
1555
|
+
Description: >-
|
1556
|
+
Checks for rubocop:disable comments that can be removed.
|
1557
|
+
Note: this cop is not disabled when disabling all cops.
|
1558
|
+
It must be explicitly disabled.
|
1559
|
+
Enabled: true
|
1560
|
+
VersionAdded: '0.76'
|
1561
|
+
|
1562
|
+
Lint/RedundantCopEnableDirective:
|
1563
|
+
Description: Checks for rubocop:enable comments that can be removed.
|
1564
|
+
Enabled: true
|
1565
|
+
VersionAdded: '0.76'
|
1566
|
+
|
1567
|
+
Lint/RedundantRequireStatement:
|
1568
|
+
Description: 'Checks for unnecessary `require` statement.'
|
1569
|
+
Enabled: true
|
1570
|
+
VersionAdded: '0.76'
|
1571
|
+
|
1572
|
+
Lint/RedundantSplatExpansion:
|
1573
|
+
Description: 'Checks for splat unnecessarily being called on literals.'
|
1574
|
+
Enabled: true
|
1575
|
+
VersionChanged: '0.76'
|
1576
|
+
|
1577
|
+
Lint/RedundantStringCoercion:
|
1578
|
+
Description: 'Checks for Object#to_s usage in string interpolation.'
|
1579
|
+
StyleGuide: '#no-to-s'
|
1580
|
+
Enabled: true
|
1581
|
+
VersionAdded: '0.19'
|
1582
|
+
VersionChanged: '0.77'
|
1583
|
+
|
1515
1584
|
Lint/RedundantWithIndex:
|
1516
1585
|
Description: 'Checks for redundant `with_index`.'
|
1517
1586
|
Enabled: true
|
@@ -1557,8 +1626,8 @@ Lint/SafeNavigationChain:
|
|
1557
1626
|
Description: 'Do not chain ordinary method call after safe navigation operator.'
|
1558
1627
|
Enabled: true
|
1559
1628
|
VersionAdded: '0.47'
|
1560
|
-
VersionChanged: '0.
|
1561
|
-
|
1629
|
+
VersionChanged: '0.77'
|
1630
|
+
AllowedMethods:
|
1562
1631
|
- present?
|
1563
1632
|
- blank?
|
1564
1633
|
- presence
|
@@ -1572,14 +1641,14 @@ Lint/SafeNavigationConsistency:
|
|
1572
1641
|
for all method calls on that same object.
|
1573
1642
|
Enabled: true
|
1574
1643
|
VersionAdded: '0.55'
|
1575
|
-
|
1644
|
+
VersionChanged: '0.77'
|
1645
|
+
AllowedMethods:
|
1576
1646
|
- present?
|
1577
1647
|
- blank?
|
1578
1648
|
- presence
|
1579
1649
|
- try
|
1580
1650
|
- try!
|
1581
1651
|
|
1582
|
-
|
1583
1652
|
Lint/SafeNavigationWithEmpty:
|
1584
1653
|
Description: 'Avoid `foo&.empty?` in conditionals.'
|
1585
1654
|
Enabled: true
|
@@ -1591,6 +1660,11 @@ Lint/ScriptPermission:
|
|
1591
1660
|
VersionAdded: '0.49'
|
1592
1661
|
VersionChanged: '0.50'
|
1593
1662
|
|
1663
|
+
Lint/SendWithMixinArgument:
|
1664
|
+
Description: 'Checks for `send` method when using mixin.'
|
1665
|
+
Enabled: true
|
1666
|
+
VersionAdded: '0.75'
|
1667
|
+
|
1594
1668
|
Lint/ShadowedArgument:
|
1595
1669
|
Description: 'Avoid reassigning arguments before they were used.'
|
1596
1670
|
Enabled: true
|
@@ -1612,12 +1686,13 @@ Lint/ShadowingOuterLocalVariable:
|
|
1612
1686
|
Enabled: true
|
1613
1687
|
VersionAdded: '0.9'
|
1614
1688
|
|
1615
|
-
Lint/
|
1616
|
-
Description: '
|
1617
|
-
StyleGuide: '#
|
1689
|
+
Lint/SuppressedException:
|
1690
|
+
Description: "Don't suppress exceptions."
|
1691
|
+
StyleGuide: '#dont-hide-exceptions'
|
1618
1692
|
Enabled: true
|
1619
|
-
|
1620
|
-
|
1693
|
+
AllowComments: false
|
1694
|
+
VersionAdded: '0.9'
|
1695
|
+
VersionChanged: '0.77'
|
1621
1696
|
|
1622
1697
|
Lint/Syntax:
|
1623
1698
|
Description: 'Checks syntax error.'
|
@@ -1640,30 +1715,6 @@ Lint/UnifiedInteger:
|
|
1640
1715
|
Enabled: true
|
1641
1716
|
VersionAdded: '0.43'
|
1642
1717
|
|
1643
|
-
Lint/UnneededCopDisableDirective:
|
1644
|
-
Description: >-
|
1645
|
-
Checks for rubocop:disable comments that can be removed.
|
1646
|
-
Note: this cop is not disabled when disabling all cops.
|
1647
|
-
It must be explicitly disabled.
|
1648
|
-
Enabled: true
|
1649
|
-
VersionAdded: '0.53'
|
1650
|
-
|
1651
|
-
Lint/UnneededCopEnableDirective:
|
1652
|
-
Description: Checks for rubocop:enable comments that can be removed.
|
1653
|
-
Enabled: true
|
1654
|
-
VersionAdded: '0.53'
|
1655
|
-
|
1656
|
-
Lint/UnneededRequireStatement:
|
1657
|
-
Description: 'Checks for unnecessary `require` statement.'
|
1658
|
-
Enabled: true
|
1659
|
-
VersionAdded: '0.51'
|
1660
|
-
|
1661
|
-
Lint/UnneededSplatExpansion:
|
1662
|
-
Description: 'Checks for splat unnecessarily being called on literals.'
|
1663
|
-
Enabled: true
|
1664
|
-
VersionAdded: '0.43'
|
1665
|
-
VersionChanged: '0.74'
|
1666
|
-
|
1667
1718
|
Lint/UnreachableCode:
|
1668
1719
|
Description: 'Unreachable code.'
|
1669
1720
|
Enabled: true
|
@@ -1746,7 +1797,7 @@ Metrics/AbcSize:
|
|
1746
1797
|
branches, and conditions.
|
1747
1798
|
Reference:
|
1748
1799
|
- http://c2.com/cgi/wiki?AbcMetric
|
1749
|
-
- https://en.wikipedia.org/wiki/ABC_Software_Metric
|
1800
|
+
- https://en.wikipedia.org/wiki/ABC_Software_Metric
|
1750
1801
|
Enabled: true
|
1751
1802
|
VersionAdded: '0.27'
|
1752
1803
|
VersionChanged: '0.66'
|
@@ -1793,29 +1844,6 @@ Metrics/CyclomaticComplexity:
|
|
1793
1844
|
VersionAdded: '0.25'
|
1794
1845
|
Max: 6
|
1795
1846
|
|
1796
|
-
Metrics/LineLength:
|
1797
|
-
Description: 'Limit lines to 80 characters.'
|
1798
|
-
StyleGuide: '#80-character-limits'
|
1799
|
-
Enabled: true
|
1800
|
-
VersionAdded: '0.25'
|
1801
|
-
VersionChanged: '0.68'
|
1802
|
-
AutoCorrect: false
|
1803
|
-
Max: 80
|
1804
|
-
# To make it possible to copy or click on URIs in the code, we allow lines
|
1805
|
-
# containing a URI to be longer than Max.
|
1806
|
-
AllowHeredoc: true
|
1807
|
-
AllowURI: true
|
1808
|
-
URISchemes:
|
1809
|
-
- http
|
1810
|
-
- https
|
1811
|
-
# The IgnoreCopDirectives option causes the LineLength rule to ignore cop
|
1812
|
-
# directives like '# rubocop: enable ...' when calculating a line's length.
|
1813
|
-
IgnoreCopDirectives: false
|
1814
|
-
# The IgnoredPatterns option is a list of !ruby/regexp and/or string
|
1815
|
-
# elements. Strings will be converted to Regexp objects. A line that matches
|
1816
|
-
# any regular expression listed in this option will be ignored by LineLength.
|
1817
|
-
IgnoredPatterns: []
|
1818
|
-
|
1819
1847
|
Metrics/MethodLength:
|
1820
1848
|
Description: 'Avoid methods longer than 10 lines of code.'
|
1821
1849
|
StyleGuide: '#short-methods'
|
@@ -1849,6 +1877,14 @@ Metrics/PerceivedComplexity:
|
|
1849
1877
|
VersionAdded: '0.25'
|
1850
1878
|
Max: 7
|
1851
1879
|
|
1880
|
+
################## Migration #############################
|
1881
|
+
|
1882
|
+
Migration/DepartmentName:
|
1883
|
+
Description: >-
|
1884
|
+
Check that cop names in rubocop:disable (etc) comments are
|
1885
|
+
given with department name.
|
1886
|
+
Enabled: false
|
1887
|
+
|
1852
1888
|
#################### Naming ##############################
|
1853
1889
|
|
1854
1890
|
Naming/AccessorMethodName:
|
@@ -1869,6 +1905,21 @@ Naming/BinaryOperatorParameterName:
|
|
1869
1905
|
Enabled: true
|
1870
1906
|
VersionAdded: '0.50'
|
1871
1907
|
|
1908
|
+
Naming/BlockParameterName:
|
1909
|
+
Description: >-
|
1910
|
+
Checks for block parameter names that contain capital letters,
|
1911
|
+
end in numbers, or do not meet a minimal length.
|
1912
|
+
Enabled: true
|
1913
|
+
VersionAdded: '0.53'
|
1914
|
+
VersionChanged: '0.77'
|
1915
|
+
# Parameter names may be equal to or greater than this value
|
1916
|
+
MinNameLength: 1
|
1917
|
+
AllowNamesEndingInNumbers: true
|
1918
|
+
# Allowed names that will not register an offense
|
1919
|
+
AllowedNames: []
|
1920
|
+
# Forbidden names that will register an offense
|
1921
|
+
ForbiddenNames: []
|
1922
|
+
|
1872
1923
|
Naming/ClassAndModuleCamelCase:
|
1873
1924
|
Description: 'Use CamelCase for classes and modules.'
|
1874
1925
|
StyleGuide: '#camelcase-classes'
|
@@ -1960,7 +2011,7 @@ Naming/HeredocDelimiterNaming:
|
|
1960
2011
|
StyleGuide: '#heredoc-delimiters'
|
1961
2012
|
Enabled: true
|
1962
2013
|
VersionAdded: '0.50'
|
1963
|
-
|
2014
|
+
ForbiddenDelimiters:
|
1964
2015
|
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
|
1965
2016
|
|
1966
2017
|
Naming/MemoizedInstanceVariableName:
|
@@ -1984,26 +2035,58 @@ Naming/MethodName:
|
|
1984
2035
|
SupportedStyles:
|
1985
2036
|
- snake_case
|
1986
2037
|
- camelCase
|
2038
|
+
# Method names matching patterns are always allowed.
|
2039
|
+
#
|
2040
|
+
# IgnoredPatterns:
|
2041
|
+
# - '\A\s*onSelectionBulkChange\s*'
|
2042
|
+
# - '\A\s*onSelectionCleared\s*'
|
2043
|
+
#
|
2044
|
+
IgnoredPatterns: []
|
2045
|
+
|
2046
|
+
Naming/MethodParameterName:
|
2047
|
+
Description: >-
|
2048
|
+
Checks for method parameter names that contain capital letters,
|
2049
|
+
end in numbers, or do not meet a minimal length.
|
2050
|
+
Enabled: true
|
2051
|
+
VersionAdded: '0.53'
|
2052
|
+
VersionChanged: '0.77'
|
2053
|
+
# Parameter names may be equal to or greater than this value
|
2054
|
+
MinNameLength: 3
|
2055
|
+
AllowNamesEndingInNumbers: true
|
2056
|
+
# Allowed names that will not register an offense
|
2057
|
+
AllowedNames:
|
2058
|
+
- io
|
2059
|
+
- id
|
2060
|
+
- to
|
2061
|
+
- by
|
2062
|
+
- 'on'
|
2063
|
+
- in
|
2064
|
+
- at
|
2065
|
+
- ip
|
2066
|
+
- db
|
2067
|
+
- os
|
2068
|
+
# Forbidden names that will register an offense
|
2069
|
+
ForbiddenNames: []
|
1987
2070
|
|
1988
2071
|
Naming/PredicateName:
|
1989
2072
|
Description: 'Check the names of predicate methods.'
|
1990
2073
|
StyleGuide: '#bool-methods-qmark'
|
1991
2074
|
Enabled: true
|
1992
2075
|
VersionAdded: '0.50'
|
1993
|
-
VersionChanged: '0.
|
2076
|
+
VersionChanged: '0.77'
|
1994
2077
|
# Predicate name prefixes.
|
1995
2078
|
NamePrefix:
|
1996
2079
|
- is_
|
1997
2080
|
- has_
|
1998
2081
|
- have_
|
1999
2082
|
# Predicate name prefixes that should be removed.
|
2000
|
-
|
2083
|
+
ForbiddenPrefixes:
|
2001
2084
|
- is_
|
2002
2085
|
- has_
|
2003
2086
|
- have_
|
2004
|
-
# Predicate names which, despite having a
|
2087
|
+
# Predicate names which, despite having a forbidden prefix, or no `?`,
|
2005
2088
|
# should still be accepted
|
2006
|
-
|
2089
|
+
AllowedMethods:
|
2007
2090
|
- is_a?
|
2008
2091
|
# Method definition macros for dynamically generated methods.
|
2009
2092
|
MethodDefinitionMacros:
|
@@ -2021,45 +2104,6 @@ Naming/RescuedExceptionsVariableName:
|
|
2021
2104
|
VersionChanged: '0.68'
|
2022
2105
|
PreferredName: e
|
2023
2106
|
|
2024
|
-
Naming/UncommunicativeBlockParamName:
|
2025
|
-
Description: >-
|
2026
|
-
Checks for block parameter names that contain capital letters,
|
2027
|
-
end in numbers, or do not meet a minimal length.
|
2028
|
-
Enabled: true
|
2029
|
-
VersionAdded: '0.53'
|
2030
|
-
# Parameter names may be equal to or greater than this value
|
2031
|
-
MinNameLength: 1
|
2032
|
-
AllowNamesEndingInNumbers: true
|
2033
|
-
# Whitelisted names that will not register an offense
|
2034
|
-
AllowedNames: []
|
2035
|
-
# Blacklisted names that will register an offense
|
2036
|
-
ForbiddenNames: []
|
2037
|
-
|
2038
|
-
Naming/UncommunicativeMethodParamName:
|
2039
|
-
Description: >-
|
2040
|
-
Checks for method parameter names that contain capital letters,
|
2041
|
-
end in numbers, or do not meet a minimal length.
|
2042
|
-
Enabled: true
|
2043
|
-
VersionAdded: '0.53'
|
2044
|
-
VersionChanged: '0.59'
|
2045
|
-
# Parameter names may be equal to or greater than this value
|
2046
|
-
MinNameLength: 3
|
2047
|
-
AllowNamesEndingInNumbers: true
|
2048
|
-
# Whitelisted names that will not register an offense
|
2049
|
-
AllowedNames:
|
2050
|
-
- io
|
2051
|
-
- id
|
2052
|
-
- to
|
2053
|
-
- by
|
2054
|
-
- 'on'
|
2055
|
-
- in
|
2056
|
-
- at
|
2057
|
-
- ip
|
2058
|
-
- db
|
2059
|
-
# Blacklisted names that will register an offense
|
2060
|
-
ForbiddenNames: []
|
2061
|
-
|
2062
|
-
|
2063
2107
|
Naming/VariableName:
|
2064
2108
|
Description: 'Use the configured style when naming variables.'
|
2065
2109
|
StyleGuide: '#snake-case-symbols-methods-vars'
|
@@ -2706,7 +2750,7 @@ Style/FormatStringToken:
|
|
2706
2750
|
- template
|
2707
2751
|
- unannotated
|
2708
2752
|
VersionAdded: '0.49'
|
2709
|
-
VersionChanged: '0.
|
2753
|
+
VersionChanged: '0.75'
|
2710
2754
|
|
2711
2755
|
Style/FrozenStringLiteralComment:
|
2712
2756
|
Description: >-
|
@@ -2854,8 +2898,9 @@ Style/IpAddresses:
|
|
2854
2898
|
Description: "Don't include literal IP addresses in code."
|
2855
2899
|
Enabled: false
|
2856
2900
|
VersionAdded: '0.58'
|
2857
|
-
|
2858
|
-
|
2901
|
+
VersionChanged: '0.77'
|
2902
|
+
# Allow addresses to be permitted
|
2903
|
+
AllowedAddresses:
|
2859
2904
|
- "::"
|
2860
2905
|
# :: is a valid IPv6 address, but could potentially be legitimately in code
|
2861
2906
|
|
@@ -2899,6 +2944,7 @@ Style/MethodCallWithArgsParentheses:
|
|
2899
2944
|
VersionChanged: '0.61'
|
2900
2945
|
IgnoreMacros: true
|
2901
2946
|
IgnoredMethods: []
|
2947
|
+
IgnoredPatterns: []
|
2902
2948
|
IncludedMacros: []
|
2903
2949
|
AllowParenthesesInMultilineCall: false
|
2904
2950
|
AllowParenthesesInChaining: false
|
@@ -3127,8 +3173,8 @@ Style/NestedParenthesizedCalls:
|
|
3127
3173
|
argument list of another parenthesized method call.
|
3128
3174
|
Enabled: true
|
3129
3175
|
VersionAdded: '0.36'
|
3130
|
-
VersionChanged: '0.
|
3131
|
-
|
3176
|
+
VersionChanged: '0.77'
|
3177
|
+
AllowedMethods:
|
3132
3178
|
- be
|
3133
3179
|
- be_a
|
3134
3180
|
- be_an
|
@@ -3381,6 +3427,16 @@ Style/RedundantBegin:
|
|
3381
3427
|
VersionAdded: '0.10'
|
3382
3428
|
VersionChanged: '0.21'
|
3383
3429
|
|
3430
|
+
Style/RedundantCapitalW:
|
3431
|
+
Description: 'Checks for %W when interpolation is not needed.'
|
3432
|
+
Enabled: true
|
3433
|
+
VersionAdded: '0.76'
|
3434
|
+
|
3435
|
+
Style/RedundantCondition:
|
3436
|
+
Description: 'Checks for unnecessary conditional expressions.'
|
3437
|
+
Enabled: true
|
3438
|
+
VersionAdded: '0.76'
|
3439
|
+
|
3384
3440
|
Style/RedundantConditional:
|
3385
3441
|
Description: "Don't return true/false from a conditional."
|
3386
3442
|
Enabled: true
|
@@ -3399,11 +3455,22 @@ Style/RedundantFreeze:
|
|
3399
3455
|
VersionAdded: '0.34'
|
3400
3456
|
VersionChanged: '0.66'
|
3401
3457
|
|
3458
|
+
Style/RedundantInterpolation:
|
3459
|
+
Description: 'Checks for strings that are just an interpolated expression.'
|
3460
|
+
Enabled: true
|
3461
|
+
VersionAdded: '0.76'
|
3462
|
+
|
3402
3463
|
Style/RedundantParentheses:
|
3403
3464
|
Description: "Checks for parentheses that seem not to serve any purpose."
|
3404
3465
|
Enabled: true
|
3405
3466
|
VersionAdded: '0.36'
|
3406
3467
|
|
3468
|
+
Style/RedundantPercentQ:
|
3469
|
+
Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
|
3470
|
+
StyleGuide: '#percent-q'
|
3471
|
+
Enabled: true
|
3472
|
+
VersionAdded: '0.76'
|
3473
|
+
|
3407
3474
|
Style/RedundantReturn:
|
3408
3475
|
Description: "Don't use return where it's not required."
|
3409
3476
|
StyleGuide: '#no-explicit-return'
|
@@ -3420,6 +3487,13 @@ Style/RedundantSelf:
|
|
3420
3487
|
VersionAdded: '0.10'
|
3421
3488
|
VersionChanged: '0.13'
|
3422
3489
|
|
3490
|
+
Style/RedundantSort:
|
3491
|
+
Description: >-
|
3492
|
+
Use `min` instead of `sort.first`,
|
3493
|
+
`max_by` instead of `sort_by...last`, etc.
|
3494
|
+
Enabled: true
|
3495
|
+
VersionAdded: '0.76'
|
3496
|
+
|
3423
3497
|
Style/RedundantSortBy:
|
3424
3498
|
Description: 'Use `sort` instead of `sort_by { |x| x }`.'
|
3425
3499
|
Enabled: true
|
@@ -3477,11 +3551,11 @@ Style/SafeNavigation:
|
|
3477
3551
|
safe navigation (`&.`).
|
3478
3552
|
Enabled: true
|
3479
3553
|
VersionAdded: '0.43'
|
3480
|
-
VersionChanged: '0.
|
3554
|
+
VersionChanged: '0.77'
|
3481
3555
|
# Safe navigation may cause a statement to start returning `nil` in addition
|
3482
3556
|
# to whatever it used to return.
|
3483
3557
|
ConvertCodeThatCanStartToReturnNil: false
|
3484
|
-
|
3558
|
+
AllowedMethods:
|
3485
3559
|
- present?
|
3486
3560
|
- blank?
|
3487
3561
|
- presence
|
@@ -3586,6 +3660,8 @@ Style/StringHashKeys:
|
|
3586
3660
|
StyleGuide: '#symbols-as-keys'
|
3587
3661
|
Enabled: false
|
3588
3662
|
VersionAdded: '0.52'
|
3663
|
+
VersionChanged: '0.75'
|
3664
|
+
Safe: false
|
3589
3665
|
|
3590
3666
|
Style/StringLiterals:
|
3591
3667
|
Description: 'Checks if uses of quotes match the configured preference.'
|
@@ -3757,7 +3833,7 @@ Style/TrivialAccessors:
|
|
3757
3833
|
StyleGuide: '#attr_family'
|
3758
3834
|
Enabled: true
|
3759
3835
|
VersionAdded: '0.9'
|
3760
|
-
VersionChanged: '0.
|
3836
|
+
VersionChanged: '0.77'
|
3761
3837
|
# When set to `false` the cop will suggest the use of accessor methods
|
3762
3838
|
# in situations like:
|
3763
3839
|
#
|
@@ -3778,7 +3854,7 @@ Style/TrivialAccessors:
|
|
3778
3854
|
# Commonly used in DSLs
|
3779
3855
|
AllowDSLWriters: false
|
3780
3856
|
IgnoreClassMethods: false
|
3781
|
-
|
3857
|
+
AllowedMethods:
|
3782
3858
|
- to_ary
|
3783
3859
|
- to_a
|
3784
3860
|
- to_c
|
@@ -3805,35 +3881,6 @@ Style/UnlessElse:
|
|
3805
3881
|
Enabled: true
|
3806
3882
|
VersionAdded: '0.9'
|
3807
3883
|
|
3808
|
-
Style/UnneededCapitalW:
|
3809
|
-
Description: 'Checks for %W when interpolation is not needed.'
|
3810
|
-
Enabled: true
|
3811
|
-
VersionAdded: '0.21'
|
3812
|
-
VersionChanged: '0.24'
|
3813
|
-
|
3814
|
-
Style/UnneededCondition:
|
3815
|
-
Description: 'Checks for unnecessary conditional expressions.'
|
3816
|
-
Enabled: true
|
3817
|
-
VersionAdded: '0.57'
|
3818
|
-
|
3819
|
-
Style/UnneededInterpolation:
|
3820
|
-
Description: 'Checks for strings that are just an interpolated expression.'
|
3821
|
-
Enabled: true
|
3822
|
-
VersionAdded: '0.36'
|
3823
|
-
|
3824
|
-
Style/UnneededPercentQ:
|
3825
|
-
Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
|
3826
|
-
StyleGuide: '#percent-q'
|
3827
|
-
Enabled: true
|
3828
|
-
VersionAdded: '0.24'
|
3829
|
-
|
3830
|
-
Style/UnneededSort:
|
3831
|
-
Description: >-
|
3832
|
-
Use `min` instead of `sort.first`,
|
3833
|
-
`max_by` instead of `sort_by...last`, etc.
|
3834
|
-
Enabled: true
|
3835
|
-
VersionAdded: '0.55'
|
3836
|
-
|
3837
3884
|
Style/UnpackFirst:
|
3838
3885
|
Description: >-
|
3839
3886
|
Checks for accessing the first element of `String#unpack`
|
@@ -3904,8 +3951,9 @@ Style/YodaCondition:
|
|
3904
3951
|
- require_for_all_comparison_operators
|
3905
3952
|
# enforce yoda only for equality operators: `!=` and `==`
|
3906
3953
|
- require_for_equality_operators_only
|
3954
|
+
Safe: false
|
3907
3955
|
VersionAdded: '0.49'
|
3908
|
-
VersionChanged: '0.
|
3956
|
+
VersionChanged: '0.75'
|
3909
3957
|
|
3910
3958
|
Style/ZeroLengthPredicate:
|
3911
3959
|
Description: 'Use #empty? when testing for objects of length 0.'
|