rubocop 1.43.0 → 1.50.2
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 +1 -1
- data/config/default.yml +108 -40
- data/lib/rubocop/cli/command/auto_generate_config.rb +7 -0
- data/lib/rubocop/cli/command/execute_runner.rb +7 -2
- data/lib/rubocop/cli.rb +54 -8
- data/lib/rubocop/comment_config.rb +19 -0
- data/lib/rubocop/config.rb +3 -3
- data/lib/rubocop/config_loader.rb +20 -23
- data/lib/rubocop/config_loader_resolver.rb +3 -4
- data/lib/rubocop/cop/autocorrect_logic.rb +29 -13
- data/lib/rubocop/cop/base.rb +28 -10
- data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
- data/lib/rubocop/cop/commissioner.rb +8 -2
- data/lib/rubocop/cop/cop.rb +25 -5
- data/lib/rubocop/cop/corrector.rb +11 -3
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +3 -3
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +3 -3
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +2 -7
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -2
- data/lib/rubocop/cop/gemspec/dependency_version.rb +1 -1
- data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +1 -1
- data/lib/rubocop/cop/gemspec/development_dependencies.rb +107 -0
- data/lib/rubocop/cop/internal_affairs/cop_description.rb +5 -5
- data/lib/rubocop/cop/internal_affairs/example_heredoc_delimiter.rb +3 -3
- data/lib/rubocop/cop/internal_affairs/inherit_deprecated_cop_class.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/location_expression.rb +37 -0
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb +42 -0
- data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +11 -3
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +66 -0
- data/lib/rubocop/cop/internal_affairs.rb +3 -0
- data/lib/rubocop/cop/layout/array_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/block_end_newline.rb +7 -15
- data/lib/rubocop/cop/layout/class_structure.rb +8 -19
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +2 -6
- data/lib/rubocop/cop/layout/empty_comment.rb +3 -3
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +2 -0
- data/lib/rubocop/cop/layout/end_alignment.rb +9 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +6 -1
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +8 -3
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +25 -34
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +7 -19
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +42 -52
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +38 -55
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +8 -2
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +8 -11
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
- data/lib/rubocop/cop/layout/line_continuation_leading_space.rb +1 -3
- data/lib/rubocop/cop/layout/line_continuation_spacing.rb +11 -7
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +8 -27
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +7 -26
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +4 -21
- data/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +6 -30
- data/lib/rubocop/cop/layout/redundant_line_break.rb +6 -7
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +2 -2
- data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_operators.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +1 -1
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +11 -13
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_parens.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +4 -4
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +5 -4
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +4 -0
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +11 -27
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +62 -112
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_match_pattern.rb +122 -0
- data/lib/rubocop/cop/lint/duplicate_methods.rb +2 -2
- data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -3
- data/lib/rubocop/cop/lint/else_layout.rb +3 -7
- data/lib/rubocop/cop/lint/empty_block.rb +1 -1
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +4 -2
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +14 -7
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +15 -17
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +46 -4
- data/lib/rubocop/cop/lint/missing_super.rb +31 -2
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -0
- data/lib/rubocop/cop/lint/nested_method_definition.rb +4 -9
- data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +2 -0
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +6 -10
- data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +11 -5
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +5 -5
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +12 -2
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +35 -15
- data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -1
- data/lib/rubocop/cop/lint/refinement_import_methods.rb +2 -1
- data/lib/rubocop/cop/lint/rescue_type.rb +3 -3
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +1 -1
- data/lib/rubocop/cop/lint/script_permission.rb +1 -1
- data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
- data/lib/rubocop/cop/lint/syntax.rb +4 -0
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +13 -3
- data/lib/rubocop/cop/lint/unreachable_loop.rb +3 -3
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +10 -7
- data/lib/rubocop/cop/lint/useless_method_definition.rb +12 -4
- data/lib/rubocop/cop/lint/useless_rescue.rb +20 -2
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +9 -1
- data/lib/rubocop/cop/lint/useless_times.rb +1 -1
- data/lib/rubocop/cop/lint/void.rb +24 -11
- data/lib/rubocop/cop/metrics/block_length.rb +1 -1
- data/lib/rubocop/cop/metrics/block_nesting.rb +2 -2
- data/lib/rubocop/cop/metrics/class_length.rb +1 -0
- data/lib/rubocop/cop/metrics/collection_literal_length.rb +76 -0
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +2 -5
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +3 -3
- data/lib/rubocop/cop/migration/department_name.rb +1 -1
- data/lib/rubocop/cop/mixin/alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/allowed_methods.rb +3 -1
- data/lib/rubocop/cop/mixin/annotation_comment.rb +1 -1
- data/lib/rubocop/cop/mixin/code_length.rb +1 -1
- data/lib/rubocop/cop/mixin/comments_help.rb +8 -6
- data/lib/rubocop/cop/mixin/documentation_comment.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +56 -25
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +3 -3
- data/lib/rubocop/cop/mixin/line_length_help.rb +3 -1
- data/lib/rubocop/cop/mixin/min_branches_count.rb +40 -0
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +0 -3
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -1
- data/lib/rubocop/cop/mixin/range_help.rb +1 -6
- data/lib/rubocop/cop/mixin/statement_modifier.rb +3 -3
- data/lib/rubocop/cop/mixin/surrounding_space.rb +3 -3
- data/lib/rubocop/cop/mixin/trailing_comma.rb +2 -2
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
- data/lib/rubocop/cop/naming/block_forwarding.rb +4 -0
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
- data/lib/rubocop/cop/naming/inclusive_language.rb +23 -4
- data/lib/rubocop/cop/naming/method_name.rb +3 -3
- data/lib/rubocop/cop/naming/predicate_name.rb +1 -1
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
- data/lib/rubocop/cop/registry.rb +15 -8
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +26 -11
- data/lib/rubocop/cop/style/accessor_grouping.rb +39 -17
- data/lib/rubocop/cop/style/arguments_forwarding.rb +4 -3
- data/lib/rubocop/cop/style/array_intersect.rb +1 -1
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +1 -1
- data/lib/rubocop/cop/style/block_delimiters.rb +17 -2
- data/lib/rubocop/cop/style/case_like_if.rb +20 -3
- data/lib/rubocop/cop/style/class_and_module_children.rb +4 -11
- data/lib/rubocop/cop/style/class_equality_comparison.rb +42 -9
- data/lib/rubocop/cop/style/collection_compact.rb +4 -1
- data/lib/rubocop/cop/style/command_literal.rb +1 -1
- data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
- data/lib/rubocop/cop/style/commented_keyword.rb +2 -2
- data/lib/rubocop/cop/style/comparable_clamp.rb +125 -0
- data/lib/rubocop/cop/style/concat_array_literals.rb +10 -2
- data/lib/rubocop/cop/style/conditional_assignment.rb +6 -12
- data/lib/rubocop/cop/style/copyright.rb +1 -1
- data/lib/rubocop/cop/style/data_inheritance.rb +75 -0
- data/lib/rubocop/cop/style/dir_empty.rb +60 -0
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +2 -2
- data/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +2 -2
- data/lib/rubocop/cop/style/documentation.rb +11 -5
- data/lib/rubocop/cop/style/documentation_method.rb +10 -4
- data/lib/rubocop/cop/style/double_negation.rb +2 -2
- data/lib/rubocop/cop/style/each_with_object.rb +1 -1
- data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +4 -4
- data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -1
- data/lib/rubocop/cop/style/file_empty.rb +71 -0
- data/lib/rubocop/cop/style/file_read.rb +1 -1
- data/lib/rubocop/cop/style/file_write.rb +1 -1
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +1 -1
- data/lib/rubocop/cop/style/guard_clause.rb +1 -1
- data/lib/rubocop/cop/style/hash_except.rb +4 -4
- data/lib/rubocop/cop/style/hash_like_case.rb +3 -9
- data/lib/rubocop/cop/style/hash_syntax.rb +5 -2
- data/lib/rubocop/cop/style/if_unless_modifier.rb +108 -15
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +2 -0
- data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +5 -5
- data/lib/rubocop/cop/style/invertible_unless_condition.rb +114 -0
- data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +2 -2
- data/lib/rubocop/cop/style/map_to_hash.rb +4 -1
- data/lib/rubocop/cop/style/map_to_set.rb +4 -1
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +14 -12
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +44 -37
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +2 -0
- data/lib/rubocop/cop/style/min_max.rb +3 -3
- data/lib/rubocop/cop/style/min_max_comparison.rb +11 -1
- data/lib/rubocop/cop/style/mixin_grouping.rb +4 -4
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +0 -4
- data/lib/rubocop/cop/style/multiline_memoization.rb +2 -2
- data/lib/rubocop/cop/style/multiline_method_signature.rb +7 -4
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +18 -3
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +13 -12
- data/lib/rubocop/cop/style/nil_lambda.rb +2 -2
- data/lib/rubocop/cop/style/numbered_parameters_limit.rb +11 -3
- data/lib/rubocop/cop/style/one_line_conditional.rb +3 -6
- data/lib/rubocop/cop/style/operator_method_call.rb +2 -2
- data/lib/rubocop/cop/style/parallel_assignment.rb +29 -19
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +2 -3
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
- data/lib/rubocop/cop/style/redundant_condition.rb +18 -3
- data/lib/rubocop/cop/style/redundant_conditional.rb +0 -4
- data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +16 -10
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +6 -4
- data/lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb +58 -0
- data/lib/rubocop/cop/style/redundant_interpolation.rb +2 -2
- data/lib/rubocop/cop/style/redundant_line_continuation.rb +179 -0
- data/lib/rubocop/cop/style/redundant_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -1
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +7 -8
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +11 -4
- data/lib/rubocop/cop/style/redundant_sort.rb +3 -3
- data/lib/rubocop/cop/style/redundant_string_escape.rb +3 -4
- data/lib/rubocop/cop/style/require_order.rb +3 -12
- data/lib/rubocop/cop/style/rescue_standard_error.rb +2 -2
- data/lib/rubocop/cop/style/safe_navigation.rb +2 -2
- data/lib/rubocop/cop/style/self_assignment.rb +2 -2
- data/lib/rubocop/cop/style/semicolon.rb +24 -2
- data/lib/rubocop/cop/style/slicing_with_range.rb +1 -1
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +3 -3
- data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
- data/lib/rubocop/cop/style/struct_inheritance.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -0
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +1 -1
- data/lib/rubocop/cop/style/trivial_accessors.rb +1 -1
- data/lib/rubocop/cop/style/unless_logical_operators.rb +1 -0
- data/lib/rubocop/cop/style/unpack_first.rb +3 -3
- data/lib/rubocop/cop/style/word_array.rb +18 -6
- data/lib/rubocop/cop/style/yoda_condition.rb +13 -6
- data/lib/rubocop/cop/style/yoda_expression.rb +11 -2
- data/lib/rubocop/cop/style/zero_length_predicate.rb +9 -5
- data/lib/rubocop/cop/team.rb +30 -22
- data/lib/rubocop/cop/util.rb +13 -4
- data/lib/rubocop/cop/variable_force/scope.rb +3 -3
- data/lib/rubocop/cop/variable_force/variable.rb +5 -3
- data/lib/rubocop/cop/variable_force/variable_table.rb +3 -1
- data/lib/rubocop/cop/variable_force.rb +1 -1
- data/lib/rubocop/cops_documentation_generator.rb +10 -3
- data/lib/rubocop/directive_comment.rb +3 -3
- data/lib/rubocop/ext/comment.rb +18 -0
- data/lib/rubocop/ext/regexp_node.rb +1 -1
- data/lib/rubocop/ext/regexp_parser.rb +1 -1
- data/lib/rubocop/formatter/junit_formatter.rb +4 -1
- data/lib/rubocop/formatter/simple_text_formatter.rb +1 -1
- data/lib/rubocop/formatter.rb +0 -1
- data/lib/rubocop/options.rb +26 -2
- data/lib/rubocop/result_cache.rb +1 -1
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +6 -4
- data/lib/rubocop/rspec/shared_contexts.rb +4 -0
- data/lib/rubocop/rspec/support.rb +1 -0
- data/lib/rubocop/runner.rb +40 -4
- data/lib/rubocop/server/cache.rb +11 -4
- data/lib/rubocop/server/cli.rb +37 -18
- data/lib/rubocop/server/client_command/exec.rb +1 -1
- data/lib/rubocop/server/client_command/start.rb +6 -1
- data/lib/rubocop/server/core.rb +24 -9
- data/lib/rubocop/server/helper.rb +1 -1
- data/lib/rubocop/server/server_command/exec.rb +1 -1
- data/lib/rubocop/target_ruby.rb +1 -1
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +12 -0
- metadata +21 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67accbc10c4c2ae80033ab2a3713fce8a190d772234cbd52c5584e5c69895915
|
4
|
+
data.tar.gz: 69e7f99ee66c192619b2dc26df6d0ac73c794bb088bade8182f3eceb1cb8d8c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21005d0d16a207a998640686ee7dcf251683899ab8e746baa861888fd26f2e58791733b48869a085b1b365ce2b67e64b216b4cfe6c1a2e26a2ecc699da0ea085
|
7
|
+
data.tar.gz: 461a588bb95269c194efee4ee8570c166ce009695664aa31181f1f0806220f451e4685d4feff8751d4135f196d3cb42ec100c171b905526e06ed968cd9bb47f9
|
data/README.md
CHANGED
@@ -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.50', require: false
|
57
57
|
```
|
58
58
|
|
59
59
|
See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
|
data/config/default.yml
CHANGED
@@ -153,6 +153,7 @@ AllCops:
|
|
153
153
|
rubocop-sequel: [sequel]
|
154
154
|
rubocop-rake: [rake]
|
155
155
|
rubocop-graphql: [graphql]
|
156
|
+
rubocop-capybara: [capybara]
|
156
157
|
# Enable/Disable checking the methods extended by Active Support.
|
157
158
|
ActiveSupportExtensionsEnabled: false
|
158
159
|
|
@@ -262,6 +263,21 @@ Gemspec/DeprecatedAttributeAssignment:
|
|
262
263
|
Include:
|
263
264
|
- '**/*.gemspec'
|
264
265
|
|
266
|
+
Gemspec/DevelopmentDependencies:
|
267
|
+
Description: Checks that development dependencies are specified in Gemfile rather than gemspec.
|
268
|
+
Enabled: pending
|
269
|
+
VersionAdded: '1.44'
|
270
|
+
EnforcedStyle: Gemfile
|
271
|
+
SupportedStyles:
|
272
|
+
- Gemfile
|
273
|
+
- gems.rb
|
274
|
+
- gemspec
|
275
|
+
AllowedGems: []
|
276
|
+
Include:
|
277
|
+
- '**/*.gemspec'
|
278
|
+
- '**/Gemfile'
|
279
|
+
- '**/gems.rb'
|
280
|
+
|
265
281
|
Gemspec/DuplicatedAssignment:
|
266
282
|
Description: 'An attribute assignment method calls should be listed only once in a gemspec.'
|
267
283
|
Enabled: true
|
@@ -391,9 +407,8 @@ Layout/AssignmentIndentation:
|
|
391
407
|
Checks the indentation of the first line of the
|
392
408
|
right-hand-side of a multi-line assignment.
|
393
409
|
Enabled: true
|
394
|
-
SafeAutoCorrect: false
|
395
410
|
VersionAdded: '0.49'
|
396
|
-
VersionChanged: '1.
|
411
|
+
VersionChanged: '1.45'
|
397
412
|
# By default the indentation width from `Layout/IndentationWidth` is used,
|
398
413
|
# but it can be overridden by setting this parameter.
|
399
414
|
IndentationWidth: ~
|
@@ -964,7 +979,6 @@ Layout/IndentationWidth:
|
|
964
979
|
# Number of spaces for each indentation level.
|
965
980
|
Width: 2
|
966
981
|
AllowedPatterns: []
|
967
|
-
IgnoredPatterns: [] # deprecated
|
968
982
|
|
969
983
|
Layout/InitialIndentation:
|
970
984
|
Description: >-
|
@@ -992,10 +1006,8 @@ Layout/LineContinuationLeadingSpace:
|
|
992
1006
|
Use trailing spaces instead of leading spaces in strings
|
993
1007
|
broken over multiple lines (by a backslash).
|
994
1008
|
Enabled: pending
|
995
|
-
AutoCorrect: false
|
996
|
-
SafeAutoCorrect: false
|
997
1009
|
VersionAdded: '1.31'
|
998
|
-
VersionChanged: '1.
|
1010
|
+
VersionChanged: '1.45'
|
999
1011
|
EnforcedStyle: trailing
|
1000
1012
|
SupportedStyles:
|
1001
1013
|
- leading
|
@@ -1004,8 +1016,6 @@ Layout/LineContinuationLeadingSpace:
|
|
1004
1016
|
Layout/LineContinuationSpacing:
|
1005
1017
|
Description: 'Checks the spacing in front of backslash in line continuations.'
|
1006
1018
|
Enabled: pending
|
1007
|
-
AutoCorrect: true
|
1008
|
-
SafeAutoCorrect: true
|
1009
1019
|
VersionAdded: '1.31'
|
1010
1020
|
EnforcedStyle: space
|
1011
1021
|
SupportedStyles:
|
@@ -1047,7 +1057,6 @@ Layout/LineLength:
|
|
1047
1057
|
# elements. Strings will be converted to Regexp objects. A line that matches
|
1048
1058
|
# any regular expression listed in this option will be ignored by LineLength.
|
1049
1059
|
AllowedPatterns: []
|
1050
|
-
IgnoredPatterns: [] # deprecated
|
1051
1060
|
|
1052
1061
|
Layout/MultilineArrayBraceLayout:
|
1053
1062
|
Description: >-
|
@@ -1526,7 +1535,6 @@ Lint/AmbiguousBlockAssociation:
|
|
1526
1535
|
VersionChanged: '1.13'
|
1527
1536
|
AllowedMethods: []
|
1528
1537
|
AllowedPatterns: []
|
1529
|
-
IgnoredMethods: [] # deprecated
|
1530
1538
|
|
1531
1539
|
Lint/AmbiguousOperator:
|
1532
1540
|
Description: >-
|
@@ -1563,7 +1571,9 @@ Lint/AssignmentInCondition:
|
|
1563
1571
|
Description: "Don't use assignment in conditions."
|
1564
1572
|
StyleGuide: '#safe-assignment-in-condition'
|
1565
1573
|
Enabled: true
|
1574
|
+
SafeAutoCorrect: false
|
1566
1575
|
VersionAdded: '0.9'
|
1576
|
+
VersionChanged: '1.45'
|
1567
1577
|
AllowSafeAssignment: true
|
1568
1578
|
|
1569
1579
|
Lint/BigDecimalNew:
|
@@ -1619,8 +1629,7 @@ Lint/Debugger:
|
|
1619
1629
|
Description: 'Check for debugger calls.'
|
1620
1630
|
Enabled: true
|
1621
1631
|
VersionAdded: '0.14'
|
1622
|
-
VersionChanged: '1.
|
1623
|
-
DebuggerReceivers: [] # deprecated
|
1632
|
+
VersionChanged: '1.46'
|
1624
1633
|
DebuggerMethods:
|
1625
1634
|
# Groups are available so that a specific group can be disabled in
|
1626
1635
|
# a user's configuration, but are otherwise not significant.
|
@@ -1648,6 +1657,7 @@ Lint/Debugger:
|
|
1648
1657
|
- Kernel.binding.remote_pry
|
1649
1658
|
- Kernel.binding.pry_remote
|
1650
1659
|
- Pry.rescue
|
1660
|
+
- pry
|
1651
1661
|
Rails:
|
1652
1662
|
- debugger
|
1653
1663
|
- Kernel.debugger
|
@@ -1740,6 +1750,11 @@ Lint/DuplicateMagicComment:
|
|
1740
1750
|
Enabled: pending
|
1741
1751
|
VersionAdded: '1.37'
|
1742
1752
|
|
1753
|
+
Lint/DuplicateMatchPattern:
|
1754
|
+
Description: 'Do not repeat patterns in `in` keywords.'
|
1755
|
+
Enabled: pending
|
1756
|
+
VersionAdded: '1.50'
|
1757
|
+
|
1743
1758
|
Lint/DuplicateMethods:
|
1744
1759
|
Description: 'Check for duplicate method definitions.'
|
1745
1760
|
Enabled: true
|
@@ -2037,7 +2052,6 @@ Lint/NumberConversion:
|
|
2037
2052
|
SafeAutoCorrect: false
|
2038
2053
|
AllowedMethods: []
|
2039
2054
|
AllowedPatterns: []
|
2040
|
-
IgnoredMethods: [] # deprecated
|
2041
2055
|
IgnoredClasses:
|
2042
2056
|
- Time
|
2043
2057
|
- DateTime
|
@@ -2388,7 +2402,6 @@ Lint/UnreachableLoop:
|
|
2388
2402
|
# RSpec uses `times` in its message expectations
|
2389
2403
|
# eg. `exactly(2).times`
|
2390
2404
|
- !ruby/regexp /(exactly|at_least|at_most)\(\d+\)\.times/
|
2391
|
-
IgnoredPatterns: [] # deprecated
|
2392
2405
|
|
2393
2406
|
Lint/UnusedBlockArgument:
|
2394
2407
|
Description: 'Checks for unused block arguments.'
|
@@ -2498,7 +2511,6 @@ Metrics/AbcSize:
|
|
2498
2511
|
# a Float.
|
2499
2512
|
AllowedMethods: []
|
2500
2513
|
AllowedPatterns: []
|
2501
|
-
IgnoredMethods: [] # deprecated
|
2502
2514
|
CountRepeatedAttributes: true
|
2503
2515
|
Max: 17
|
2504
2516
|
|
@@ -2510,13 +2522,11 @@ Metrics/BlockLength:
|
|
2510
2522
|
CountComments: false # count full line comments?
|
2511
2523
|
Max: 25
|
2512
2524
|
CountAsOne: []
|
2513
|
-
ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2514
2525
|
AllowedMethods:
|
2515
2526
|
# By default, exclude the `#refine` method, as it tends to have larger
|
2516
2527
|
# associated blocks.
|
2517
2528
|
- refine
|
2518
2529
|
AllowedPatterns: []
|
2519
|
-
IgnoredMethods: [] # deprecated
|
2520
2530
|
Exclude:
|
2521
2531
|
- '**/*.gemspec'
|
2522
2532
|
|
@@ -2538,6 +2548,12 @@ Metrics/ClassLength:
|
|
2538
2548
|
Max: 100
|
2539
2549
|
CountAsOne: []
|
2540
2550
|
|
2551
|
+
Metrics/CollectionLiteralLength:
|
2552
|
+
Description: 'Checks for `Array` or `Hash` literals with many entries.'
|
2553
|
+
Enabled: pending
|
2554
|
+
VersionAdded: '1.47'
|
2555
|
+
LengthThreshold: 250
|
2556
|
+
|
2541
2557
|
# Avoid complex methods.
|
2542
2558
|
Metrics/CyclomaticComplexity:
|
2543
2559
|
Description: >-
|
@@ -2548,7 +2564,6 @@ Metrics/CyclomaticComplexity:
|
|
2548
2564
|
VersionChanged: '0.81'
|
2549
2565
|
AllowedMethods: []
|
2550
2566
|
AllowedPatterns: []
|
2551
|
-
IgnoredMethods: [] # deprecated
|
2552
2567
|
Max: 7
|
2553
2568
|
|
2554
2569
|
Metrics/MethodLength:
|
@@ -2560,10 +2575,8 @@ Metrics/MethodLength:
|
|
2560
2575
|
CountComments: false # count full line comments?
|
2561
2576
|
Max: 10
|
2562
2577
|
CountAsOne: []
|
2563
|
-
ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2564
2578
|
AllowedMethods: []
|
2565
2579
|
AllowedPatterns: []
|
2566
|
-
IgnoredMethods: [] # deprecated
|
2567
2580
|
|
2568
2581
|
Metrics/ModuleLength:
|
2569
2582
|
Description: 'Avoid modules longer than 100 lines of code.'
|
@@ -2593,7 +2606,6 @@ Metrics/PerceivedComplexity:
|
|
2593
2606
|
VersionChanged: '0.81'
|
2594
2607
|
AllowedMethods: []
|
2595
2608
|
AllowedPatterns: []
|
2596
|
-
IgnoredMethods: [] # deprecated
|
2597
2609
|
Max: 8
|
2598
2610
|
|
2599
2611
|
################## Migration #############################
|
@@ -2764,13 +2776,13 @@ Naming/HeredocDelimiterNaming:
|
|
2764
2776
|
Enabled: true
|
2765
2777
|
VersionAdded: '0.50'
|
2766
2778
|
ForbiddenDelimiters:
|
2767
|
-
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
|
2779
|
+
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/i'
|
2768
2780
|
|
2769
2781
|
Naming/InclusiveLanguage:
|
2770
2782
|
Description: 'Recommend the use of inclusive language instead of problematic terms.'
|
2771
2783
|
Enabled: false
|
2772
2784
|
VersionAdded: '1.18'
|
2773
|
-
VersionChanged: '1.
|
2785
|
+
VersionChanged: '1.49'
|
2774
2786
|
CheckIdentifiers: true
|
2775
2787
|
CheckConstants: true
|
2776
2788
|
CheckVariables: true
|
@@ -2822,7 +2834,6 @@ Naming/MethodName:
|
|
2822
2834
|
# - '\A\s*onSelectionCleared\s*'
|
2823
2835
|
#
|
2824
2836
|
AllowedPatterns: []
|
2825
|
-
IgnoredPatterns: [] # deprecated
|
2826
2837
|
|
2827
2838
|
Naming/MethodParameterName:
|
2828
2839
|
Description: >-
|
@@ -2923,6 +2934,7 @@ Naming/VariableNumber:
|
|
2923
2934
|
- rfc822 # Time#rfc822
|
2924
2935
|
- rfc2822 # Time#rfc2822
|
2925
2936
|
- rfc3339 # DateTime.rfc3339
|
2937
|
+
- x86_64 # Allowed by default as an underscore separated CPU architecture name
|
2926
2938
|
AllowedPatterns: []
|
2927
2939
|
|
2928
2940
|
#################### Security ##############################
|
@@ -3050,6 +3062,7 @@ Style/ArrayCoercion:
|
|
3050
3062
|
Style/ArrayIntersect:
|
3051
3063
|
Description: 'Use `array1.intersect?(array2)` instead of `(array1 & array2).any?`.'
|
3052
3064
|
Enabled: 'pending'
|
3065
|
+
Safe: false
|
3053
3066
|
VersionAdded: '1.40'
|
3054
3067
|
|
3055
3068
|
Style/ArrayJoin:
|
@@ -3192,7 +3205,6 @@ Style/BlockDelimiters:
|
|
3192
3205
|
- proc
|
3193
3206
|
- it
|
3194
3207
|
AllowedPatterns: []
|
3195
|
-
IgnoredMethods: [] # deprecated
|
3196
3208
|
# The AllowBracesOnProceduralOneLiners option is ignored unless the
|
3197
3209
|
# EnforcedStyle is set to `semantic`. If so:
|
3198
3210
|
#
|
@@ -3216,7 +3228,7 @@ Style/BlockDelimiters:
|
|
3216
3228
|
# collection.each do |element| puts element end
|
3217
3229
|
AllowBracesOnProceduralOneLiners: false
|
3218
3230
|
# The BracesRequiredMethods overrides all other configurations except
|
3219
|
-
#
|
3231
|
+
# AllowedMethods. It can be used to enforce that all blocks for specific
|
3220
3232
|
# methods use braces. For example, you can use this to enforce Sorbet
|
3221
3233
|
# signatures use braces even when the rest of your codebase enforces
|
3222
3234
|
# the `line_count_based` style.
|
@@ -3253,6 +3265,9 @@ Style/CaseLikeIf:
|
|
3253
3265
|
Enabled: true
|
3254
3266
|
Safe: false
|
3255
3267
|
VersionAdded: '0.88'
|
3268
|
+
VersionChanged: '1.48'
|
3269
|
+
# `MinBranchesCount` defines the number of branches `if` needs to have to trigger this cop.
|
3270
|
+
MinBranchesCount: 3
|
3256
3271
|
|
3257
3272
|
Style/CharacterLiteral:
|
3258
3273
|
Description: 'Checks for uses of character literals.'
|
@@ -3265,7 +3280,7 @@ Style/ClassAndModuleChildren:
|
|
3265
3280
|
StyleGuide: '#namespace-definition'
|
3266
3281
|
# Moving from compact to nested children requires knowledge of whether the
|
3267
3282
|
# outer parent is a module or a class. Moving from nested to compact requires
|
3268
|
-
# verification that the outer parent is defined elsewhere.
|
3283
|
+
# verification that the outer parent is defined elsewhere. RuboCop does not
|
3269
3284
|
# have the knowledge to perform either operation safely and thus requires
|
3270
3285
|
# manual oversight.
|
3271
3286
|
SafeAutoCorrect: false
|
@@ -3310,7 +3325,6 @@ Style/ClassEqualityComparison:
|
|
3310
3325
|
- equal?
|
3311
3326
|
- eql?
|
3312
3327
|
AllowedPatterns: []
|
3313
|
-
IgnoredMethods: [] # deprecated
|
3314
3328
|
|
3315
3329
|
Style/ClassMethods:
|
3316
3330
|
Description: 'Use self when defining module/class methods.'
|
@@ -3431,6 +3445,11 @@ Style/CommentedKeyword:
|
|
3431
3445
|
VersionAdded: '0.51'
|
3432
3446
|
VersionChanged: '1.19'
|
3433
3447
|
|
3448
|
+
Style/ComparableClamp:
|
3449
|
+
Description: 'Enforces the use of `Comparable#clamp` instead of comparison by minimum and maximum.'
|
3450
|
+
Enabled: pending
|
3451
|
+
VersionAdded: '1.44'
|
3452
|
+
|
3434
3453
|
Style/ConcatArrayLiterals:
|
3435
3454
|
Description: 'Enforces the use of `Array#push(item)` instead of `Array#concat([item])` to avoid redundant array literals.'
|
3436
3455
|
Enabled: pending
|
@@ -3492,6 +3511,12 @@ Style/Copyright:
|
|
3492
3511
|
Notice: '^Copyright (\(c\) )?2[0-9]{3} .+'
|
3493
3512
|
AutocorrectNotice: ''
|
3494
3513
|
|
3514
|
+
Style/DataInheritance:
|
3515
|
+
Description: 'Checks for inheritance from Data.define.'
|
3516
|
+
StyleGuide: '#no-extend-data-define'
|
3517
|
+
Enabled: pending
|
3518
|
+
VersionAdded: '1.49'
|
3519
|
+
|
3495
3520
|
Style/DateTime:
|
3496
3521
|
Description: 'Use Time over DateTime.'
|
3497
3522
|
StyleGuide: '#date-time'
|
@@ -3515,6 +3540,12 @@ Style/Dir:
|
|
3515
3540
|
Enabled: true
|
3516
3541
|
VersionAdded: '0.50'
|
3517
3542
|
|
3543
|
+
Style/DirEmpty:
|
3544
|
+
Description: >-
|
3545
|
+
Prefer to use `Dir.empty?('path/to/dir')` when checking if a directory is empty.
|
3546
|
+
Enabled: pending
|
3547
|
+
VersionAdded: '1.48'
|
3548
|
+
|
3518
3549
|
Style/DisableCopsWithinSourceCodeDirective:
|
3519
3550
|
Description: >-
|
3520
3551
|
Forbids disabling/enabling cops within source code.
|
@@ -3710,6 +3741,13 @@ Style/FetchEnvVar:
|
|
3710
3741
|
# Environment variables to be excluded from the inspection.
|
3711
3742
|
AllowedVars: []
|
3712
3743
|
|
3744
|
+
Style/FileEmpty:
|
3745
|
+
Description: >-
|
3746
|
+
Prefer to use `File.empty?('path/to/file')` when checking if a file is empty.
|
3747
|
+
Enabled: pending
|
3748
|
+
Safe: false
|
3749
|
+
VersionAdded: '1.48'
|
3750
|
+
|
3713
3751
|
Style/FileRead:
|
3714
3752
|
Description: 'Favor `File.(bin)read` convenience methods.'
|
3715
3753
|
StyleGuide: '#file-read'
|
@@ -3780,7 +3818,6 @@ Style/FormatStringToken:
|
|
3780
3818
|
VersionChanged: '1.0'
|
3781
3819
|
AllowedMethods: []
|
3782
3820
|
AllowedPatterns: []
|
3783
|
-
IgnoredMethods: [] # deprecated
|
3784
3821
|
|
3785
3822
|
Style/FrozenStringLiteralComment:
|
3786
3823
|
Description: >-
|
@@ -4021,16 +4058,43 @@ Style/InverseMethods:
|
|
4021
4058
|
:=~: :!~
|
4022
4059
|
:<: :>=
|
4023
4060
|
:>: :<=
|
4024
|
-
# `ActiveSupport` defines some common inverse methods. They are listed below,
|
4025
|
-
# and not enabled by default.
|
4026
|
-
# :present?: :blank?,
|
4027
|
-
# :include?: :exclude?
|
4028
4061
|
# `InverseBlocks` are methods that are inverted by inverting the return
|
4029
4062
|
# of the block that is passed to the method
|
4030
4063
|
InverseBlocks:
|
4031
4064
|
:select: :reject
|
4032
4065
|
:select!: :reject!
|
4033
4066
|
|
4067
|
+
Style/InvertibleUnlessCondition:
|
4068
|
+
Description: 'Favor `if` with inverted condition over `unless`.'
|
4069
|
+
Enabled: false
|
4070
|
+
Safe: false
|
4071
|
+
VersionAdded: '1.44'
|
4072
|
+
VersionChanged: '1.50'
|
4073
|
+
# `InverseMethods` are methods that can be inverted in a `unless` condition.
|
4074
|
+
# The relationship of inverse methods needs to be defined in both directions.
|
4075
|
+
# Keys and values both need to be defined as symbols.
|
4076
|
+
InverseMethods:
|
4077
|
+
:!=: :==
|
4078
|
+
:>: :<=
|
4079
|
+
:<=: :>
|
4080
|
+
:<: :>=
|
4081
|
+
:>=: :<
|
4082
|
+
:!~: :=~
|
4083
|
+
:zero?: :nonzero?
|
4084
|
+
:nonzero?: :zero?
|
4085
|
+
:any?: :none?
|
4086
|
+
:none?: :any?
|
4087
|
+
:even?: :odd?
|
4088
|
+
:odd?: :even?
|
4089
|
+
# `ActiveSupport` defines some common inverse methods. They are listed below,
|
4090
|
+
# and not enabled by default.
|
4091
|
+
# :present?: :blank?
|
4092
|
+
# :blank?: :present?
|
4093
|
+
# :include?: :exclude?
|
4094
|
+
# :exclude?: :include?
|
4095
|
+
# :one?: :many?
|
4096
|
+
# :many?: :one?
|
4097
|
+
|
4034
4098
|
Style/IpAddresses:
|
4035
4099
|
Description: "Don't include literal IP addresses in code."
|
4036
4100
|
Enabled: false
|
@@ -4130,9 +4194,7 @@ Style/MethodCallWithArgsParentheses:
|
|
4130
4194
|
VersionChanged: '1.7'
|
4131
4195
|
IgnoreMacros: true
|
4132
4196
|
AllowedMethods: []
|
4133
|
-
IgnoredMethods: [] # deprecated
|
4134
4197
|
AllowedPatterns: []
|
4135
|
-
IgnoredPatterns: [] # deprecated
|
4136
4198
|
IncludedMacros: []
|
4137
4199
|
AllowParenthesesInMultilineCall: false
|
4138
4200
|
AllowParenthesesInChaining: false
|
@@ -4149,7 +4211,6 @@ Style/MethodCallWithoutArgsParentheses:
|
|
4149
4211
|
Enabled: true
|
4150
4212
|
AllowedMethods: []
|
4151
4213
|
AllowedPatterns: []
|
4152
|
-
IgnoredMethods: [] # deprecated
|
4153
4214
|
VersionAdded: '0.47'
|
4154
4215
|
VersionChanged: '0.55'
|
4155
4216
|
|
@@ -4514,11 +4575,10 @@ Style/NumericPredicate:
|
|
4514
4575
|
Checks for the use of predicate- or comparison methods for
|
4515
4576
|
numeric comparisons.
|
4516
4577
|
StyleGuide: '#predicate-methods'
|
4517
|
-
Safe: false
|
4518
4578
|
# This will change to a new method call which isn't guaranteed to be on the
|
4519
4579
|
# object. Switching these methods has to be done with knowledge of the types
|
4520
4580
|
# of the variables which rubocop doesn't have.
|
4521
|
-
|
4581
|
+
Safe: false
|
4522
4582
|
Enabled: true
|
4523
4583
|
VersionAdded: '0.42'
|
4524
4584
|
VersionChanged: '0.59'
|
@@ -4528,7 +4588,6 @@ Style/NumericPredicate:
|
|
4528
4588
|
- comparison
|
4529
4589
|
AllowedMethods: []
|
4530
4590
|
AllowedPatterns: []
|
4531
|
-
IgnoredMethods: [] # deprecated
|
4532
4591
|
# Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
|
4533
4592
|
# false positives.
|
4534
4593
|
Exclude:
|
@@ -4808,6 +4867,11 @@ Style/RedundantFreeze:
|
|
4808
4867
|
VersionAdded: '0.34'
|
4809
4868
|
VersionChanged: '0.66'
|
4810
4869
|
|
4870
|
+
Style/RedundantHeredocDelimiterQuotes:
|
4871
|
+
Description: 'Checks for redundant heredoc delimiter quotes.'
|
4872
|
+
Enabled: pending
|
4873
|
+
VersionAdded: '1.45'
|
4874
|
+
|
4811
4875
|
Style/RedundantInitialize:
|
4812
4876
|
Description: 'Checks for redundant `initialize` methods.'
|
4813
4877
|
Enabled: pending
|
@@ -4823,6 +4887,11 @@ Style/RedundantInterpolation:
|
|
4823
4887
|
VersionAdded: '0.76'
|
4824
4888
|
VersionChanged: '1.30'
|
4825
4889
|
|
4890
|
+
Style/RedundantLineContinuation:
|
4891
|
+
Description: 'Check for redundant line continuation.'
|
4892
|
+
Enabled: pending
|
4893
|
+
VersionAdded: '1.49'
|
4894
|
+
|
4826
4895
|
Style/RedundantParentheses:
|
4827
4896
|
Description: "Checks for parentheses that seem not to serve any purpose."
|
4828
4897
|
Enabled: true
|
@@ -5205,7 +5274,6 @@ Style/SymbolProc:
|
|
5205
5274
|
AllowedMethods:
|
5206
5275
|
- define_method
|
5207
5276
|
AllowedPatterns: []
|
5208
|
-
IgnoredMethods: [] # deprecated
|
5209
5277
|
AllowComments: false
|
5210
5278
|
|
5211
5279
|
Style/TernaryParentheses:
|
@@ -16,6 +16,7 @@ module RuboCop
|
|
16
16
|
|
17
17
|
PHASE_1_OVERRIDDEN = '(skipped because the default Layout/LineLength:Max is overridden)'
|
18
18
|
PHASE_1_DISABLED = '(skipped because Layout/LineLength is disabled)'
|
19
|
+
PHASE_1_SKIPPED = '(skipped because a list of cops is passed to the `--only` flag)'
|
19
20
|
|
20
21
|
def run
|
21
22
|
add_formatter
|
@@ -31,6 +32,8 @@ module RuboCop
|
|
31
32
|
skip_line_length_cop(PHASE_1_DISABLED)
|
32
33
|
elsif !same_max_line_length?(@config_store.for_pwd, ConfigLoader.default_configuration)
|
33
34
|
skip_line_length_cop(PHASE_1_OVERRIDDEN)
|
35
|
+
elsif options_has_only_flag?
|
36
|
+
skip_line_length_cop(PHASE_1_SKIPPED)
|
34
37
|
else
|
35
38
|
run_line_length_cop
|
36
39
|
end
|
@@ -57,6 +60,10 @@ module RuboCop
|
|
57
60
|
config.for_cop('Layout/LineLength')
|
58
61
|
end
|
59
62
|
|
63
|
+
def options_has_only_flag?
|
64
|
+
@options[:only]
|
65
|
+
end
|
66
|
+
|
60
67
|
# Do an initial run with only Layout/LineLength so that cops that
|
61
68
|
# depend on Layout/LineLength:Max get the correct value for that
|
62
69
|
# parameter.
|
@@ -76,13 +76,18 @@ module RuboCop
|
|
76
76
|
warn <<~WARNING
|
77
77
|
Errors are usually caused by RuboCop bugs.
|
78
78
|
Please, report your problems to RuboCop's issue tracker.
|
79
|
-
#{
|
80
|
-
|
79
|
+
#{bug_tracker_uri}
|
81
80
|
Mention the following information in the issue report:
|
82
81
|
#{RuboCop::Version.version(debug: true)}
|
83
82
|
WARNING
|
84
83
|
end
|
85
84
|
|
85
|
+
def bug_tracker_uri
|
86
|
+
return unless Gem.loaded_specs.key?('rubocop')
|
87
|
+
|
88
|
+
"#{Gem.loaded_specs['rubocop'].metadata['bug_tracker_uri']}\n"
|
89
|
+
end
|
90
|
+
|
86
91
|
def maybe_print_corrected_source
|
87
92
|
# Integration tools (like RubyMine) expect to have only the JSON result
|
88
93
|
# when specifying JSON format. Similar HTML and JUnit are targeted as well.
|
data/lib/rubocop/cli.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'fileutils'
|
4
|
+
|
3
5
|
module RuboCop
|
4
6
|
# The CLI is a class responsible of handling all the command line interface
|
5
7
|
# logic.
|
@@ -38,14 +40,16 @@ module RuboCop
|
|
38
40
|
@options, paths = Options.new.parse(args)
|
39
41
|
@env = Environment.new(@options, @config_store, paths)
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
profile_if_needed do
|
44
|
+
if @options[:init]
|
45
|
+
run_command(:init)
|
46
|
+
else
|
47
|
+
act_on_options
|
48
|
+
validate_options_vs_config
|
49
|
+
parallel_by_default!
|
50
|
+
apply_default_formatter
|
51
|
+
execute_runners
|
52
|
+
end
|
49
53
|
end
|
50
54
|
rescue ConfigNotFoundError, IncorrectCopNameError, OptionArgumentError => e
|
51
55
|
warn e.message
|
@@ -68,6 +72,48 @@ module RuboCop
|
|
68
72
|
|
69
73
|
private
|
70
74
|
|
75
|
+
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
76
|
+
def profile_if_needed
|
77
|
+
return yield unless @options[:profile]
|
78
|
+
|
79
|
+
return STATUS_ERROR unless require_gem('stackprof')
|
80
|
+
|
81
|
+
with_memory = @options[:memory]
|
82
|
+
if with_memory
|
83
|
+
return STATUS_ERROR unless require_gem('memory_profiler')
|
84
|
+
|
85
|
+
MemoryProfiler.start
|
86
|
+
end
|
87
|
+
|
88
|
+
tmp_dir = File.join(ConfigFinder.project_root, 'tmp')
|
89
|
+
FileUtils.mkdir_p(tmp_dir)
|
90
|
+
cpu_profile_file = File.join(tmp_dir, 'rubocop-stackprof.dump')
|
91
|
+
status = nil
|
92
|
+
|
93
|
+
StackProf.run(out: cpu_profile_file) do
|
94
|
+
status = yield
|
95
|
+
end
|
96
|
+
puts "Profile report generated at #{cpu_profile_file}"
|
97
|
+
|
98
|
+
if with_memory
|
99
|
+
puts 'Building memory report...'
|
100
|
+
report = MemoryProfiler.stop
|
101
|
+
memory_profile_file = File.join(tmp_dir, 'rubocop-memory_profiler.txt')
|
102
|
+
report.pretty_print(to_file: memory_profile_file, scale_bytes: true)
|
103
|
+
puts "Memory report generated at #{memory_profile_file}"
|
104
|
+
end
|
105
|
+
status
|
106
|
+
end
|
107
|
+
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
108
|
+
|
109
|
+
def require_gem(name)
|
110
|
+
require name
|
111
|
+
true
|
112
|
+
rescue LoadError
|
113
|
+
warn("You don't have #{name} installed. Add it to your Gemfile and run `bundle install`")
|
114
|
+
false
|
115
|
+
end
|
116
|
+
|
71
117
|
def run_command(name)
|
72
118
|
@env.run(name)
|
73
119
|
end
|
@@ -11,6 +11,8 @@ module RuboCop
|
|
11
11
|
# This class provides an API compatible with RuboCop::DirectiveComment
|
12
12
|
# to be used for cops that are disabled in the config file
|
13
13
|
class ConfigDisabledCopDirectiveComment
|
14
|
+
include RuboCop::Ext::Comment
|
15
|
+
|
14
16
|
attr_reader :text, :loc, :line_number
|
15
17
|
|
16
18
|
Loc = Struct.new(:expression)
|
@@ -42,6 +44,10 @@ module RuboCop
|
|
42
44
|
disabled_line_ranges.none? { |range| range.include?(line_number) }
|
43
45
|
end
|
44
46
|
|
47
|
+
def cop_opted_in?(cop)
|
48
|
+
opt_in_cops.include?(cop.cop_name)
|
49
|
+
end
|
50
|
+
|
45
51
|
def cop_disabled_line_ranges
|
46
52
|
@cop_disabled_line_ranges ||= analyze
|
47
53
|
end
|
@@ -74,6 +80,19 @@ module RuboCop
|
|
74
80
|
extras
|
75
81
|
end
|
76
82
|
|
83
|
+
def opt_in_cops
|
84
|
+
@opt_in_cops ||= begin
|
85
|
+
cops = Set.new
|
86
|
+
each_directive do |directive|
|
87
|
+
next unless directive.enabled?
|
88
|
+
next if directive.all_cops?
|
89
|
+
|
90
|
+
cops.merge(directive.cop_names)
|
91
|
+
end
|
92
|
+
cops
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
77
96
|
def analyze # rubocop:todo Metrics/AbcSize
|
78
97
|
return {} if @no_directives
|
79
98
|
|
data/lib/rubocop/config.rb
CHANGED
@@ -29,7 +29,7 @@ module RuboCop
|
|
29
29
|
end
|
30
30
|
|
31
31
|
# rubocop:disable Metrics/AbcSize
|
32
|
-
def initialize(hash =
|
32
|
+
def initialize(hash = RuboCop::ConfigLoader.default_configuration, loaded_path = nil)
|
33
33
|
@loaded_path = loaded_path
|
34
34
|
@for_cop = Hash.new do |h, cop|
|
35
35
|
cop_name = cop.respond_to?(:cop_name) ? cop.cop_name : cop
|
@@ -304,8 +304,8 @@ module RuboCop
|
|
304
304
|
end
|
305
305
|
|
306
306
|
def enable_cop?(qualified_cop_name, cop_options)
|
307
|
-
# If the cop is explicitly enabled
|
308
|
-
return true if cop_options['Enabled'] == true
|
307
|
+
# If the cop is explicitly enabled or `Lint/Syntax`, the other checks can be skipped.
|
308
|
+
return true if cop_options['Enabled'] == true || qualified_cop_name == 'Lint/Syntax'
|
309
309
|
|
310
310
|
department = department_of(qualified_cop_name)
|
311
311
|
cop_enabled = cop_options.fetch('Enabled') { !for_all_cops['DisabledByDefault'] }
|