rubocop 1.12.0 → 1.16.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 +5 -2
- data/config/default.yml +77 -8
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +10 -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/comment_config.rb +2 -7
- 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 +3 -6
- 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 +1 -2
- data/lib/rubocop/cop/layout/argument_alignment.rb +30 -14
- data/lib/rubocop/cop/layout/assignment_indentation.rb +2 -4
- 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/case_indentation.rb +57 -11
- data/lib/rubocop/cop/layout/class_structure.rb +4 -10
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -15
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -5
- 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 +1 -3
- 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_array_element_indentation.rb +1 -2
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +14 -5
- 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/hash_alignment.rb +35 -15
- 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_style.rb +1 -3
- data/lib/rubocop/cop/layout/indentation_width.rb +6 -4
- 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 +16 -10
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +4 -0
- 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 +19 -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_in_pattern.rb +62 -0
- 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 +4 -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 +18 -27
- 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/symbol_conversion.rb +4 -16
- 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 +2 -4
- 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/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 +2 -5
- 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 +17 -9
- 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 +2 -4
- 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 +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -37
- 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 +3 -6
- 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 +3 -5
- data/lib/rubocop/cop/mixin/symbol_help.rb +13 -0
- 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 +3 -7
- 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 +2 -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/offense.rb +3 -8
- data/lib/rubocop/cop/registry.rb +3 -11
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -4
- 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/macro.rb +1 -3
- data/lib/rubocop/cop/style/case_like_if.rb +1 -2
- 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_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 +3 -8
- 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/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 +2 -4
- 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 +19 -3
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +27 -8
- data/lib/rubocop/cop/style/if_unless_modifier.rb +40 -13
- data/lib/rubocop/cop/style/in_pattern_then.rb +56 -0
- 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 +7 -3
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +10 -18
- 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_in_pattern_then.rb +62 -0
- 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 +17 -9
- 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/quoted_symbols.rb +105 -0
- 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 +15 -4
- 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 +3 -5
- data/lib/rubocop/cop/style/redundant_self.rb +2 -6
- 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 +4 -0
- 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 +15 -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 +2 -1
- data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
- data/lib/rubocop/cop/style/string_literals.rb +3 -5
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -0
- data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
- 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 +83 -0
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
- 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 +2 -2
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +4 -2
- 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 +10 -1
- 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/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 +18 -16
- data/lib/rubocop/target_ruby.rb +4 -8
- data/lib/rubocop/version.rb +1 -1
- metadata +16 -7
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -49,8 +49,7 @@ module RuboCop
|
|
49
49
|
class Loop < Base
|
50
50
|
extend AutoCorrector
|
51
51
|
|
52
|
-
MSG = 'Use `Kernel#loop` with `break` rather than '
|
53
|
-
'`begin/end/until`(or `while`).'
|
52
|
+
MSG = 'Use `Kernel#loop` with `break` rather than `begin/end/until`(or `while`).'
|
54
53
|
|
55
54
|
def on_while_post(node)
|
56
55
|
register_offense(node)
|
@@ -45,10 +45,8 @@ module RuboCop
|
|
45
45
|
class MissingCopEnableDirective < Base
|
46
46
|
include RangeHelp
|
47
47
|
|
48
|
-
MSG = 'Re-enable %<cop>s cop with `# rubocop:enable` after '
|
49
|
-
|
50
|
-
MSG_BOUND = 'Re-enable %<cop>s cop within %<max_range>s lines after ' \
|
51
|
-
'disabling it.'
|
48
|
+
MSG = 'Re-enable %<cop>s cop with `# rubocop:enable` after disabling it.'
|
49
|
+
MSG_BOUND = 'Re-enable %<cop>s cop within %<max_range>s lines after disabling it.'
|
52
50
|
|
53
51
|
# rubocop:disable Metrics/AbcSize
|
54
52
|
def on_new_investigation
|
@@ -59,9 +57,7 @@ module RuboCop
|
|
59
57
|
# the case when max_range is Float::INFINITY
|
60
58
|
next if line_range.max - line_range.min < max_range + 2
|
61
59
|
|
62
|
-
range = source_range(processed_source.buffer,
|
63
|
-
line_range.min,
|
64
|
-
(0..0))
|
60
|
+
range = source_range(processed_source.buffer, line_range.min, (0..0))
|
65
61
|
|
66
62
|
add_offense(range, message: message(max_range: max_range, cop: cop))
|
67
63
|
end
|
@@ -53,8 +53,7 @@ module RuboCop
|
|
53
53
|
singleton_method_added singleton_method_removed
|
54
54
|
singleton_method_undefined].freeze
|
55
55
|
|
56
|
-
CALLBACKS = (CLASS_LIFECYCLE_CALLBACKS +
|
57
|
-
METHOD_LIFECYCLE_CALLBACKS).to_set.freeze
|
56
|
+
CALLBACKS = (CLASS_LIFECYCLE_CALLBACKS + METHOD_LIFECYCLE_CALLBACKS).to_set.freeze
|
58
57
|
|
59
58
|
def on_def(node)
|
60
59
|
return unless offender?(node)
|
@@ -21,8 +21,7 @@ module RuboCop
|
|
21
21
|
# /(FOO)(BAR)/
|
22
22
|
#
|
23
23
|
class MixedRegexpCaptureTypes < Base
|
24
|
-
MSG = 'Do not mix named captures and numbered captures '
|
25
|
-
'in a Regexp literal.'
|
24
|
+
MSG = 'Do not mix named captures and numbered captures in a Regexp literal.'
|
26
25
|
|
27
26
|
def on_regexp(node)
|
28
27
|
return if node.interpolation?
|
@@ -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,
|
@@ -113,8 +113,7 @@ module RuboCop
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def correct_method(node, receiver)
|
116
|
-
format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name],
|
117
|
-
number_object: receiver.source)
|
116
|
+
format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name], number_object: receiver.source)
|
118
117
|
end
|
119
118
|
|
120
119
|
def correct_sym_method(to_method)
|
@@ -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)
|
@@ -60,18 +60,19 @@ module RuboCop
|
|
60
60
|
processed_source.buffer.source_line(range.line - 1).blank?
|
61
61
|
end
|
62
62
|
|
63
|
-
def comment_range_with_surrounding_space(
|
64
|
-
if previous_line_blank?(
|
65
|
-
processed_source.comment_config.comment_only_line?(
|
63
|
+
def comment_range_with_surrounding_space(directive_comment_range, line_comment_range)
|
64
|
+
if previous_line_blank?(directive_comment_range) &&
|
65
|
+
processed_source.comment_config.comment_only_line?(directive_comment_range.line) &&
|
66
|
+
directive_comment_range.begin_pos == line_comment_range.begin_pos
|
66
67
|
# When the previous line is blank, it should be retained
|
67
|
-
range_with_surrounding_space(range:
|
68
|
+
range_with_surrounding_space(range: directive_comment_range, side: :right)
|
68
69
|
else
|
69
70
|
# Eat the entire comment, the preceding space, and the preceding
|
70
71
|
# newline if there is one.
|
71
|
-
original_begin =
|
72
|
-
range = range_with_surrounding_space(
|
73
|
-
|
74
|
-
|
72
|
+
original_begin = directive_comment_range.begin_pos
|
73
|
+
range = range_with_surrounding_space(
|
74
|
+
range: directive_comment_range, side: :left, newlines: true
|
75
|
+
)
|
75
76
|
|
76
77
|
range_with_surrounding_space(range: range,
|
77
78
|
side: :right,
|
@@ -93,9 +94,7 @@ module RuboCop
|
|
93
94
|
|
94
95
|
range = range_with_surrounding_comma(range, :right)
|
95
96
|
# Eat following spaces up to EOL, but not the newline itself.
|
96
|
-
range_with_surrounding_space(range: range,
|
97
|
-
side: :right,
|
98
|
-
newlines: false)
|
97
|
+
range_with_surrounding_space(range: range, side: :right, newlines: false)
|
99
98
|
end
|
100
99
|
|
101
100
|
def each_redundant_disable(cop_disabled_line_ranges, offenses,
|
@@ -103,13 +102,9 @@ module RuboCop
|
|
103
102
|
disabled_ranges = cop_disabled_line_ranges[COP_NAME] || [0..0]
|
104
103
|
|
105
104
|
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
|
105
|
+
each_already_disabled(line_ranges, disabled_ranges) { |comment| yield comment, cop }
|
110
106
|
|
111
|
-
each_line_range(line_ranges, disabled_ranges, offenses,
|
112
|
-
cop, &block)
|
107
|
+
each_line_range(line_ranges, disabled_ranges, offenses, cop, &block)
|
113
108
|
end
|
114
109
|
end
|
115
110
|
|
@@ -119,8 +114,7 @@ module RuboCop
|
|
119
114
|
comment = processed_source.comment_at_line(line_range.begin)
|
120
115
|
next if ignore_offense?(disabled_ranges, line_range)
|
121
116
|
|
122
|
-
redundant_cop = find_redundant(comment, offenses, cop, line_range,
|
123
|
-
line_ranges[ix + 1])
|
117
|
+
redundant_cop = find_redundant(comment, offenses, cop, line_range, line_ranges[ix + 1])
|
124
118
|
yield comment, redundant_cop if redundant_cop
|
125
119
|
end
|
126
120
|
end
|
@@ -151,8 +145,7 @@ module RuboCop
|
|
151
145
|
# comment. If the disable all comment is truly redundant, we will
|
152
146
|
# detect that when examining the comments of another cop, and we
|
153
147
|
# get the full line range for the disable all.
|
154
|
-
if (next_line_range.nil? ||
|
155
|
-
line_range.last != next_line_range.first) &&
|
148
|
+
if (next_line_range.nil? || line_range.last != next_line_range.first) &&
|
156
149
|
offenses.none? { |o| line_range.cover?(o.line) }
|
157
150
|
'all'
|
158
151
|
end
|
@@ -180,8 +173,7 @@ module RuboCop
|
|
180
173
|
|
181
174
|
def add_offenses(redundant_cops)
|
182
175
|
redundant_cops.each do |comment, cops|
|
183
|
-
if all_disabled?(comment) ||
|
184
|
-
directive_count(comment) == cops.size
|
176
|
+
if all_disabled?(comment) || directive_count(comment) == cops.size
|
185
177
|
add_offense_for_entire_comment(comment, cops)
|
186
178
|
else
|
187
179
|
add_offense_for_some_cops(comment, cops)
|
@@ -190,14 +182,14 @@ module RuboCop
|
|
190
182
|
end
|
191
183
|
|
192
184
|
def add_offense_for_entire_comment(comment, cops)
|
193
|
-
location = comment.
|
185
|
+
location = DirectiveComment.new(comment).range
|
194
186
|
cop_list = cops.sort.map { |c| describe(c) }
|
195
187
|
|
196
188
|
add_offense(
|
197
189
|
location,
|
198
190
|
message: "Unnecessary disabling of #{cop_list.join(', ')}."
|
199
191
|
) do |corrector|
|
200
|
-
range = comment_range_with_surrounding_space(location)
|
192
|
+
range = comment_range_with_surrounding_space(location, comment.loc.expression)
|
201
193
|
corrector.remove(range)
|
202
194
|
end
|
203
195
|
end
|
@@ -229,8 +221,7 @@ module RuboCop
|
|
229
221
|
return unless offset
|
230
222
|
|
231
223
|
offset += haystack.begin_pos
|
232
|
-
Parser::Source::Range.new(haystack.source_buffer, offset,
|
233
|
-
offset + needle.size)
|
224
|
+
Parser::Source::Range.new(haystack.source_buffer, offset, offset + needle.size)
|
234
225
|
end
|
235
226
|
|
236
227
|
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
|