rubocop 1.41.1 → 1.57.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +6 -4
- data/config/default.yml +243 -48
- data/config/obsoletion.yml +5 -0
- 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/command/lsp.rb +19 -0
- data/lib/rubocop/cli.rb +59 -10
- data/lib/rubocop/comment_config.rb +19 -0
- data/lib/rubocop/config.rb +14 -10
- data/lib/rubocop/config_finder.rb +2 -2
- data/lib/rubocop/config_loader.rb +20 -23
- data/lib/rubocop/config_loader_resolver.rb +5 -1
- data/lib/rubocop/config_obsoletion/parameter_rule.rb +9 -1
- data/lib/rubocop/config_obsoletion.rb +2 -2
- data/lib/rubocop/cop/autocorrect_logic.rb +31 -13
- data/lib/rubocop/cop/base.rb +96 -73
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -0
- data/lib/rubocop/cop/bundler/duplicated_group.rb +127 -0
- data/lib/rubocop/cop/bundler/gem_comment.rb +2 -2
- data/lib/rubocop/cop/bundler/gem_version.rb +2 -2
- data/lib/rubocop/cop/bundler/ordered_gems.rb +9 -1
- data/lib/rubocop/cop/commissioner.rb +8 -2
- data/lib/rubocop/cop/cop.rb +53 -33
- data/lib/rubocop/cop/corrector.rb +31 -11
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -3
- 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/lambda_literal_to_method_corrector.rb +7 -4
- 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 +19 -21
- 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/gemspec/ordered_dependencies.rb +9 -1
- data/lib/rubocop/cop/generator/require_file_injector.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/cop_description.rb +37 -13
- data/lib/rubocop/cop/internal_affairs/example_description.rb +42 -21
- 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/location_line_equality_comparison.rb +3 -1
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +6 -6
- 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_method_dispatch_node.rb +11 -2
- data/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +66 -0
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +2 -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 +44 -26
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +2 -3
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +2 -6
- data/lib/rubocop/cop/layout/comment_indentation.rb +3 -1
- data/lib/rubocop/cop/layout/dot_position.rb +1 -5
- data/lib/rubocop/cop/layout/empty_comment.rb +3 -3
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +42 -9
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +28 -5
- 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/empty_lines_around_exception_handling_keywords.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 +10 -4
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +11 -11
- data/lib/rubocop/cop/layout/indentation_style.rb +5 -2
- data/lib/rubocop/cop/layout/indentation_width.rb +3 -3
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/leading_comment_space.rb +2 -2
- data/lib/rubocop/cop/layout/line_continuation_leading_space.rb +18 -12
- data/lib/rubocop/cop/layout/line_continuation_spacing.rb +17 -13
- data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +2 -0
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +8 -27
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -1
- 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_call_indentation.rb +18 -3
- data/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +6 -30
- data/lib/rubocop/cop/layout/redundant_line_break.rb +20 -11
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +2 -2
- data/lib/rubocop/cop/layout/space_after_comma.rb +9 -1
- data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_keyword.rb +2 -2
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +2 -2
- data/lib/rubocop/cop/layout/space_around_operators.rb +4 -2
- 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 +3 -1
- data/lib/rubocop/cop/layout/space_inside_parens.rb +3 -3
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_range_literal.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_empty_lines.rb +5 -0
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +6 -3
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +13 -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 +22 -25
- 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_hash_key.rb +2 -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 +47 -22
- data/lib/rubocop/cop/lint/else_layout.rb +3 -7
- data/lib/rubocop/cop/lint/empty_block.rb +2 -2
- 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/erb_new_arguments.rb +3 -4
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +14 -7
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +16 -18
- data/lib/rubocop/cop/lint/identity_comparison.rb +0 -1
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
- data/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +5 -3
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/inherit_exception.rb +9 -0
- data/lib/rubocop/cop/lint/lambda_without_literal_block.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +47 -5
- data/lib/rubocop/cop/lint/missing_super.rb +63 -5
- data/lib/rubocop/cop/lint/mixed_case_range.rb +111 -0
- 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/non_atomic_file_operation.rb +10 -7
- data/lib/rubocop/cop/lint/number_conversion.rb +5 -0
- data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +2 -2
- data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +2 -0
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +0 -1
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +16 -1
- 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_regexp_quantifiers.rb +130 -0
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +21 -2
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +20 -4
- 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/regexp_as_condition.rb +6 -0
- data/lib/rubocop/cop/lint/require_parentheses.rb +3 -1
- data/lib/rubocop/cop/lint/rescue_type.rb +3 -3
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +11 -4
- 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/send_with_mixin_argument.rb +1 -2
- data/lib/rubocop/cop/lint/shadowed_exception.rb +6 -12
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +7 -1
- data/lib/rubocop/cop/lint/struct_new_override.rb +12 -12
- data/lib/rubocop/cop/lint/suppressed_exception.rb +2 -2
- data/lib/rubocop/cop/lint/symbol_conversion.rb +1 -1
- data/lib/rubocop/cop/lint/syntax.rb +4 -0
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +18 -6
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +23 -9
- data/lib/rubocop/cop/lint/unreachable_loop.rb +3 -3
- data/lib/rubocop/cop/lint/unused_method_argument.rb +2 -1
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +10 -7
- data/lib/rubocop/cop/lint/useless_assignment.rb +94 -10
- data/lib/rubocop/cop/lint/useless_method_definition.rb +12 -4
- data/lib/rubocop/cop/lint/useless_rescue.rb +89 -0
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +14 -4
- data/lib/rubocop/cop/lint/useless_times.rb +1 -1
- data/lib/rubocop/cop/lint/void.rb +79 -16
- data/lib/rubocop/cop/metrics/block_length.rb +2 -2
- data/lib/rubocop/cop/metrics/block_nesting.rb +2 -2
- data/lib/rubocop/cop/metrics/class_length.rb +3 -2
- 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/method_length.rb +1 -1
- data/lib/rubocop/cop/metrics/parameter_lists.rb +27 -0
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -8
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +33 -5
- data/lib/rubocop/cop/migration/department_name.rb +3 -3
- data/lib/rubocop/cop/mixin/alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/allowed_methods.rb +3 -1
- data/lib/rubocop/cop/mixin/allowed_receivers.rb +34 -0
- data/lib/rubocop/cop/mixin/annotation_comment.rb +2 -2
- data/lib/rubocop/cop/mixin/code_length.rb +1 -1
- data/lib/rubocop/cop/mixin/comments_help.rb +13 -7
- data/lib/rubocop/cop/mixin/def_node.rb +1 -1
- data/lib/rubocop/cop/mixin/documentation_comment.rb +1 -1
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +62 -23
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +3 -3
- data/lib/rubocop/cop/mixin/heredoc.rb +6 -2
- 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/multiline_expression_indentation.rb +3 -2
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -1
- data/lib/rubocop/cop/mixin/percent_literal.rb +1 -1
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +6 -8
- data/lib/rubocop/cop/mixin/range_help.rb +1 -6
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +1 -1
- data/lib/rubocop/cop/mixin/statement_modifier.rb +4 -3
- data/lib/rubocop/cop/mixin/string_help.rb +4 -2
- data/lib/rubocop/cop/mixin/surrounding_space.rb +3 -3
- data/lib/rubocop/cop/mixin/trailing_comma.rb +3 -3
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
- data/lib/rubocop/cop/naming/block_forwarding.rb +5 -1
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +1 -1
- data/lib/rubocop/cop/naming/file_name.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +3 -1
- data/lib/rubocop/cop/naming/inclusive_language.rb +23 -4
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +25 -10
- 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 +12 -4
- data/lib/rubocop/cop/naming/variable_name.rb +6 -1
- data/lib/rubocop/cop/registry.rb +37 -30
- data/lib/rubocop/cop/security/compound_hash.rb +2 -1
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +26 -11
- data/lib/rubocop/cop/style/accessor_grouping.rb +43 -17
- data/lib/rubocop/cop/style/alias.rb +9 -8
- data/lib/rubocop/cop/style/arguments_forwarding.rb +280 -62
- data/lib/rubocop/cop/style/array_intersect.rb +14 -6
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/attr.rb +11 -1
- data/lib/rubocop/cop/style/begin_block.rb +1 -2
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +3 -3
- data/lib/rubocop/cop/style/block_delimiters.rb +22 -6
- data/lib/rubocop/cop/style/case_like_if.rb +20 -3
- data/lib/rubocop/cop/style/class_and_module_children.rb +5 -12
- data/lib/rubocop/cop/style/class_equality_comparison.rb +58 -40
- data/lib/rubocop/cop/style/collection_compact.rb +20 -7
- data/lib/rubocop/cop/style/collection_methods.rb +2 -0
- data/lib/rubocop/cop/style/colon_method_call.rb +2 -2
- data/lib/rubocop/cop/style/combinable_loops.rb +30 -8
- 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 +32 -4
- data/lib/rubocop/cop/style/conditional_assignment.rb +11 -15
- data/lib/rubocop/cop/style/copyright.rb +6 -3
- data/lib/rubocop/cop/style/data_inheritance.rb +75 -0
- data/lib/rubocop/cop/style/dir.rb +1 -1
- data/lib/rubocop/cop/style/dir_empty.rb +54 -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 +3 -3
- data/lib/rubocop/cop/style/documentation.rb +12 -6
- 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_case_condition.rb +6 -1
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +8 -8
- data/lib/rubocop/cop/style/exact_regexp_match.rb +68 -0
- 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 +3 -3
- data/lib/rubocop/cop/style/file_write.rb +1 -1
- data/lib/rubocop/cop/style/for.rb +1 -1
- data/lib/rubocop/cop/style/format_string.rb +24 -3
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +4 -2
- data/lib/rubocop/cop/style/guard_clause.rb +40 -8
- data/lib/rubocop/cop/style/hash_conversion.rb +10 -0
- data/lib/rubocop/cop/style/hash_each_methods.rb +1 -10
- data/lib/rubocop/cop/style/hash_except.rb +23 -12
- data/lib/rubocop/cop/style/hash_like_case.rb +3 -9
- data/lib/rubocop/cop/style/hash_syntax.rb +16 -9
- data/lib/rubocop/cop/style/hash_transform_keys.rb +2 -2
- data/lib/rubocop/cop/style/hash_transform_values.rb +2 -2
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +36 -3
- data/lib/rubocop/cop/style/if_inside_else.rb +6 -0
- data/lib/rubocop/cop/style/if_unless_modifier.rb +111 -15
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +2 -0
- data/lib/rubocop/cop/style/if_with_semicolon.rb +2 -2
- 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 +118 -0
- data/lib/rubocop/cop/style/lambda.rb +3 -3
- data/lib/rubocop/cop/style/lambda_call.rb +5 -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 +64 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +35 -24
- 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/method_def_parentheses.rb +11 -4
- data/lib/rubocop/cop/style/min_max.rb +3 -3
- data/lib/rubocop/cop/style/min_max_comparison.rb +83 -0
- data/lib/rubocop/cop/style/missing_else.rb +13 -1
- data/lib/rubocop/cop/style/mixin_grouping.rb +5 -5
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
- 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 +19 -4
- data/lib/rubocop/cop/style/multiple_comparison.rb +14 -0
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +13 -12
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +3 -11
- 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/numeric_literals.rb +1 -1
- data/lib/rubocop/cop/style/one_line_conditional.rb +3 -6
- data/lib/rubocop/cop/style/open_struct_use.rb +1 -1
- data/lib/rubocop/cop/style/operator_method_call.rb +22 -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/preferred_hash_methods.rb +1 -1
- data/lib/rubocop/cop/style/redundant_argument.rb +6 -1
- data/lib/rubocop/cop/style/redundant_array_constructor.rb +77 -0
- data/lib/rubocop/cop/style/redundant_begin.rb +10 -2
- data/lib/rubocop/cop/style/redundant_condition.rb +18 -3
- data/lib/rubocop/cop/style/redundant_conditional.rb +2 -14
- data/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +38 -0
- data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +96 -9
- data/lib/rubocop/cop/style/redundant_exception.rb +32 -12
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +6 -4
- data/lib/rubocop/cop/style/redundant_filter_chain.rb +117 -0
- 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 +183 -0
- data/lib/rubocop/cop/style/redundant_parentheses.rb +26 -8
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -1
- data/lib/rubocop/cop/style/redundant_regexp_argument.rb +100 -0
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +7 -8
- data/lib/rubocop/cop/style/redundant_regexp_constructor.rb +46 -0
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +13 -4
- data/lib/rubocop/cop/style/redundant_return.rb +7 -2
- data/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +8 -1
- data/lib/rubocop/cop/style/redundant_sort.rb +4 -4
- data/lib/rubocop/cop/style/redundant_string_escape.rb +9 -6
- data/lib/rubocop/cop/style/regexp_literal.rb +11 -2
- data/lib/rubocop/cop/style/require_order.rb +16 -17
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -3
- data/lib/rubocop/cop/style/rescue_standard_error.rb +2 -2
- data/lib/rubocop/cop/style/return_nil.rb +6 -2
- data/lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb +95 -0
- data/lib/rubocop/cop/style/safe_navigation.rb +2 -2
- data/lib/rubocop/cop/style/select_by_regexp.rb +20 -6
- data/lib/rubocop/cop/style/self_assignment.rb +2 -2
- data/lib/rubocop/cop/style/semicolon.rb +35 -5
- data/lib/rubocop/cop/style/signal_exception.rb +9 -7
- data/lib/rubocop/cop/style/single_line_do_end_block.rb +65 -0
- data/lib/rubocop/cop/style/single_line_methods.rb +1 -1
- data/lib/rubocop/cop/style/slicing_with_range.rb +1 -1
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +9 -5
- data/lib/rubocop/cop/style/special_global_vars.rb +3 -4
- data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
- data/lib/rubocop/cop/style/string_hash_keys.rb +4 -1
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +30 -5
- data/lib/rubocop/cop/style/struct_inheritance.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +35 -15
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -0
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +4 -4
- 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 +54 -1
- data/lib/rubocop/cop/style/yaml_file_read.rb +66 -0
- data/lib/rubocop/cop/style/yoda_condition.rb +17 -8
- data/lib/rubocop/cop/style/yoda_expression.rb +91 -0
- data/lib/rubocop/cop/style/zero_length_predicate.rb +40 -19
- data/lib/rubocop/cop/team.rb +60 -52
- data/lib/rubocop/cop/util.rb +14 -5
- data/lib/rubocop/cop/utils/regexp_ranges.rb +113 -0
- data/lib/rubocop/cop/variable_force/assignment.rb +45 -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 +5 -3
- data/lib/rubocop/cop/variable_force.rb +2 -4
- data/lib/rubocop/cops_documentation_generator.rb +11 -4
- 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 +5 -2
- data/lib/rubocop/file_finder.rb +4 -7
- 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/lsp/logger.rb +22 -0
- data/lib/rubocop/lsp/routes.rb +246 -0
- data/lib/rubocop/lsp/runtime.rb +99 -0
- data/lib/rubocop/lsp/server.rb +68 -0
- data/lib/rubocop/lsp/severity.rb +27 -0
- data/lib/rubocop/magic_comment.rb +12 -10
- data/lib/rubocop/options.rb +37 -3
- data/lib/rubocop/path_util.rb +17 -7
- data/lib/rubocop/result_cache.rb +7 -3
- data/lib/rubocop/rspec/cop_helper.rb +2 -2
- data/lib/rubocop/rspec/expect_offense.rb +6 -4
- data/lib/rubocop/rspec/shared_contexts.rb +6 -3
- data/lib/rubocop/rspec/support.rb +1 -0
- data/lib/rubocop/runner.rb +55 -10
- data/lib/rubocop/server/cache.rb +12 -4
- data/lib/rubocop/server/cli.rb +37 -18
- data/lib/rubocop/server/client_command/exec.rb +4 -3
- 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/string_interpreter.rb +3 -3
- data/lib/rubocop/target_finder.rb +7 -3
- data/lib/rubocop/target_ruby.rb +13 -9
- data/lib/rubocop/version.rb +10 -6
- data/lib/rubocop.rb +31 -0
- metadata +84 -37
data/config/default.yml
CHANGED
@@ -30,6 +30,7 @@ AllCops:
|
|
30
30
|
- '**/*.rbx'
|
31
31
|
- '**/*.ru'
|
32
32
|
- '**/*.ruby'
|
33
|
+
- '**/*.schema'
|
33
34
|
- '**/*.spec'
|
34
35
|
- '**/*.thor'
|
35
36
|
- '**/*.watchr'
|
@@ -55,6 +56,7 @@ AllCops:
|
|
55
56
|
- '**/Puppetfile'
|
56
57
|
- '**/Rakefile'
|
57
58
|
- '**/rakefile'
|
59
|
+
- '**/Schemafile'
|
58
60
|
- '**/Snapfile'
|
59
61
|
- '**/Steepfile'
|
60
62
|
- '**/Thorfile'
|
@@ -140,7 +142,7 @@ AllCops:
|
|
140
142
|
# or gems.locked file. (Although the Ruby version is specified in the Gemfile
|
141
143
|
# or gems.rb file, RuboCop reads the final value from the lock file.) If the
|
142
144
|
# Ruby version is still unresolved, RuboCop will use the oldest officially
|
143
|
-
# supported Ruby version (currently Ruby 2.
|
145
|
+
# supported Ruby version (currently Ruby 2.7).
|
144
146
|
TargetRubyVersion: ~
|
145
147
|
# Determines if a notification for extension libraries should be shown when
|
146
148
|
# rubocop is run. Keys are the name of the extension, and values are an array
|
@@ -153,6 +155,8 @@ AllCops:
|
|
153
155
|
rubocop-sequel: [sequel]
|
154
156
|
rubocop-rake: [rake]
|
155
157
|
rubocop-graphql: [graphql]
|
158
|
+
rubocop-capybara: [capybara]
|
159
|
+
rubocop-factory_bot: [factory_bot, factory_bot_rails]
|
156
160
|
# Enable/Disable checking the methods extended by Active Support.
|
157
161
|
ActiveSupportExtensionsEnabled: false
|
158
162
|
|
@@ -169,6 +173,16 @@ Bundler/DuplicatedGem:
|
|
169
173
|
- '**/Gemfile'
|
170
174
|
- '**/gems.rb'
|
171
175
|
|
176
|
+
Bundler/DuplicatedGroup:
|
177
|
+
Description: 'Checks for duplicate group entries in Gemfile.'
|
178
|
+
Enabled: true
|
179
|
+
Severity: warning
|
180
|
+
VersionAdded: '1.56'
|
181
|
+
Include:
|
182
|
+
- '**/*.gemfile'
|
183
|
+
- '**/Gemfile'
|
184
|
+
- '**/gems.rb'
|
185
|
+
|
172
186
|
Bundler/GemComment:
|
173
187
|
Description: 'Add a comment describing each gem.'
|
174
188
|
Enabled: false
|
@@ -262,6 +276,21 @@ Gemspec/DeprecatedAttributeAssignment:
|
|
262
276
|
Include:
|
263
277
|
- '**/*.gemspec'
|
264
278
|
|
279
|
+
Gemspec/DevelopmentDependencies:
|
280
|
+
Description: Checks that development dependencies are specified in Gemfile rather than gemspec.
|
281
|
+
Enabled: pending
|
282
|
+
VersionAdded: '1.44'
|
283
|
+
EnforcedStyle: Gemfile
|
284
|
+
SupportedStyles:
|
285
|
+
- Gemfile
|
286
|
+
- gems.rb
|
287
|
+
- gemspec
|
288
|
+
AllowedGems: []
|
289
|
+
Include:
|
290
|
+
- '**/*.gemspec'
|
291
|
+
- '**/Gemfile'
|
292
|
+
- '**/gems.rb'
|
293
|
+
|
265
294
|
Gemspec/DuplicatedAssignment:
|
266
295
|
Description: 'An attribute assignment method calls should be listed only once in a gemspec.'
|
267
296
|
Enabled: true
|
@@ -391,9 +420,8 @@ Layout/AssignmentIndentation:
|
|
391
420
|
Checks the indentation of the first line of the
|
392
421
|
right-hand-side of a multi-line assignment.
|
393
422
|
Enabled: true
|
394
|
-
SafeAutoCorrect: false
|
395
423
|
VersionAdded: '0.49'
|
396
|
-
VersionChanged: '1.
|
424
|
+
VersionChanged: '1.45'
|
397
425
|
# By default the indentation width from `Layout/IndentationWidth` is used,
|
398
426
|
# but it can be overridden by setting this parameter.
|
399
427
|
IndentationWidth: ~
|
@@ -451,7 +479,9 @@ Layout/ClassStructure:
|
|
451
479
|
Description: 'Enforces a configured order of definitions within a class body.'
|
452
480
|
StyleGuide: '#consistent-classes'
|
453
481
|
Enabled: false
|
482
|
+
SafeAutoCorrect: false
|
454
483
|
VersionAdded: '0.52'
|
484
|
+
VersionChanged: '1.53'
|
455
485
|
Categories:
|
456
486
|
module_inclusion:
|
457
487
|
- include
|
@@ -559,6 +589,8 @@ Layout/EmptyLineBetweenDefs:
|
|
559
589
|
EmptyLineBetweenMethodDefs: true
|
560
590
|
EmptyLineBetweenClassDefs: true
|
561
591
|
EmptyLineBetweenModuleDefs: true
|
592
|
+
# `DefLikeMacros` takes the name of any macro that you want to treat like a def.
|
593
|
+
DefLikeMacros: []
|
562
594
|
# `AllowAdjacentOneLineDefs` means that single line method definitions don't
|
563
595
|
# need an empty line between them. `true` by default.
|
564
596
|
AllowAdjacentOneLineDefs: true
|
@@ -964,7 +996,6 @@ Layout/IndentationWidth:
|
|
964
996
|
# Number of spaces for each indentation level.
|
965
997
|
Width: 2
|
966
998
|
AllowedPatterns: []
|
967
|
-
IgnoredPatterns: [] # deprecated
|
968
999
|
|
969
1000
|
Layout/InitialIndentation:
|
970
1001
|
Description: >-
|
@@ -992,10 +1023,8 @@ Layout/LineContinuationLeadingSpace:
|
|
992
1023
|
Use trailing spaces instead of leading spaces in strings
|
993
1024
|
broken over multiple lines (by a backslash).
|
994
1025
|
Enabled: pending
|
995
|
-
AutoCorrect: false
|
996
|
-
SafeAutoCorrect: false
|
997
1026
|
VersionAdded: '1.31'
|
998
|
-
VersionChanged: '1.
|
1027
|
+
VersionChanged: '1.45'
|
999
1028
|
EnforcedStyle: trailing
|
1000
1029
|
SupportedStyles:
|
1001
1030
|
- leading
|
@@ -1004,8 +1033,6 @@ Layout/LineContinuationLeadingSpace:
|
|
1004
1033
|
Layout/LineContinuationSpacing:
|
1005
1034
|
Description: 'Checks the spacing in front of backslash in line continuations.'
|
1006
1035
|
Enabled: pending
|
1007
|
-
AutoCorrect: true
|
1008
|
-
SafeAutoCorrect: true
|
1009
1036
|
VersionAdded: '1.31'
|
1010
1037
|
EnforcedStyle: space
|
1011
1038
|
SupportedStyles:
|
@@ -1047,7 +1074,6 @@ Layout/LineLength:
|
|
1047
1074
|
# elements. Strings will be converted to Regexp objects. A line that matches
|
1048
1075
|
# any regular expression listed in this option will be ignored by LineLength.
|
1049
1076
|
AllowedPatterns: []
|
1050
|
-
IgnoredPatterns: [] # deprecated
|
1051
1077
|
|
1052
1078
|
Layout/MultilineArrayBraceLayout:
|
1053
1079
|
Description: >-
|
@@ -1520,13 +1546,11 @@ Lint/AmbiguousBlockAssociation:
|
|
1520
1546
|
Description: >-
|
1521
1547
|
Checks for ambiguous block association with method when param passed without
|
1522
1548
|
parentheses.
|
1523
|
-
StyleGuide: '#syntax'
|
1524
1549
|
Enabled: true
|
1525
1550
|
VersionAdded: '0.48'
|
1526
1551
|
VersionChanged: '1.13'
|
1527
1552
|
AllowedMethods: []
|
1528
1553
|
AllowedPatterns: []
|
1529
|
-
IgnoredMethods: [] # deprecated
|
1530
1554
|
|
1531
1555
|
Lint/AmbiguousOperator:
|
1532
1556
|
Description: >-
|
@@ -1563,7 +1587,9 @@ Lint/AssignmentInCondition:
|
|
1563
1587
|
Description: "Don't use assignment in conditions."
|
1564
1588
|
StyleGuide: '#safe-assignment-in-condition'
|
1565
1589
|
Enabled: true
|
1590
|
+
SafeAutoCorrect: false
|
1566
1591
|
VersionAdded: '0.9'
|
1592
|
+
VersionChanged: '1.45'
|
1567
1593
|
AllowSafeAssignment: true
|
1568
1594
|
|
1569
1595
|
Lint/BigDecimalNew:
|
@@ -1619,8 +1645,7 @@ Lint/Debugger:
|
|
1619
1645
|
Description: 'Check for debugger calls.'
|
1620
1646
|
Enabled: true
|
1621
1647
|
VersionAdded: '0.14'
|
1622
|
-
VersionChanged: '1.
|
1623
|
-
DebuggerReceivers: [] # deprecated
|
1648
|
+
VersionChanged: '1.46'
|
1624
1649
|
DebuggerMethods:
|
1625
1650
|
# Groups are available so that a specific group can be disabled in
|
1626
1651
|
# a user's configuration, but are otherwise not significant.
|
@@ -1648,6 +1673,7 @@ Lint/Debugger:
|
|
1648
1673
|
- Kernel.binding.remote_pry
|
1649
1674
|
- Kernel.binding.pry_remote
|
1650
1675
|
- Pry.rescue
|
1676
|
+
- pry
|
1651
1677
|
Rails:
|
1652
1678
|
- debugger
|
1653
1679
|
- Kernel.debugger
|
@@ -1740,6 +1766,11 @@ Lint/DuplicateMagicComment:
|
|
1740
1766
|
Enabled: pending
|
1741
1767
|
VersionAdded: '1.37'
|
1742
1768
|
|
1769
|
+
Lint/DuplicateMatchPattern:
|
1770
|
+
Description: 'Do not repeat patterns in `in` keywords.'
|
1771
|
+
Enabled: pending
|
1772
|
+
VersionAdded: '1.50'
|
1773
|
+
|
1743
1774
|
Lint/DuplicateMethods:
|
1744
1775
|
Description: 'Check for duplicate method definitions.'
|
1745
1776
|
Enabled: true
|
@@ -1972,9 +2003,16 @@ Lint/MissingSuper:
|
|
1972
2003
|
Checks for the presence of constructors and lifecycle callbacks
|
1973
2004
|
without calls to `super`.
|
1974
2005
|
Enabled: true
|
2006
|
+
AllowedParentClasses: []
|
1975
2007
|
VersionAdded: '0.89'
|
1976
2008
|
VersionChanged: '1.4'
|
1977
2009
|
|
2010
|
+
Lint/MixedCaseRange:
|
2011
|
+
Description: 'Checks for mixed-case character ranges since they include likely unintended characters.'
|
2012
|
+
Enabled: pending
|
2013
|
+
SafeAutoCorrect: false
|
2014
|
+
VersionAdded: '1.53'
|
2015
|
+
|
1978
2016
|
Lint/MixedRegexpCaptureTypes:
|
1979
2017
|
Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
|
1980
2018
|
Enabled: true
|
@@ -2037,7 +2075,6 @@ Lint/NumberConversion:
|
|
2037
2075
|
SafeAutoCorrect: false
|
2038
2076
|
AllowedMethods: []
|
2039
2077
|
AllowedPatterns: []
|
2040
|
-
IgnoredMethods: [] # deprecated
|
2041
2078
|
IgnoredClasses:
|
2042
2079
|
- Time
|
2043
2080
|
- DateTime
|
@@ -2125,10 +2162,17 @@ Lint/RedundantDirGlobSort:
|
|
2125
2162
|
VersionChanged: '1.26'
|
2126
2163
|
SafeAutoCorrect: false
|
2127
2164
|
|
2165
|
+
Lint/RedundantRegexpQuantifiers:
|
2166
|
+
Description: 'Checks for redundant quantifiers in Regexps.'
|
2167
|
+
Enabled: pending
|
2168
|
+
VersionAdded: '1.53'
|
2169
|
+
|
2128
2170
|
Lint/RedundantRequireStatement:
|
2129
2171
|
Description: 'Checks for unnecessary `require` statement.'
|
2130
2172
|
Enabled: true
|
2173
|
+
SafeAutoCorrect: false
|
2131
2174
|
VersionAdded: '0.76'
|
2175
|
+
VersionChanged: '1.57'
|
2132
2176
|
|
2133
2177
|
Lint/RedundantSafeNavigation:
|
2134
2178
|
Description: 'Checks for redundant safe navigation calls.'
|
@@ -2329,6 +2373,9 @@ Lint/TopLevelReturnWithArgument:
|
|
2329
2373
|
Description: 'Detects top level return statements with argument.'
|
2330
2374
|
Enabled: true
|
2331
2375
|
VersionAdded: '0.89'
|
2376
|
+
# These codes are `eval`-ed in method and their return values may be used.
|
2377
|
+
Exclude:
|
2378
|
+
- '**/*.jb'
|
2332
2379
|
|
2333
2380
|
Lint/TrailingCommaInAttributeDeclaration:
|
2334
2381
|
Description: 'Checks for trailing commas in attribute declarations.'
|
@@ -2388,7 +2435,6 @@ Lint/UnreachableLoop:
|
|
2388
2435
|
# RSpec uses `times` in its message expectations
|
2389
2436
|
# eg. `exactly(2).times`
|
2390
2437
|
- !ruby/regexp /(exactly|at_least|at_most)\(\d+\)\.times/
|
2391
|
-
IgnoredPatterns: [] # deprecated
|
2392
2438
|
|
2393
2439
|
Lint/UnusedBlockArgument:
|
2394
2440
|
Description: 'Checks for unused block arguments.'
|
@@ -2438,6 +2484,8 @@ Lint/UselessAssignment:
|
|
2438
2484
|
StyleGuide: '#underscore-unused-vars'
|
2439
2485
|
Enabled: true
|
2440
2486
|
VersionAdded: '0.11'
|
2487
|
+
VersionChanged: '1.51'
|
2488
|
+
SafeAutoCorrect: false
|
2441
2489
|
|
2442
2490
|
Lint/UselessElseWithoutRescue:
|
2443
2491
|
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
|
@@ -2452,6 +2500,11 @@ Lint/UselessMethodDefinition:
|
|
2452
2500
|
VersionChanged: '0.91'
|
2453
2501
|
Safe: false
|
2454
2502
|
|
2503
|
+
Lint/UselessRescue:
|
2504
|
+
Description: 'Checks for useless `rescue`s.'
|
2505
|
+
Enabled: pending
|
2506
|
+
VersionAdded: '1.43'
|
2507
|
+
|
2455
2508
|
Lint/UselessRuby2Keywords:
|
2456
2509
|
Description: 'Finds unnecessary uses of `ruby2_keywords`.'
|
2457
2510
|
Enabled: pending
|
@@ -2460,10 +2513,9 @@ Lint/UselessRuby2Keywords:
|
|
2460
2513
|
Lint/UselessSetterCall:
|
2461
2514
|
Description: 'Checks for useless setter call to a local variable.'
|
2462
2515
|
Enabled: true
|
2463
|
-
|
2516
|
+
Safe: false
|
2464
2517
|
VersionAdded: '0.13'
|
2465
2518
|
VersionChanged: '1.2'
|
2466
|
-
Safe: false
|
2467
2519
|
|
2468
2520
|
Lint/UselessTimes:
|
2469
2521
|
Description: 'Checks for useless `Integer#times` calls.'
|
@@ -2493,7 +2545,6 @@ Metrics/AbcSize:
|
|
2493
2545
|
# a Float.
|
2494
2546
|
AllowedMethods: []
|
2495
2547
|
AllowedPatterns: []
|
2496
|
-
IgnoredMethods: [] # deprecated
|
2497
2548
|
CountRepeatedAttributes: true
|
2498
2549
|
Max: 17
|
2499
2550
|
|
@@ -2505,13 +2556,11 @@ Metrics/BlockLength:
|
|
2505
2556
|
CountComments: false # count full line comments?
|
2506
2557
|
Max: 25
|
2507
2558
|
CountAsOne: []
|
2508
|
-
ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2509
2559
|
AllowedMethods:
|
2510
2560
|
# By default, exclude the `#refine` method, as it tends to have larger
|
2511
2561
|
# associated blocks.
|
2512
2562
|
- refine
|
2513
2563
|
AllowedPatterns: []
|
2514
|
-
IgnoredMethods: [] # deprecated
|
2515
2564
|
Exclude:
|
2516
2565
|
- '**/*.gemspec'
|
2517
2566
|
|
@@ -2533,6 +2582,12 @@ Metrics/ClassLength:
|
|
2533
2582
|
Max: 100
|
2534
2583
|
CountAsOne: []
|
2535
2584
|
|
2585
|
+
Metrics/CollectionLiteralLength:
|
2586
|
+
Description: 'Checks for `Array` or `Hash` literals with many entries.'
|
2587
|
+
Enabled: pending
|
2588
|
+
VersionAdded: '1.47'
|
2589
|
+
LengthThreshold: 250
|
2590
|
+
|
2536
2591
|
# Avoid complex methods.
|
2537
2592
|
Metrics/CyclomaticComplexity:
|
2538
2593
|
Description: >-
|
@@ -2543,7 +2598,6 @@ Metrics/CyclomaticComplexity:
|
|
2543
2598
|
VersionChanged: '0.81'
|
2544
2599
|
AllowedMethods: []
|
2545
2600
|
AllowedPatterns: []
|
2546
|
-
IgnoredMethods: [] # deprecated
|
2547
2601
|
Max: 7
|
2548
2602
|
|
2549
2603
|
Metrics/MethodLength:
|
@@ -2555,10 +2609,8 @@ Metrics/MethodLength:
|
|
2555
2609
|
CountComments: false # count full line comments?
|
2556
2610
|
Max: 10
|
2557
2611
|
CountAsOne: []
|
2558
|
-
ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2559
2612
|
AllowedMethods: []
|
2560
2613
|
AllowedPatterns: []
|
2561
|
-
IgnoredMethods: [] # deprecated
|
2562
2614
|
|
2563
2615
|
Metrics/ModuleLength:
|
2564
2616
|
Description: 'Avoid modules longer than 100 lines of code.'
|
@@ -2588,7 +2640,6 @@ Metrics/PerceivedComplexity:
|
|
2588
2640
|
VersionChanged: '0.81'
|
2589
2641
|
AllowedMethods: []
|
2590
2642
|
AllowedPatterns: []
|
2591
|
-
IgnoredMethods: [] # deprecated
|
2592
2643
|
Max: 8
|
2593
2644
|
|
2594
2645
|
################## Migration #############################
|
@@ -2759,13 +2810,13 @@ Naming/HeredocDelimiterNaming:
|
|
2759
2810
|
Enabled: true
|
2760
2811
|
VersionAdded: '0.50'
|
2761
2812
|
ForbiddenDelimiters:
|
2762
|
-
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
|
2813
|
+
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/i'
|
2763
2814
|
|
2764
2815
|
Naming/InclusiveLanguage:
|
2765
2816
|
Description: 'Recommend the use of inclusive language instead of problematic terms.'
|
2766
2817
|
Enabled: false
|
2767
2818
|
VersionAdded: '1.18'
|
2768
|
-
VersionChanged: '1.
|
2819
|
+
VersionChanged: '1.49'
|
2769
2820
|
CheckIdentifiers: true
|
2770
2821
|
CheckConstants: true
|
2771
2822
|
CheckVariables: true
|
@@ -2817,7 +2868,6 @@ Naming/MethodName:
|
|
2817
2868
|
# - '\A\s*onSelectionCleared\s*'
|
2818
2869
|
#
|
2819
2870
|
AllowedPatterns: []
|
2820
|
-
IgnoredPatterns: [] # deprecated
|
2821
2871
|
|
2822
2872
|
Naming/MethodParameterName:
|
2823
2873
|
Description: >-
|
@@ -2918,6 +2968,7 @@ Naming/VariableNumber:
|
|
2918
2968
|
- rfc822 # Time#rfc822
|
2919
2969
|
- rfc2822 # Time#rfc2822
|
2920
2970
|
- rfc3339 # DateTime.rfc3339
|
2971
|
+
- x86_64 # Allowed by default as an underscore separated CPU architecture name
|
2921
2972
|
AllowedPatterns: []
|
2922
2973
|
|
2923
2974
|
#################### Security ##############################
|
@@ -2925,7 +2976,9 @@ Naming/VariableNumber:
|
|
2925
2976
|
Security/CompoundHash:
|
2926
2977
|
Description: 'When overwriting Object#hash to combine values, prefer delegating to Array#hash over writing a custom implementation.'
|
2927
2978
|
Enabled: pending
|
2979
|
+
Safe: false
|
2928
2980
|
VersionAdded: '1.28'
|
2981
|
+
VersionChanged: '1.51'
|
2929
2982
|
|
2930
2983
|
Security/Eval:
|
2931
2984
|
Description: 'The use of eval represents a serious security risk.'
|
@@ -3031,6 +3084,7 @@ Style/ArgumentsForwarding:
|
|
3031
3084
|
StyleGuide: '#arguments-forwarding'
|
3032
3085
|
Enabled: pending
|
3033
3086
|
AllowOnlyRestArgument: true
|
3087
|
+
UseAnonymousForwarding: true
|
3034
3088
|
VersionAdded: '1.1'
|
3035
3089
|
|
3036
3090
|
Style/ArrayCoercion:
|
@@ -3045,6 +3099,7 @@ Style/ArrayCoercion:
|
|
3045
3099
|
Style/ArrayIntersect:
|
3046
3100
|
Description: 'Use `array1.intersect?(array2)` instead of `(array1 & array2).any?`.'
|
3047
3101
|
Enabled: 'pending'
|
3102
|
+
Safe: false
|
3048
3103
|
VersionAdded: '1.40'
|
3049
3104
|
|
3050
3105
|
Style/ArrayJoin:
|
@@ -3187,7 +3242,6 @@ Style/BlockDelimiters:
|
|
3187
3242
|
- proc
|
3188
3243
|
- it
|
3189
3244
|
AllowedPatterns: []
|
3190
|
-
IgnoredMethods: [] # deprecated
|
3191
3245
|
# The AllowBracesOnProceduralOneLiners option is ignored unless the
|
3192
3246
|
# EnforcedStyle is set to `semantic`. If so:
|
3193
3247
|
#
|
@@ -3211,7 +3265,7 @@ Style/BlockDelimiters:
|
|
3211
3265
|
# collection.each do |element| puts element end
|
3212
3266
|
AllowBracesOnProceduralOneLiners: false
|
3213
3267
|
# The BracesRequiredMethods overrides all other configurations except
|
3214
|
-
#
|
3268
|
+
# AllowedMethods. It can be used to enforce that all blocks for specific
|
3215
3269
|
# methods use braces. For example, you can use this to enforce Sorbet
|
3216
3270
|
# signatures use braces even when the rest of your codebase enforces
|
3217
3271
|
# the `line_count_based` style.
|
@@ -3248,6 +3302,9 @@ Style/CaseLikeIf:
|
|
3248
3302
|
Enabled: true
|
3249
3303
|
Safe: false
|
3250
3304
|
VersionAdded: '0.88'
|
3305
|
+
VersionChanged: '1.48'
|
3306
|
+
# `MinBranchesCount` defines the number of branches `if` needs to have to trigger this cop.
|
3307
|
+
MinBranchesCount: 3
|
3251
3308
|
|
3252
3309
|
Style/CharacterLiteral:
|
3253
3310
|
Description: 'Checks for uses of character literals.'
|
@@ -3260,7 +3317,7 @@ Style/ClassAndModuleChildren:
|
|
3260
3317
|
StyleGuide: '#namespace-definition'
|
3261
3318
|
# Moving from compact to nested children requires knowledge of whether the
|
3262
3319
|
# outer parent is a module or a class. Moving from nested to compact requires
|
3263
|
-
# verification that the outer parent is defined elsewhere.
|
3320
|
+
# verification that the outer parent is defined elsewhere. RuboCop does not
|
3264
3321
|
# have the knowledge to perform either operation safely and thus requires
|
3265
3322
|
# manual oversight.
|
3266
3323
|
SafeAutoCorrect: false
|
@@ -3299,13 +3356,14 @@ Style/ClassEqualityComparison:
|
|
3299
3356
|
Description: 'Enforces the use of `Object#instance_of?` instead of class comparison for equality.'
|
3300
3357
|
StyleGuide: '#instance-of-vs-class-comparison'
|
3301
3358
|
Enabled: true
|
3359
|
+
SafeAutoCorrect: false
|
3302
3360
|
VersionAdded: '0.93'
|
3361
|
+
VersionChanged: '1.57'
|
3303
3362
|
AllowedMethods:
|
3304
3363
|
- ==
|
3305
3364
|
- equal?
|
3306
3365
|
- eql?
|
3307
3366
|
AllowedPatterns: []
|
3308
|
-
IgnoredMethods: [] # deprecated
|
3309
3367
|
|
3310
3368
|
Style/ClassMethods:
|
3311
3369
|
Description: 'Use self when defining module/class methods.'
|
@@ -3336,6 +3394,7 @@ Style/CollectionCompact:
|
|
3336
3394
|
Safe: false
|
3337
3395
|
VersionAdded: '1.2'
|
3338
3396
|
VersionChanged: '1.3'
|
3397
|
+
AllowedReceivers: []
|
3339
3398
|
|
3340
3399
|
# Align with the style guide.
|
3341
3400
|
Style/CollectionMethods:
|
@@ -3354,6 +3413,7 @@ Style/CollectionMethods:
|
|
3354
3413
|
PreferredMethods:
|
3355
3414
|
collect: 'map'
|
3356
3415
|
collect!: 'map!'
|
3416
|
+
collect_concat: 'flat_map'
|
3357
3417
|
inject: 'reduce'
|
3358
3418
|
detect: 'find'
|
3359
3419
|
find_all: 'select'
|
@@ -3426,6 +3486,11 @@ Style/CommentedKeyword:
|
|
3426
3486
|
VersionAdded: '0.51'
|
3427
3487
|
VersionChanged: '1.19'
|
3428
3488
|
|
3489
|
+
Style/ComparableClamp:
|
3490
|
+
Description: 'Enforces the use of `Comparable#clamp` instead of comparison by minimum and maximum.'
|
3491
|
+
Enabled: pending
|
3492
|
+
VersionAdded: '1.44'
|
3493
|
+
|
3429
3494
|
Style/ConcatArrayLiterals:
|
3430
3495
|
Description: 'Enforces the use of `Array#push(item)` instead of `Array#concat([item])` to avoid redundant array literals.'
|
3431
3496
|
Enabled: pending
|
@@ -3487,6 +3552,14 @@ Style/Copyright:
|
|
3487
3552
|
Notice: '^Copyright (\(c\) )?2[0-9]{3} .+'
|
3488
3553
|
AutocorrectNotice: ''
|
3489
3554
|
|
3555
|
+
Style/DataInheritance:
|
3556
|
+
Description: 'Checks for inheritance from Data.define.'
|
3557
|
+
StyleGuide: '#no-extend-data-define'
|
3558
|
+
Enabled: pending
|
3559
|
+
SafeAutoCorrect: false
|
3560
|
+
VersionAdded: '1.49'
|
3561
|
+
VersionChanged: '1.51'
|
3562
|
+
|
3490
3563
|
Style/DateTime:
|
3491
3564
|
Description: 'Use Time over DateTime.'
|
3492
3565
|
StyleGuide: '#date-time'
|
@@ -3510,6 +3583,12 @@ Style/Dir:
|
|
3510
3583
|
Enabled: true
|
3511
3584
|
VersionAdded: '0.50'
|
3512
3585
|
|
3586
|
+
Style/DirEmpty:
|
3587
|
+
Description: >-
|
3588
|
+
Prefer to use `Dir.empty?('path/to/dir')` when checking if a directory is empty.
|
3589
|
+
Enabled: pending
|
3590
|
+
VersionAdded: '1.48'
|
3591
|
+
|
3513
3592
|
Style/DisableCopsWithinSourceCodeDirective:
|
3514
3593
|
Description: >-
|
3515
3594
|
Forbids disabling/enabling cops within source code.
|
@@ -3670,6 +3749,11 @@ Style/EvenOdd:
|
|
3670
3749
|
VersionAdded: '0.12'
|
3671
3750
|
VersionChanged: '0.29'
|
3672
3751
|
|
3752
|
+
Style/ExactRegexpMatch:
|
3753
|
+
Description: 'Checks for exact regexp match inside Regexp literals.'
|
3754
|
+
Enabled: pending
|
3755
|
+
VersionAdded: '1.51'
|
3756
|
+
|
3673
3757
|
Style/ExpandPathArguments:
|
3674
3758
|
Description: "Use `expand_path(__dir__)` instead of `expand_path('..', __FILE__)`."
|
3675
3759
|
Enabled: true
|
@@ -3705,6 +3789,13 @@ Style/FetchEnvVar:
|
|
3705
3789
|
# Environment variables to be excluded from the inspection.
|
3706
3790
|
AllowedVars: []
|
3707
3791
|
|
3792
|
+
Style/FileEmpty:
|
3793
|
+
Description: >-
|
3794
|
+
Prefer to use `File.empty?('path/to/file')` when checking if a file is empty.
|
3795
|
+
Enabled: pending
|
3796
|
+
Safe: false
|
3797
|
+
VersionAdded: '1.48'
|
3798
|
+
|
3708
3799
|
Style/FileRead:
|
3709
3800
|
Description: 'Favor `File.(bin)read` convenience methods.'
|
3710
3801
|
StyleGuide: '#file-read'
|
@@ -3775,7 +3866,6 @@ Style/FormatStringToken:
|
|
3775
3866
|
VersionChanged: '1.0'
|
3776
3867
|
AllowedMethods: []
|
3777
3868
|
AllowedPatterns: []
|
3778
|
-
IgnoredMethods: [] # deprecated
|
3779
3869
|
|
3780
3870
|
Style/FrozenStringLiteralComment:
|
3781
3871
|
Description: >-
|
@@ -3842,8 +3932,9 @@ Style/HashConversion:
|
|
3842
3932
|
Description: 'Avoid Hash[] in favor of ary.to_h or literal hashes.'
|
3843
3933
|
StyleGuide: '#avoid-hash-constructor'
|
3844
3934
|
Enabled: pending
|
3935
|
+
SafeAutoCorrect: false
|
3845
3936
|
VersionAdded: '1.10'
|
3846
|
-
VersionChanged: '1.
|
3937
|
+
VersionChanged: '1.55'
|
3847
3938
|
AllowSplatArgument: true
|
3848
3939
|
|
3849
3940
|
Style/HashEachMethods:
|
@@ -3853,7 +3944,8 @@ Style/HashEachMethods:
|
|
3853
3944
|
Safe: false
|
3854
3945
|
VersionAdded: '0.80'
|
3855
3946
|
VersionChanged: '1.16'
|
3856
|
-
AllowedReceivers:
|
3947
|
+
AllowedReceivers:
|
3948
|
+
- Thread.current
|
3857
3949
|
|
3858
3950
|
Style/HashExcept:
|
3859
3951
|
Description: >-
|
@@ -3901,7 +3993,7 @@ Style/HashSyntax:
|
|
3901
3993
|
- never
|
3902
3994
|
# accepts both shorthand and explicit use of hash literal value.
|
3903
3995
|
- either
|
3904
|
-
#
|
3996
|
+
# forces use of the 3.1 syntax only if all values can be omitted in the hash.
|
3905
3997
|
- consistent
|
3906
3998
|
# Force hashes that have a symbol value to use hash rockets
|
3907
3999
|
UseHashRocketsWithSymbolValues: false
|
@@ -4015,16 +4107,35 @@ Style/InverseMethods:
|
|
4015
4107
|
:=~: :!~
|
4016
4108
|
:<: :>=
|
4017
4109
|
:>: :<=
|
4018
|
-
# `ActiveSupport` defines some common inverse methods. They are listed below,
|
4019
|
-
# and not enabled by default.
|
4020
|
-
# :present?: :blank?,
|
4021
|
-
# :include?: :exclude?
|
4022
4110
|
# `InverseBlocks` are methods that are inverted by inverting the return
|
4023
4111
|
# of the block that is passed to the method
|
4024
4112
|
InverseBlocks:
|
4025
4113
|
:select: :reject
|
4026
4114
|
:select!: :reject!
|
4027
4115
|
|
4116
|
+
Style/InvertibleUnlessCondition:
|
4117
|
+
Description: 'Favor `if` with inverted condition over `unless`.'
|
4118
|
+
Enabled: false
|
4119
|
+
Safe: false
|
4120
|
+
VersionAdded: '1.44'
|
4121
|
+
VersionChanged: '1.50'
|
4122
|
+
# `InverseMethods` are methods that can be inverted in a `unless` condition.
|
4123
|
+
# The relationship of inverse methods needs to be defined in both directions.
|
4124
|
+
# Keys and values both need to be defined as symbols.
|
4125
|
+
InverseMethods:
|
4126
|
+
:!=: :==
|
4127
|
+
:>: :<=
|
4128
|
+
:<=: :>
|
4129
|
+
:<: :>=
|
4130
|
+
:>=: :<
|
4131
|
+
:!~: :=~
|
4132
|
+
:zero?: :nonzero?
|
4133
|
+
:nonzero?: :zero?
|
4134
|
+
:any?: :none?
|
4135
|
+
:none?: :any?
|
4136
|
+
:even?: :odd?
|
4137
|
+
:odd?: :even?
|
4138
|
+
|
4028
4139
|
Style/IpAddresses:
|
4029
4140
|
Description: "Don't include literal IP addresses in code."
|
4030
4141
|
Enabled: false
|
@@ -4110,6 +4221,12 @@ Style/MapToHash:
|
|
4110
4221
|
VersionAdded: '1.24'
|
4111
4222
|
Safe: false
|
4112
4223
|
|
4224
|
+
Style/MapToSet:
|
4225
|
+
Description: 'Prefer `to_set` with a block over `map.to_set`.'
|
4226
|
+
Enabled: pending
|
4227
|
+
Safe: false
|
4228
|
+
VersionAdded: '1.42'
|
4229
|
+
|
4113
4230
|
Style/MethodCallWithArgsParentheses:
|
4114
4231
|
Description: 'Use parentheses for method calls with arguments.'
|
4115
4232
|
StyleGuide: '#method-invocation-parens'
|
@@ -4118,9 +4235,7 @@ Style/MethodCallWithArgsParentheses:
|
|
4118
4235
|
VersionChanged: '1.7'
|
4119
4236
|
IgnoreMacros: true
|
4120
4237
|
AllowedMethods: []
|
4121
|
-
IgnoredMethods: [] # deprecated
|
4122
4238
|
AllowedPatterns: []
|
4123
|
-
IgnoredPatterns: [] # deprecated
|
4124
4239
|
IncludedMacros: []
|
4125
4240
|
AllowParenthesesInMultilineCall: false
|
4126
4241
|
AllowParenthesesInChaining: false
|
@@ -4137,7 +4252,6 @@ Style/MethodCallWithoutArgsParentheses:
|
|
4137
4252
|
Enabled: true
|
4138
4253
|
AllowedMethods: []
|
4139
4254
|
AllowedPatterns: []
|
4140
|
-
IgnoredMethods: [] # deprecated
|
4141
4255
|
VersionAdded: '0.47'
|
4142
4256
|
VersionChanged: '0.55'
|
4143
4257
|
|
@@ -4168,6 +4282,12 @@ Style/MinMax:
|
|
4168
4282
|
Enabled: true
|
4169
4283
|
VersionAdded: '0.50'
|
4170
4284
|
|
4285
|
+
Style/MinMaxComparison:
|
4286
|
+
Description: 'Enforces the use of `max` or `min` instead of comparison for greater or less.'
|
4287
|
+
Enabled: pending
|
4288
|
+
Safe: false
|
4289
|
+
VersionAdded: '1.42'
|
4290
|
+
|
4171
4291
|
Style/MissingElse:
|
4172
4292
|
Description: >-
|
4173
4293
|
Require if/case expressions to have an else branches.
|
@@ -4291,6 +4411,7 @@ Style/MultipleComparison:
|
|
4291
4411
|
VersionAdded: '0.49'
|
4292
4412
|
VersionChanged: '1.1'
|
4293
4413
|
AllowMethodComparison: true
|
4414
|
+
ComparisonsThreshold: 2
|
4294
4415
|
|
4295
4416
|
Style/MutableConstant:
|
4296
4417
|
Description: 'Do not assign mutable objects to constants.'
|
@@ -4496,11 +4617,10 @@ Style/NumericPredicate:
|
|
4496
4617
|
Checks for the use of predicate- or comparison methods for
|
4497
4618
|
numeric comparisons.
|
4498
4619
|
StyleGuide: '#predicate-methods'
|
4499
|
-
Safe: false
|
4500
4620
|
# This will change to a new method call which isn't guaranteed to be on the
|
4501
4621
|
# object. Switching these methods has to be done with knowledge of the types
|
4502
4622
|
# of the variables which rubocop doesn't have.
|
4503
|
-
|
4623
|
+
Safe: false
|
4504
4624
|
Enabled: true
|
4505
4625
|
VersionAdded: '0.42'
|
4506
4626
|
VersionChanged: '0.59'
|
@@ -4510,7 +4630,6 @@ Style/NumericPredicate:
|
|
4510
4630
|
- comparison
|
4511
4631
|
AllowedMethods: []
|
4512
4632
|
AllowedPatterns: []
|
4513
|
-
IgnoredMethods: [] # deprecated
|
4514
4633
|
# Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
|
4515
4634
|
# false positives.
|
4516
4635
|
Exclude:
|
@@ -4547,7 +4666,9 @@ Style/OpenStructUse:
|
|
4547
4666
|
- https://docs.ruby-lang.org/en/3.0.0/OpenStruct.html#class-OpenStruct-label-Caveats
|
4548
4667
|
|
4549
4668
|
Enabled: pending
|
4669
|
+
Safe: false
|
4550
4670
|
VersionAdded: '1.23'
|
4671
|
+
VersionChanged: '1.51'
|
4551
4672
|
|
4552
4673
|
Style/OperatorMethodCall:
|
4553
4674
|
Description: 'Checks for redundant dot before operator method call.'
|
@@ -4700,12 +4821,16 @@ Style/RedundantArgument:
|
|
4700
4821
|
Enabled: pending
|
4701
4822
|
Safe: false
|
4702
4823
|
VersionAdded: '1.4'
|
4703
|
-
VersionChanged: '1.
|
4824
|
+
VersionChanged: '1.55'
|
4704
4825
|
Methods:
|
4705
4826
|
# Array#join
|
4706
4827
|
join: ''
|
4707
4828
|
# Array#sum
|
4708
4829
|
sum: 0
|
4830
|
+
# Kernel.#exit
|
4831
|
+
exit: true
|
4832
|
+
# Kernel.#exit!
|
4833
|
+
exit!: false
|
4709
4834
|
# String#split
|
4710
4835
|
split: ' '
|
4711
4836
|
# String#chomp
|
@@ -4713,6 +4838,11 @@ Style/RedundantArgument:
|
|
4713
4838
|
# String#chomp!
|
4714
4839
|
chomp!: "\n"
|
4715
4840
|
|
4841
|
+
Style/RedundantArrayConstructor:
|
4842
|
+
Description: 'Checks for the instantiation of array using redundant `Array` constructor.'
|
4843
|
+
Enabled: pending
|
4844
|
+
VersionAdded: '1.52'
|
4845
|
+
|
4716
4846
|
Style/RedundantAssignment:
|
4717
4847
|
Description: 'Checks for redundant assignment before returning.'
|
4718
4848
|
Enabled: true
|
@@ -4745,6 +4875,11 @@ Style/RedundantConstantBase:
|
|
4745
4875
|
Enabled: pending
|
4746
4876
|
VersionAdded: '1.40'
|
4747
4877
|
|
4878
|
+
Style/RedundantCurrentDirectoryInPath:
|
4879
|
+
Description: 'Checks for uses a redundant current directory in path.'
|
4880
|
+
Enabled: pending
|
4881
|
+
VersionAdded: '1.53'
|
4882
|
+
|
4748
4883
|
Style/RedundantDoubleSplatHashBraces:
|
4749
4884
|
Description: 'Checks for redundant uses of double splat hash braces.'
|
4750
4885
|
Enabled: pending
|
@@ -4784,12 +4919,26 @@ Style/RedundantFileExtensionInRequire:
|
|
4784
4919
|
Enabled: true
|
4785
4920
|
VersionAdded: '0.88'
|
4786
4921
|
|
4922
|
+
Style/RedundantFilterChain:
|
4923
|
+
Description: >-
|
4924
|
+
Identifies usages of `any?`, `empty?`, `none?` or `one?` predicate methods chained to
|
4925
|
+
`select`/`filter`/`find_all` and change them to use predicate method instead.
|
4926
|
+
Enabled: pending
|
4927
|
+
SafeAutoCorrect: false
|
4928
|
+
VersionAdded: '1.52'
|
4929
|
+
VersionChanged: '1.57'
|
4930
|
+
|
4787
4931
|
Style/RedundantFreeze:
|
4788
4932
|
Description: "Checks usages of Object#freeze on immutable objects."
|
4789
4933
|
Enabled: true
|
4790
4934
|
VersionAdded: '0.34'
|
4791
4935
|
VersionChanged: '0.66'
|
4792
4936
|
|
4937
|
+
Style/RedundantHeredocDelimiterQuotes:
|
4938
|
+
Description: 'Checks for redundant heredoc delimiter quotes.'
|
4939
|
+
Enabled: pending
|
4940
|
+
VersionAdded: '1.45'
|
4941
|
+
|
4793
4942
|
Style/RedundantInitialize:
|
4794
4943
|
Description: 'Checks for redundant `initialize` methods.'
|
4795
4944
|
Enabled: pending
|
@@ -4805,6 +4954,11 @@ Style/RedundantInterpolation:
|
|
4805
4954
|
VersionAdded: '0.76'
|
4806
4955
|
VersionChanged: '1.30'
|
4807
4956
|
|
4957
|
+
Style/RedundantLineContinuation:
|
4958
|
+
Description: 'Check for redundant line continuation.'
|
4959
|
+
Enabled: pending
|
4960
|
+
VersionAdded: '1.49'
|
4961
|
+
|
4808
4962
|
Style/RedundantParentheses:
|
4809
4963
|
Description: "Checks for parentheses that seem not to serve any purpose."
|
4810
4964
|
Enabled: true
|
@@ -4816,11 +4970,21 @@ Style/RedundantPercentQ:
|
|
4816
4970
|
Enabled: true
|
4817
4971
|
VersionAdded: '0.76'
|
4818
4972
|
|
4973
|
+
Style/RedundantRegexpArgument:
|
4974
|
+
Description: 'Identifies places where argument can be replaced from a deterministic regexp to a string.'
|
4975
|
+
Enabled: pending
|
4976
|
+
VersionAdded: '1.53'
|
4977
|
+
|
4819
4978
|
Style/RedundantRegexpCharacterClass:
|
4820
4979
|
Description: 'Checks for unnecessary single-element Regexp character classes.'
|
4821
4980
|
Enabled: true
|
4822
4981
|
VersionAdded: '0.85'
|
4823
4982
|
|
4983
|
+
Style/RedundantRegexpConstructor:
|
4984
|
+
Description: 'Checks for the instantiation of regexp using redundant `Regexp.new` or `Regexp.compile`.'
|
4985
|
+
Enabled: pending
|
4986
|
+
VersionAdded: '1.52'
|
4987
|
+
|
4824
4988
|
Style/RedundantRegexpEscape:
|
4825
4989
|
Description: 'Checks for redundant escapes in Regexps.'
|
4826
4990
|
Enabled: true
|
@@ -4923,6 +5087,15 @@ Style/ReturnNil:
|
|
4923
5087
|
- return_nil
|
4924
5088
|
VersionAdded: '0.50'
|
4925
5089
|
|
5090
|
+
Style/ReturnNilInPredicateMethodDefinition:
|
5091
|
+
Description: 'Checks if uses of `return` or `return nil` in predicate method definition.'
|
5092
|
+
StyleGuide: '#bool-methods-qmark'
|
5093
|
+
Enabled: pending
|
5094
|
+
SafeAutoCorrect: false
|
5095
|
+
AllowedMethods: []
|
5096
|
+
AllowedPatterns: []
|
5097
|
+
VersionAdded: '1.53'
|
5098
|
+
|
4926
5099
|
Style/SafeNavigation:
|
4927
5100
|
Description: >-
|
4928
5101
|
Transforms usages of a method call safeguarded by
|
@@ -5015,6 +5188,11 @@ Style/SingleLineBlockParams:
|
|
5015
5188
|
- acc
|
5016
5189
|
- elem
|
5017
5190
|
|
5191
|
+
Style/SingleLineDoEndBlock:
|
5192
|
+
Description: 'Checks for single-line `do`...`end` blocks.'
|
5193
|
+
Enabled: pending
|
5194
|
+
VersionAdded: '1.57'
|
5195
|
+
|
5018
5196
|
Style/SingleLineMethods:
|
5019
5197
|
Description: 'Avoid single-line methods.'
|
5020
5198
|
StyleGuide: '#no-single-line-methods'
|
@@ -5187,7 +5365,6 @@ Style/SymbolProc:
|
|
5187
5365
|
AllowedMethods:
|
5188
5366
|
- define_method
|
5189
5367
|
AllowedPatterns: []
|
5190
|
-
IgnoredMethods: [] # deprecated
|
5191
5368
|
AllowComments: false
|
5192
5369
|
|
5193
5370
|
Style/TernaryParentheses:
|
@@ -5408,6 +5585,11 @@ Style/WordArray:
|
|
5408
5585
|
# The regular expression `WordRegex` decides what is considered a word.
|
5409
5586
|
WordRegex: !ruby/regexp '/\A(?:\p{Word}|\p{Word}-\p{Word}|\n|\t)+\z/'
|
5410
5587
|
|
5588
|
+
Style/YAMLFileRead:
|
5589
|
+
Description: 'Checks for the use of `YAML.load`, `YAML.safe_load`, and `YAML.parse` with `File.read` argument.'
|
5590
|
+
Enabled: pending
|
5591
|
+
VersionAdded: '1.53'
|
5592
|
+
|
5411
5593
|
Style/YodaCondition:
|
5412
5594
|
Description: 'Forbid or enforce yoda conditions.'
|
5413
5595
|
Reference: 'https://en.wikipedia.org/wiki/Yoda_conditions'
|
@@ -5426,6 +5608,19 @@ Style/YodaCondition:
|
|
5426
5608
|
VersionAdded: '0.49'
|
5427
5609
|
VersionChanged: '0.75'
|
5428
5610
|
|
5611
|
+
Style/YodaExpression:
|
5612
|
+
Description: 'Forbid the use of yoda expressions.'
|
5613
|
+
Enabled: false
|
5614
|
+
Safe: false
|
5615
|
+
VersionAdded: '1.42'
|
5616
|
+
VersionChanged: '1.43'
|
5617
|
+
SupportedOperators:
|
5618
|
+
- '*'
|
5619
|
+
- '+'
|
5620
|
+
- '&'
|
5621
|
+
- '|'
|
5622
|
+
- '^'
|
5623
|
+
|
5429
5624
|
Style/ZeroLengthPredicate:
|
5430
5625
|
Description: 'Use #empty? when testing for objects of length 0.'
|
5431
5626
|
Enabled: true
|