rubocop 1.11.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +6 -3
- data/config/default.yml +58 -6
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +6 -1
- data/lib/rubocop/cached_data.rb +1 -3
- data/lib/rubocop/cli.rb +4 -6
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +9 -19
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -3
- data/lib/rubocop/cli/command/show_cops.rb +1 -4
- data/lib/rubocop/cli/command/suggest_extensions.rb +3 -2
- data/lib/rubocop/comment_config.rb +45 -101
- data/lib/rubocop/config.rb +11 -26
- data/lib/rubocop/config_loader.rb +5 -11
- data/lib/rubocop/config_loader_resolver.rb +22 -14
- data/lib/rubocop/config_obsoletion/cop_rule.rb +1 -2
- data/lib/rubocop/config_store.rb +1 -2
- data/lib/rubocop/config_validator.rb +5 -10
- data/lib/rubocop/cop/autocorrect_logic.rb +3 -8
- data/lib/rubocop/cop/badge.rb +1 -2
- data/lib/rubocop/cop/base.rb +8 -6
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -2
- data/lib/rubocop/cop/bundler/gem_comment.rb +43 -11
- data/lib/rubocop/cop/bundler/gem_version.rb +99 -0
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -4
- data/lib/rubocop/cop/commissioner.rb +2 -8
- data/lib/rubocop/cop/cop.rb +4 -18
- data/lib/rubocop/cop/corrector.rb +1 -4
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +6 -12
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -8
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -4
- data/lib/rubocop/cop/generator.rb +1 -4
- data/lib/rubocop/cop/generator/configuration_injector.rb +1 -2
- data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/example_description.rb +7 -5
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -3
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +12 -10
- data/lib/rubocop/cop/layout/argument_alignment.rb +34 -18
- data/lib/rubocop/cop/layout/array_alignment.rb +7 -6
- data/lib/rubocop/cop/layout/assignment_indentation.rb +8 -7
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
- data/lib/rubocop/cop/layout/block_alignment.rb +7 -19
- data/lib/rubocop/cop/layout/block_end_newline.rb +4 -8
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -3
- data/lib/rubocop/cop/layout/class_structure.rb +4 -10
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +18 -30
- data/lib/rubocop/cop/layout/comment_indentation.rb +17 -21
- data/lib/rubocop/cop/layout/def_end_alignment.rb +2 -6
- data/lib/rubocop/cop/layout/dot_position.rb +1 -3
- data/lib/rubocop/cop/layout/else_alignment.rb +10 -9
- data/lib/rubocop/cop/layout/empty_comment.rb +5 -12
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +22 -8
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -6
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -3
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +8 -18
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -8
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
- data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +3 -7
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +6 -5
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +10 -8
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +36 -20
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +6 -5
- data/lib/rubocop/cop/layout/hash_alignment.rb +18 -13
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -9
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +2 -6
- data/lib/rubocop/cop/layout/indentation_consistency.rb +9 -6
- data/lib/rubocop/cop/layout/indentation_style.rb +25 -30
- data/lib/rubocop/cop/layout/indentation_width.rb +24 -12
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -4
- data/lib/rubocop/cop/layout/line_length.rb +4 -15
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +7 -15
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +22 -15
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +10 -5
- data/lib/rubocop/cop/layout/parameter_alignment.rb +6 -5
- data/lib/rubocop/cop/layout/redundant_line_break.rb +137 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +53 -0
- data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
- data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
- data/lib/rubocop/cop/layout/space_around_keyword.rb +3 -6
- data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
- data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
- data/lib/rubocop/cop/legacy/corrector.rb +1 -3
- data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
- data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +83 -41
- data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
- data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
- data/lib/rubocop/cop/lint/else_layout.rb +1 -3
- data/lib/rubocop/cop/lint/empty_block.rb +18 -2
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
- data/lib/rubocop/cop/lint/empty_file.rb +1 -3
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
- data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
- data/lib/rubocop/cop/lint/loop.rb +1 -2
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
- data/lib/rubocop/cop/lint/missing_super.rb +1 -2
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
- data/lib/rubocop/cop/lint/number_conversion.rb +11 -5
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rand_one.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +9 -22
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
- data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
- data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
- data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
- data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
- data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
- data/lib/rubocop/cop/lint/suppressed_exception.rb +44 -1
- data/lib/rubocop/cop/lint/symbol_conversion.rb +91 -6
- data/lib/rubocop/cop/lint/syntax.rb +1 -3
- data/lib/rubocop/cop/lint/to_json.rb +1 -2
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
- data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
- data/lib/rubocop/cop/lint/unreachable_loop.rb +14 -7
- data/lib/rubocop/cop/lint/unused_block_argument.rb +9 -7
- data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
- data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
- data/lib/rubocop/cop/lint/void.rb +5 -12
- data/lib/rubocop/cop/message_annotator.rb +1 -3
- data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
- data/lib/rubocop/cop/metrics/class_length.rb +1 -3
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/module_length.rb +2 -6
- data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
- data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
- data/lib/rubocop/cop/migration/department_name.rb +3 -7
- data/lib/rubocop/cop/mixin/alignment.rb +12 -7
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +20 -4
- data/lib/rubocop/cop/mixin/code_length.rb +1 -3
- data/lib/rubocop/cop/mixin/comments_help.rb +5 -1
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
- data/lib/rubocop/cop/mixin/def_node.rb +2 -5
- data/lib/rubocop/cop/mixin/documentation_comment.rb +3 -6
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +7 -7
- data/lib/rubocop/cop/mixin/gem_declaration.rb +13 -0
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +3 -6
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
- data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
- data/lib/rubocop/cop/mixin/line_length_help.rb +13 -10
- data/lib/rubocop/cop/mixin/match_range.rb +2 -5
- data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
- data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +4 -3
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +11 -40
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
- data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
- data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
- data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
- data/lib/rubocop/cop/mixin/preferred_delimiters.rb +4 -7
- data/lib/rubocop/cop/mixin/range_help.rb +10 -13
- data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
- data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
- data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
- data/lib/rubocop/cop/mixin/string_literals_help.rb +1 -1
- data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +7 -13
- data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
- data/lib/rubocop/cop/naming/file_name.rb +7 -16
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +6 -3
- data/lib/rubocop/cop/naming/method_name.rb +1 -2
- data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +10 -0
- data/lib/rubocop/cop/offense.rb +3 -8
- data/lib/rubocop/cop/registry.rb +12 -11
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +3 -5
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
- data/lib/rubocop/cop/style/alias.rb +5 -12
- data/lib/rubocop/cop/style/and_or.rb +3 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
- data/lib/rubocop/cop/style/attr.rb +1 -3
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +59 -71
- data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +60 -0
- data/lib/rubocop/cop/style/case_like_if.rb +16 -6
- data/lib/rubocop/cop/style/character_literal.rb +2 -4
- data/lib/rubocop/cop/style/class_and_module_children.rb +19 -10
- data/lib/rubocop/cop/style/class_equality_comparison.rb +2 -0
- data/lib/rubocop/cop/style/class_methods.rb +1 -3
- data/lib/rubocop/cop/style/collection_compact.rb +1 -3
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
- data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
- data/lib/rubocop/cop/style/command_literal.rb +4 -9
- data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
- data/lib/rubocop/cop/style/commented_keyword.rb +7 -13
- data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
- data/lib/rubocop/cop/style/copyright.rb +3 -6
- data/lib/rubocop/cop/style/date_time.rb +2 -5
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +2 -2
- data/lib/rubocop/cop/style/documentation.rb +25 -3
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
- data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
- data/lib/rubocop/cop/style/empty_else.rb +3 -9
- data/lib/rubocop/cop/style/empty_literal.rb +12 -9
- data/lib/rubocop/cop/style/empty_method.rb +3 -7
- data/lib/rubocop/cop/style/end_block.rb +1 -2
- data/lib/rubocop/cop/style/endless_method.rb +1 -3
- data/lib/rubocop/cop/style/eval_with_location.rb +3 -5
- data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
- data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
- data/lib/rubocop/cop/style/format_string_token.rb +1 -4
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -11
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +31 -3
- data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +20 -24
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +40 -13
- data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
- data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
- data/lib/rubocop/cop/style/lambda.rb +2 -4
- data/lib/rubocop/cop/style/lambda_call.rb +1 -2
- data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +47 -3
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +26 -16
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
- data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
- data/lib/rubocop/cop/style/min_max.rb +1 -2
- data/lib/rubocop/cop/style/missing_else.rb +2 -4
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
- data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
- data/lib/rubocop/cop/style/module_function.rb +3 -6
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
- data/lib/rubocop/cop/style/multiline_method_signature.rb +11 -6
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
- data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
- data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
- data/lib/rubocop/cop/style/negated_if.rb +1 -2
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +23 -2
- data/lib/rubocop/cop/style/negated_unless.rb +1 -2
- data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
- data/lib/rubocop/cop/style/next.rb +4 -9
- data/lib/rubocop/cop/style/nil_lambda.rb +29 -12
- data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
- data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
- data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
- data/lib/rubocop/cop/style/option_hash.rb +1 -3
- data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
- data/lib/rubocop/cop/style/or_assignment.rb +2 -6
- data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
- data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
- data/lib/rubocop/cop/style/proc.rb +1 -2
- data/lib/rubocop/cop/style/raise_args.rb +4 -8
- data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
- data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
- data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
- data/lib/rubocop/cop/style/redundant_begin.rb +40 -6
- data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
- data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
- data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
- data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
- data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
- data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
- data/lib/rubocop/cop/style/redundant_return.rb +6 -4
- data/lib/rubocop/cop/style/redundant_self.rb +9 -9
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
- data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
- data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
- data/lib/rubocop/cop/style/rescue_modifier.rb +21 -14
- data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
- data/lib/rubocop/cop/style/return_nil.rb +1 -2
- data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
- data/lib/rubocop/cop/style/send.rb +1 -2
- data/lib/rubocop/cop/style/signal_exception.rb +3 -7
- data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
- data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
- data/lib/rubocop/cop/style/single_line_methods.rb +21 -4
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +31 -7
- data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
- data/lib/rubocop/cop/style/string_chars.rb +39 -0
- data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
- data/lib/rubocop/cop/style/string_literals.rb +2 -5
- data/lib/rubocop/cop/style/struct_inheritance.rb +10 -0
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
- data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
- data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
- data/lib/rubocop/cop/style/top_level_method_definition.rb +75 -0
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +6 -3
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
- data/lib/rubocop/cop/style/trivial_accessors.rb +67 -4
- data/lib/rubocop/cop/style/unless_else.rb +1 -2
- data/lib/rubocop/cop/style/unless_logical_operators.rb +8 -2
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +1 -3
- data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
- data/lib/rubocop/cop/style/word_array.rb +1 -2
- data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
- data/lib/rubocop/cop/team.rb +2 -5
- data/lib/rubocop/cop/util.rb +8 -11
- data/lib/rubocop/cop/utils/format_string.rb +1 -3
- data/lib/rubocop/cop/variable_force.rb +6 -15
- data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
- data/lib/rubocop/cop/variable_force/branch.rb +16 -2
- data/lib/rubocop/cop/variable_force/reference.rb +1 -3
- data/lib/rubocop/cop/variable_force/scope.rb +4 -8
- data/lib/rubocop/cop/variable_force/variable.rb +2 -4
- data/lib/rubocop/cops_documentation_generator.rb +7 -21
- data/lib/rubocop/directive_comment.rb +69 -9
- data/lib/rubocop/ext/regexp_parser.rb +3 -6
- data/lib/rubocop/file_finder.rb +1 -3
- data/lib/rubocop/formatter/clang_style_formatter.rb +4 -2
- data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
- data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
- data/lib/rubocop/formatter/html_formatter.rb +4 -10
- data/lib/rubocop/formatter/json_formatter.rb +1 -5
- data/lib/rubocop/formatter/junit_formatter.rb +23 -14
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/formatter/tap_formatter.rb +4 -2
- data/lib/rubocop/magic_comment.rb +1 -1
- data/lib/rubocop/options.rb +30 -50
- data/lib/rubocop/path_util.rb +1 -3
- data/lib/rubocop/rake_task.rb +3 -0
- data/lib/rubocop/remote_config.rb +4 -7
- data/lib/rubocop/result_cache.rb +5 -12
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +4 -9
- data/lib/rubocop/rspec/shared_contexts.rb +8 -15
- data/lib/rubocop/runner.rb +7 -14
- data/lib/rubocop/target_finder.rb +19 -16
- data/lib/rubocop/target_ruby.rb +4 -8
- data/lib/rubocop/version.rb +1 -1
- metadata +13 -7
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -55,8 +55,7 @@ module RuboCop
|
|
55
55
|
# end
|
56
56
|
# end
|
57
57
|
class NestedMethodDefinition < Base
|
58
|
-
MSG = 'Method definitions must not be nested. '
|
59
|
-
'Use `lambda` instead.'
|
58
|
+
MSG = 'Method definitions must not be nested. Use `lambda` instead.'
|
60
59
|
|
61
60
|
def on_def(node)
|
62
61
|
subject, = *node
|
@@ -39,9 +39,7 @@ module RuboCop
|
|
39
39
|
# if found within a percent literal expression, will cause a
|
40
40
|
# NestedPercentLiteral violation to be emitted.
|
41
41
|
PERCENT_LITERAL_TYPES = PreferredDelimiters::PERCENT_LITERAL_TYPES
|
42
|
-
REGEXES = PERCENT_LITERAL_TYPES.map
|
43
|
-
/\A#{percent_literal}\W/
|
44
|
-
end.freeze
|
42
|
+
REGEXES = PERCENT_LITERAL_TYPES.map { |percent_literal| /\A#{percent_literal}\W/ }.freeze
|
45
43
|
|
46
44
|
def on_array(node)
|
47
45
|
process(node, *PERCENT_LITERAL_TYPES)
|
@@ -66,9 +66,7 @@ module RuboCop
|
|
66
66
|
loop_variable(node.arguments) do |var_name|
|
67
67
|
return unless var_is_required?(node.body, var_name)
|
68
68
|
|
69
|
-
add_offense(node.send_node)
|
70
|
-
correct_block(corrector, node.send_node)
|
71
|
-
end
|
69
|
+
add_offense(node.send_node) { |corrector| correct_block(corrector, node.send_node) }
|
72
70
|
end
|
73
71
|
end
|
74
72
|
|
@@ -58,8 +58,8 @@ module RuboCop
|
|
58
58
|
}.freeze
|
59
59
|
MSG = 'Replace unsafe number conversion with number '\
|
60
60
|
'class parsing, instead of using '\
|
61
|
-
'
|
62
|
-
'
|
61
|
+
'`%<current>s`, use stricter '\
|
62
|
+
'`%<corrected_method>s`.'
|
63
63
|
METHODS = CONVERSION_METHOD_CLASS_MAPPING.keys.map(&:inspect).join(' ')
|
64
64
|
|
65
65
|
# @!method to_method(node)
|
@@ -97,7 +97,7 @@ module RuboCop
|
|
97
97
|
|
98
98
|
def handle_as_symbol(node)
|
99
99
|
to_method_symbol(node) do |receiver, sym_node, to_method|
|
100
|
-
next if receiver.nil?
|
100
|
+
next if receiver.nil? || !node.arguments.one?
|
101
101
|
|
102
102
|
message = format(
|
103
103
|
MSG,
|
@@ -105,14 +105,15 @@ module RuboCop
|
|
105
105
|
corrected_method: correct_sym_method(to_method)
|
106
106
|
)
|
107
107
|
add_offense(node, message: message) do |corrector|
|
108
|
+
remove_parentheses(corrector, node) if node.parenthesized?
|
109
|
+
|
108
110
|
corrector.replace(sym_node, correct_sym_method(to_method))
|
109
111
|
end
|
110
112
|
end
|
111
113
|
end
|
112
114
|
|
113
115
|
def correct_method(node, receiver)
|
114
|
-
format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name],
|
115
|
-
number_object: receiver.source)
|
116
|
+
format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name], number_object: receiver.source)
|
116
117
|
end
|
117
118
|
|
118
119
|
def correct_sym_method(to_method)
|
@@ -120,6 +121,11 @@ module RuboCop
|
|
120
121
|
"{ |i| #{body} }"
|
121
122
|
end
|
122
123
|
|
124
|
+
def remove_parentheses(corrector, node)
|
125
|
+
corrector.replace(node.loc.begin, ' ')
|
126
|
+
corrector.remove(node.loc.end)
|
127
|
+
end
|
128
|
+
|
123
129
|
def ignore_receiver?(receiver)
|
124
130
|
if receiver.send_type? && ignored_method?(receiver.method_name)
|
125
131
|
true
|
@@ -31,8 +31,7 @@ module RuboCop
|
|
31
31
|
include FrozenStringLiteral
|
32
32
|
extend AutoCorrector
|
33
33
|
|
34
|
-
MSG = 'The encoding magic comment should precede all other '
|
35
|
-
'magic comments.'
|
34
|
+
MSG = 'The encoding magic comment should precede all other magic comments.'
|
36
35
|
|
37
36
|
def on_new_investigation
|
38
37
|
return if processed_source.buffer.source.empty?
|
@@ -48,9 +48,7 @@ module RuboCop
|
|
48
48
|
def on_when(node)
|
49
49
|
regexp_conditions = node.conditions.select(&:regexp_type?)
|
50
50
|
|
51
|
-
@valid_ref = regexp_conditions.map
|
52
|
-
check_regexp(condition)
|
53
|
-
end.compact.max
|
51
|
+
@valid_ref = regexp_conditions.map { |condition| check_regexp(condition) }.compact.max
|
54
52
|
end
|
55
53
|
|
56
54
|
def on_nth_ref(node)
|
@@ -29,9 +29,7 @@ module RuboCop
|
|
29
29
|
|
30
30
|
range = space_range(node.first_argument.source_range, space_length)
|
31
31
|
|
32
|
-
add_offense(range)
|
33
|
-
corrector.remove(range)
|
34
|
-
end
|
32
|
+
add_offense(range) { |corrector| corrector.remove(range) }
|
35
33
|
end
|
36
34
|
alias on_csend on_send
|
37
35
|
|
@@ -34,9 +34,7 @@ module RuboCop
|
|
34
34
|
def on_percent_literal(node)
|
35
35
|
return unless contains_colons_or_commas?(node)
|
36
36
|
|
37
|
-
add_offense(node)
|
38
|
-
autocorrect(corrector, node)
|
39
|
-
end
|
37
|
+
add_offense(node) { |corrector| autocorrect(corrector, node) }
|
40
38
|
end
|
41
39
|
|
42
40
|
private
|
@@ -21,8 +21,7 @@ module RuboCop
|
|
21
21
|
#
|
22
22
|
# 0 # just use 0 instead
|
23
23
|
class RandOne < Base
|
24
|
-
MSG = '`%<method>s` always returns `0`. '
|
25
|
-
'Perhaps you meant `rand(2)` or `rand`?'
|
24
|
+
MSG = '`%<method>s` always returns `0`. Perhaps you meant `rand(2)` or `rand`?'
|
26
25
|
RESTRICT_ON_SEND = %i[rand].freeze
|
27
26
|
|
28
27
|
# @!method rand_one?(node)
|
@@ -69,9 +69,7 @@ module RuboCop
|
|
69
69
|
# Eat the entire comment, the preceding space, and the preceding
|
70
70
|
# newline if there is one.
|
71
71
|
original_begin = range.begin_pos
|
72
|
-
range = range_with_surrounding_space(range: range,
|
73
|
-
side: :left,
|
74
|
-
newlines: true)
|
72
|
+
range = range_with_surrounding_space(range: range, side: :left, newlines: true)
|
75
73
|
|
76
74
|
range_with_surrounding_space(range: range,
|
77
75
|
side: :right,
|
@@ -93,9 +91,7 @@ module RuboCop
|
|
93
91
|
|
94
92
|
range = range_with_surrounding_comma(range, :right)
|
95
93
|
# Eat following spaces up to EOL, but not the newline itself.
|
96
|
-
range_with_surrounding_space(range: range,
|
97
|
-
side: :right,
|
98
|
-
newlines: false)
|
94
|
+
range_with_surrounding_space(range: range, side: :right, newlines: false)
|
99
95
|
end
|
100
96
|
|
101
97
|
def each_redundant_disable(cop_disabled_line_ranges, offenses,
|
@@ -103,13 +99,9 @@ module RuboCop
|
|
103
99
|
disabled_ranges = cop_disabled_line_ranges[COP_NAME] || [0..0]
|
104
100
|
|
105
101
|
cop_disabled_line_ranges.each do |cop, line_ranges|
|
106
|
-
each_already_disabled(line_ranges,
|
107
|
-
disabled_ranges) do |comment|
|
108
|
-
yield comment, cop
|
109
|
-
end
|
102
|
+
each_already_disabled(line_ranges, disabled_ranges) { |comment| yield comment, cop }
|
110
103
|
|
111
|
-
each_line_range(line_ranges, disabled_ranges, offenses,
|
112
|
-
cop, &block)
|
104
|
+
each_line_range(line_ranges, disabled_ranges, offenses, cop, &block)
|
113
105
|
end
|
114
106
|
end
|
115
107
|
|
@@ -119,8 +111,7 @@ module RuboCop
|
|
119
111
|
comment = processed_source.comment_at_line(line_range.begin)
|
120
112
|
next if ignore_offense?(disabled_ranges, line_range)
|
121
113
|
|
122
|
-
redundant_cop = find_redundant(comment, offenses, cop, line_range,
|
123
|
-
line_ranges[ix + 1])
|
114
|
+
redundant_cop = find_redundant(comment, offenses, cop, line_range, line_ranges[ix + 1])
|
124
115
|
yield comment, redundant_cop if redundant_cop
|
125
116
|
end
|
126
117
|
end
|
@@ -151,8 +142,7 @@ module RuboCop
|
|
151
142
|
# comment. If the disable all comment is truly redundant, we will
|
152
143
|
# detect that when examining the comments of another cop, and we
|
153
144
|
# get the full line range for the disable all.
|
154
|
-
if (next_line_range.nil? ||
|
155
|
-
line_range.last != next_line_range.first) &&
|
145
|
+
if (next_line_range.nil? || line_range.last != next_line_range.first) &&
|
156
146
|
offenses.none? { |o| line_range.cover?(o.line) }
|
157
147
|
'all'
|
158
148
|
end
|
@@ -174,15 +164,13 @@ module RuboCop
|
|
174
164
|
end
|
175
165
|
|
176
166
|
def directive_count(comment)
|
177
|
-
|
178
|
-
_, cops_string = match.captures
|
167
|
+
_, cops_string = DirectiveComment.new(comment).match_captures
|
179
168
|
cops_string.split(/,\s*/).size
|
180
169
|
end
|
181
170
|
|
182
171
|
def add_offenses(redundant_cops)
|
183
172
|
redundant_cops.each do |comment, cops|
|
184
|
-
if all_disabled?(comment) ||
|
185
|
-
directive_count(comment) == cops.size
|
173
|
+
if all_disabled?(comment) || directive_count(comment) == cops.size
|
186
174
|
add_offense_for_entire_comment(comment, cops)
|
187
175
|
else
|
188
176
|
add_offense_for_some_cops(comment, cops)
|
@@ -230,8 +218,7 @@ module RuboCop
|
|
230
218
|
return unless offset
|
231
219
|
|
232
220
|
offset += haystack.begin_pos
|
233
|
-
Parser::Source::Range.new(haystack.source_buffer, offset,
|
234
|
-
offset + needle.size)
|
221
|
+
Parser::Source::Range.new(haystack.source_buffer, offset, offset + needle.size)
|
235
222
|
end
|
236
223
|
|
237
224
|
def trailing_range?(ranges, range)
|
@@ -53,9 +53,7 @@ module RuboCop
|
|
53
53
|
return if respond_to_nil_specific_method?(node)
|
54
54
|
|
55
55
|
range = range_between(node.loc.dot.begin_pos, node.source_range.end_pos)
|
56
|
-
add_offense(range)
|
57
|
-
corrector.replace(node.loc.dot, '.')
|
58
|
-
end
|
56
|
+
add_offense(range) { |corrector| corrector.replace(node.loc.dot, '.') }
|
59
57
|
end
|
60
58
|
|
61
59
|
private
|
@@ -94,8 +94,7 @@ module RuboCop
|
|
94
94
|
|
95
95
|
def on_splat(node)
|
96
96
|
redundant_splat_expansion(node) do
|
97
|
-
if array_splat?(node) &&
|
98
|
-
(method_argument?(node) || part_of_an_array?(node))
|
97
|
+
if array_splat?(node) && (method_argument?(node) || part_of_an_array?(node))
|
99
98
|
return if allow_percent_literal_array_argument? &&
|
100
99
|
use_percent_literal_array_argument?(node)
|
101
100
|
|
@@ -103,9 +102,7 @@ module RuboCop
|
|
103
102
|
autocorrect(corrector, node)
|
104
103
|
end
|
105
104
|
else
|
106
|
-
add_offense(node)
|
107
|
-
autocorrect(corrector, node)
|
108
|
-
end
|
105
|
+
add_offense(node) { |corrector| autocorrect(corrector, node) }
|
109
106
|
end
|
110
107
|
end
|
111
108
|
end
|
@@ -124,8 +121,7 @@ module RuboCop
|
|
124
121
|
return if array_new_inside_array_literal?(expanded_item)
|
125
122
|
|
126
123
|
grandparent = node.parent.parent
|
127
|
-
return if grandparent &&
|
128
|
-
!ASSIGNMENT_TYPES.include?(grandparent.type)
|
124
|
+
return if grandparent && !ASSIGNMENT_TYPES.include?(grandparent.type)
|
129
125
|
end
|
130
126
|
|
131
127
|
yield
|
@@ -22,8 +22,7 @@ module RuboCop
|
|
22
22
|
extend AutoCorrector
|
23
23
|
|
24
24
|
MSG_DEFAULT = 'Redundant use of `Object#to_s` in interpolation.'
|
25
|
-
MSG_SELF = 'Use `self` instead of `Object#to_s` in '
|
26
|
-
'interpolation.'
|
25
|
+
MSG_SELF = 'Use `self` instead of `Object#to_s` in interpolation.'
|
27
26
|
|
28
27
|
# @!method to_s_without_args?(node)
|
29
28
|
def_node_matcher :to_s_without_args?, '(send _ :to_s)'
|
@@ -23,9 +23,7 @@ module RuboCop
|
|
23
23
|
' The regexp literal matches `$_` implicitly.'
|
24
24
|
|
25
25
|
def on_match_current_line(node)
|
26
|
-
add_offense(node)
|
27
|
-
corrector.replace(node, "#{node.source} =~ $_")
|
28
|
-
end
|
26
|
+
add_offense(node) { |corrector| corrector.replace(node, "#{node.source} =~ $_") }
|
29
27
|
end
|
30
28
|
end
|
31
29
|
end
|
@@ -30,8 +30,7 @@ module RuboCop
|
|
30
30
|
class RequireParentheses < Base
|
31
31
|
include RangeHelp
|
32
32
|
|
33
|
-
MSG = 'Use parentheses in the method call to avoid confusion about '
|
34
|
-
'precedence.'
|
33
|
+
MSG = 'Use parentheses in the method call to avoid confusion about precedence.'
|
35
34
|
|
36
35
|
def on_send(node)
|
37
36
|
return if !node.arguments? || node.parenthesized?
|
@@ -49,8 +48,7 @@ module RuboCop
|
|
49
48
|
def check_ternary(ternary, node)
|
50
49
|
return unless ternary.condition.operator_keyword?
|
51
50
|
|
52
|
-
range = range_between(node.source_range.begin_pos,
|
53
|
-
ternary.condition.source_range.end_pos)
|
51
|
+
range = range_between(node.source_range.begin_pos, ternary.condition.source_range.end_pos)
|
54
52
|
|
55
53
|
add_offense(range)
|
56
54
|
end
|
@@ -25,8 +25,7 @@ module RuboCop
|
|
25
25
|
# handle_exception
|
26
26
|
# end
|
27
27
|
class RescueException < Base
|
28
|
-
MSG = 'Avoid rescuing the `Exception` class. '
|
29
|
-
'Perhaps you meant to rescue `StandardError`?'
|
28
|
+
MSG = 'Avoid rescuing the `Exception` class. Perhaps you meant to rescue `StandardError`?'
|
30
29
|
|
31
30
|
def on_resbody(node)
|
32
31
|
return unless node.children.first
|
@@ -51,10 +51,7 @@ module RuboCop
|
|
51
51
|
|
52
52
|
add_offense(
|
53
53
|
node.loc.keyword.join(rescued.loc.expression),
|
54
|
-
message: format(
|
55
|
-
MSG, invalid_exceptions: invalid_exceptions.map(&:source)
|
56
|
-
.join(', ')
|
57
|
-
)
|
54
|
+
message: format(MSG, invalid_exceptions: invalid_exceptions.map(&:source).join(', '))
|
58
55
|
) do |corrector|
|
59
56
|
autocorrect(corrector, node)
|
60
57
|
end
|
@@ -83,9 +80,7 @@ module RuboCop
|
|
83
80
|
end
|
84
81
|
|
85
82
|
def invalid_exceptions(exceptions)
|
86
|
-
exceptions.select
|
87
|
-
INVALID_TYPES.include?(exception.type)
|
88
|
-
end
|
83
|
+
exceptions.select { |exception| INVALID_TYPES.include?(exception.type) }
|
89
84
|
end
|
90
85
|
end
|
91
86
|
end
|
@@ -63,8 +63,7 @@ module RuboCop
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def setter_method?(method_name)
|
66
|
-
method_name.to_s.end_with?('=') &&
|
67
|
-
!AST::Node::COMPARISON_OPERATORS.include?(method_name)
|
66
|
+
method_name.to_s.end_with?('=') && !AST::Node::COMPARISON_OPERATORS.include?(method_name)
|
68
67
|
end
|
69
68
|
end
|
70
69
|
end
|
@@ -26,8 +26,7 @@ module RuboCop
|
|
26
26
|
class SafeNavigationChain < Base
|
27
27
|
include NilMethods
|
28
28
|
|
29
|
-
MSG = 'Do not chain ordinary method call'
|
30
|
-
' after safe navigation operator.'
|
29
|
+
MSG = 'Do not chain ordinary method call after safe navigation operator.'
|
31
30
|
|
32
31
|
# @!method bad_method?(node)
|
33
32
|
def_node_matcher :bad_method?, <<~PATTERN
|
@@ -31,8 +31,7 @@ module RuboCop
|
|
31
31
|
include NilMethods
|
32
32
|
extend AutoCorrector
|
33
33
|
|
34
|
-
MSG = 'Ensure that safe navigation is used consistently '
|
35
|
-
'inside of `&&` and `||`.'
|
34
|
+
MSG = 'Ensure that safe navigation is used consistently inside of `&&` and `||`.'
|
36
35
|
|
37
36
|
def on_csend(node)
|
38
37
|
return unless node.parent&.operator_keyword?
|
@@ -46,15 +45,12 @@ module RuboCop
|
|
46
45
|
safe_nav_receiver = node.receiver
|
47
46
|
|
48
47
|
method_calls = conditions.select(&:send_type?)
|
49
|
-
unsafe_method_calls =
|
50
|
-
unsafe_method_calls(method_calls, safe_nav_receiver)
|
48
|
+
unsafe_method_calls = unsafe_method_calls(method_calls, safe_nav_receiver)
|
51
49
|
|
52
50
|
unsafe_method_calls.each do |unsafe_method_call|
|
53
51
|
location = location(node, unsafe_method_call)
|
54
52
|
|
55
|
-
add_offense(location)
|
56
|
-
autocorrect(corrector, unsafe_method_call)
|
57
|
-
end
|
53
|
+
add_offense(location) { |corrector| autocorrect(corrector, unsafe_method_call) }
|
58
54
|
|
59
55
|
ignore_node(unsafe_method_call)
|
60
56
|
end
|
@@ -76,9 +72,7 @@ module RuboCop
|
|
76
72
|
parent = node.parent
|
77
73
|
unless parent &&
|
78
74
|
(parent.operator_keyword? ||
|
79
|
-
(parent.begin_type? &&
|
80
|
-
parent.parent &&
|
81
|
-
parent.parent.operator_keyword?))
|
75
|
+
(parent.begin_type? && parent.parent && parent.parent.operator_keyword?))
|
82
76
|
return node
|
83
77
|
end
|
84
78
|
|