rubocop 0.89.1 → 0.93.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 +2 -2
- data/config/default.yml +160 -14
- data/lib/rubocop.rb +33 -5
- data/lib/rubocop/cached_data.rb +3 -1
- data/lib/rubocop/cli/command.rb +1 -0
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +1 -0
- data/lib/rubocop/cli/command/base.rb +1 -0
- data/lib/rubocop/cli/command/execute_runner.rb +9 -0
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -0
- data/lib/rubocop/cli/command/show_cops.rb +1 -0
- data/lib/rubocop/cli/command/version.rb +1 -0
- data/lib/rubocop/cli/environment.rb +1 -0
- data/lib/rubocop/comment_config.rb +14 -5
- data/lib/rubocop/config_loader.rb +20 -9
- data/lib/rubocop/config_loader_resolver.rb +1 -0
- data/lib/rubocop/config_obsoletion.rb +1 -0
- data/lib/rubocop/config_regeneration.rb +33 -0
- data/lib/rubocop/config_store.rb +3 -3
- data/lib/rubocop/config_validator.rb +3 -0
- data/lib/rubocop/cop/base.rb +23 -0
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +5 -1
- data/lib/rubocop/cop/bundler/gem_comment.rb +8 -3
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +2 -0
- data/lib/rubocop/cop/commissioner.rb +47 -7
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/condition_corrector.rb +3 -5
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +9 -10
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +8 -3
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -8
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +4 -9
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +8 -10
- data/lib/rubocop/cop/documentation.rb +22 -0
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +10 -10
- data/lib/rubocop/cop/generator.rb +2 -1
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +1 -0
- data/lib/rubocop/cop/layout/array_alignment.rb +1 -0
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +77 -0
- data/lib/rubocop/cop/layout/block_alignment.rb +23 -19
- data/lib/rubocop/cop/layout/case_indentation.rb +4 -7
- data/lib/rubocop/cop/layout/class_structure.rb +11 -10
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -6
- data/lib/rubocop/cop/layout/condition_position.rb +13 -15
- data/lib/rubocop/cop/layout/def_end_alignment.rb +8 -5
- data/lib/rubocop/cop/layout/dot_position.rb +21 -20
- data/lib/rubocop/cop/layout/empty_comment.rb +30 -23
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +21 -18
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +13 -13
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +136 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +21 -23
- data/lib/rubocop/cop/layout/empty_lines.rb +6 -7
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +17 -14
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +7 -8
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +5 -8
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +3 -7
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +2 -5
- data/lib/rubocop/cop/layout/end_alignment.rb +11 -17
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +4 -8
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/hash_alignment.rb +17 -20
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +15 -14
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +14 -11
- data/lib/rubocop/cop/layout/initial_indentation.rb +6 -7
- data/lib/rubocop/cop/layout/leading_comment_space.rb +11 -9
- data/lib/rubocop/cop/layout/leading_empty_lines.rb +6 -11
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +10 -14
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +21 -19
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +5 -9
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +41 -22
- data/lib/rubocop/cop/layout/space_after_colon.rb +11 -7
- data/lib/rubocop/cop/layout/space_after_comma.rb +2 -5
- data/lib/rubocop/cop/layout/space_after_method_name.rb +5 -6
- data/lib/rubocop/cop/layout/space_after_not.rb +9 -11
- data/lib/rubocop/cop/layout/space_after_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +17 -21
- data/lib/rubocop/cop/layout/space_around_keyword.rb +17 -18
- data/lib/rubocop/cop/layout/space_around_operators.rb +17 -16
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +23 -22
- data/lib/rubocop/cop/layout/space_before_comma.rb +3 -5
- data/lib/rubocop/cop/layout/space_before_comment.rb +10 -7
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +7 -7
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +9 -17
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +20 -23
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +3 -8
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +13 -16
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +19 -37
- data/lib/rubocop/cop/layout/space_inside_parens.rb +9 -14
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +8 -17
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +16 -24
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +12 -13
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +10 -15
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +11 -11
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +2 -0
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +2 -0
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +15 -1
- data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -2
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
- data/lib/rubocop/cop/lint/boolean_symbol.rb +3 -0
- data/lib/rubocop/cop/lint/constant_definition_in_block.rb +74 -0
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +2 -3
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +2 -4
- data/lib/rubocop/cop/lint/duplicate_require.rb +46 -0
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +2 -15
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -0
- data/lib/rubocop/cop/lint/empty_file.rb +50 -0
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +2 -0
- data/lib/rubocop/cop/lint/float_comparison.rb +2 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +2 -2
- data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +37 -0
- data/lib/rubocop/cop/lint/identity_comparison.rb +51 -0
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +2 -5
- data/lib/rubocop/cop/lint/inherit_exception.rb +2 -2
- data/lib/rubocop/cop/lint/missing_super.rb +2 -2
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +3 -35
- data/lib/rubocop/cop/lint/multiple_comparison.rb +3 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +1 -0
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +9 -20
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -1
- data/lib/rubocop/cop/lint/percent_string_array.rb +8 -12
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -0
- data/lib/rubocop/cop/lint/rand_one.rb +2 -1
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +22 -12
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +14 -4
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +1 -0
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +45 -0
- data/lib/rubocop/cop/lint/rescue_type.rb +0 -1
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +3 -1
- data/lib/rubocop/cop/lint/shadowed_exception.rb +6 -6
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +4 -4
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -0
- data/lib/rubocop/cop/lint/to_json.rb +16 -5
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +57 -0
- data/lib/rubocop/cop/lint/unreachable_loop.rb +3 -6
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +3 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +2 -1
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +3 -9
- data/lib/rubocop/cop/lint/useless_method_definition.rb +70 -0
- data/lib/rubocop/cop/lint/useless_times.rb +106 -0
- data/lib/rubocop/cop/metrics/block_length.rb +3 -1
- data/lib/rubocop/cop/metrics/class_length.rb +8 -6
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +27 -16
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +1 -0
- data/lib/rubocop/cop/mixin/alignment.rb +3 -0
- data/lib/rubocop/cop/mixin/allowed_methods.rb +2 -0
- data/lib/rubocop/cop/mixin/annotation_comment.rb +5 -0
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +16 -7
- data/lib/rubocop/cop/mixin/comments_help.rb +48 -0
- data/lib/rubocop/cop/mixin/configurable_naming.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_numbering.rb +3 -3
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +8 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +3 -1
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +12 -1
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +3 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +27 -2
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +3 -1
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +12 -10
- data/lib/rubocop/cop/mixin/negative_conditional.rb +2 -2
- data/lib/rubocop/cop/mixin/percent_array.rb +14 -3
- data/lib/rubocop/cop/mixin/rescue_node.rb +11 -1
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/statement_modifier.rb +9 -3
- data/lib/rubocop/cop/mixin/surrounding_space.rb +8 -4
- data/lib/rubocop/cop/mixin/trailing_comma.rb +7 -7
- data/lib/rubocop/cop/mixin/visibility_help.rb +4 -16
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/file_name.rb +1 -1
- data/lib/rubocop/cop/offense.rb +16 -2
- data/lib/rubocop/cop/security/eval.rb +1 -0
- data/lib/rubocop/cop/security/json_load.rb +1 -0
- data/lib/rubocop/cop/security/marshal_load.rb +1 -0
- data/lib/rubocop/cop/security/open.rb +1 -0
- data/lib/rubocop/cop/security/yaml_load.rb +1 -0
- data/lib/rubocop/cop/severity.rb +0 -8
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +7 -11
- data/lib/rubocop/cop/style/accessor_grouping.rb +3 -0
- data/lib/rubocop/cop/style/alias.rb +2 -0
- data/lib/rubocop/cop/style/array_coercion.rb +4 -0
- data/lib/rubocop/cop/style/array_join.rb +1 -0
- data/lib/rubocop/cop/style/attr.rb +1 -0
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -0
- data/lib/rubocop/cop/style/case_equality.rb +11 -3
- data/lib/rubocop/cop/style/case_like_if.rb +40 -8
- data/lib/rubocop/cop/style/class_and_module_children.rb +2 -0
- data/lib/rubocop/cop/style/class_check.rb +6 -9
- data/lib/rubocop/cop/style/class_equality_comparison.rb +49 -0
- data/lib/rubocop/cop/style/class_methods_definitions.rb +157 -0
- data/lib/rubocop/cop/style/class_vars.rb +1 -2
- data/lib/rubocop/cop/style/combinable_loops.rb +91 -0
- data/lib/rubocop/cop/style/comment_annotation.rb +6 -0
- data/lib/rubocop/cop/style/commented_keyword.rb +7 -8
- data/lib/rubocop/cop/style/conditional_assignment.rb +49 -60
- data/lib/rubocop/cop/style/date_time.rb +12 -1
- data/lib/rubocop/cop/style/dir.rb +1 -0
- data/lib/rubocop/cop/style/double_negation.rb +1 -0
- data/lib/rubocop/cop/style/empty_block_parameter.rb +9 -10
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +9 -10
- data/lib/rubocop/cop/style/empty_literal.rb +3 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +1 -3
- data/lib/rubocop/cop/style/even_odd.rb +1 -0
- data/lib/rubocop/cop/style/expand_path_arguments.rb +2 -2
- data/lib/rubocop/cop/style/explicit_block_argument.rb +7 -3
- data/lib/rubocop/cop/style/float_division.rb +2 -0
- data/lib/rubocop/cop/style/for.rb +0 -4
- data/lib/rubocop/cop/style/format_string.rb +1 -4
- data/lib/rubocop/cop/style/format_string_token.rb +1 -1
- data/lib/rubocop/cop/style/guard_clause.rb +1 -0
- data/lib/rubocop/cop/style/hash_as_last_array_item.rb +24 -5
- data/lib/rubocop/cop/style/hash_syntax.rb +6 -5
- data/lib/rubocop/cop/style/hash_transform_keys.rb +16 -9
- data/lib/rubocop/cop/style/hash_transform_values.rb +16 -9
- data/lib/rubocop/cop/style/if_unless_modifier.rb +2 -6
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -0
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +53 -0
- data/lib/rubocop/cop/style/lambda_call.rb +3 -1
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +10 -1
- data/lib/rubocop/cop/style/method_def_parentheses.rb +0 -4
- data/lib/rubocop/cop/style/mixin_usage.rb +8 -27
- data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -2
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +14 -1
- data/lib/rubocop/cop/style/multiline_when_then.rb +3 -2
- data/lib/rubocop/cop/style/negated_if.rb +6 -6
- data/lib/rubocop/cop/style/negated_unless.rb +6 -6
- data/lib/rubocop/cop/style/negated_while.rb +7 -15
- data/lib/rubocop/cop/style/nested_modifier.rb +10 -13
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +11 -11
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +16 -16
- data/lib/rubocop/cop/style/next.rb +10 -14
- data/lib/rubocop/cop/style/nil_comparison.rb +13 -11
- data/lib/rubocop/cop/style/non_nil_check.rb +34 -26
- data/lib/rubocop/cop/style/not.rb +20 -26
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +4 -9
- data/lib/rubocop/cop/style/numeric_predicate.rb +5 -14
- data/lib/rubocop/cop/style/one_line_conditional.rb +73 -23
- data/lib/rubocop/cop/style/option_hash.rb +1 -1
- data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
- data/lib/rubocop/cop/style/optional_boolean_parameter.rb +12 -1
- data/lib/rubocop/cop/style/or_assignment.rb +13 -10
- data/lib/rubocop/cop/style/parallel_assignment.rb +14 -14
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +6 -6
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +13 -19
- data/lib/rubocop/cop/style/percent_q_literals.rb +8 -10
- data/lib/rubocop/cop/style/perl_backrefs.rb +8 -10
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +11 -14
- data/lib/rubocop/cop/style/proc.rb +6 -6
- data/lib/rubocop/cop/style/raise_args.rb +12 -24
- data/lib/rubocop/cop/style/random_with_offset.rb +19 -19
- data/lib/rubocop/cop/style/redundant_assignment.rb +8 -18
- data/lib/rubocop/cop/style/redundant_begin.rb +28 -12
- data/lib/rubocop/cop/style/redundant_capital_w.rb +6 -9
- data/lib/rubocop/cop/style/redundant_condition.rb +10 -7
- data/lib/rubocop/cop/style/redundant_conditional.rb +4 -5
- data/lib/rubocop/cop/style/redundant_exception.rb +1 -3
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -12
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +9 -8
- data/lib/rubocop/cop/style/redundant_freeze.rb +5 -7
- data/lib/rubocop/cop/style/redundant_interpolation.rb +31 -25
- data/lib/rubocop/cop/style/redundant_parentheses.rb +21 -15
- data/lib/rubocop/cop/style/redundant_percent_q.rb +9 -11
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +44 -36
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +13 -29
- data/lib/rubocop/cop/style/redundant_return.rb +17 -17
- data/lib/rubocop/cop/style/redundant_self.rb +9 -11
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +116 -0
- data/lib/rubocop/cop/style/redundant_sort.rb +12 -29
- data/lib/rubocop/cop/style/redundant_sort_by.rb +5 -9
- data/lib/rubocop/cop/style/regexp_literal.rb +10 -21
- data/lib/rubocop/cop/style/rescue_modifier.rb +29 -9
- data/lib/rubocop/cop/style/rescue_standard_error.rb +20 -16
- data/lib/rubocop/cop/style/return_nil.rb +5 -5
- data/lib/rubocop/cop/style/safe_navigation.rb +18 -12
- data/lib/rubocop/cop/style/sample.rb +12 -14
- data/lib/rubocop/cop/style/self_assignment.rb +26 -22
- data/lib/rubocop/cop/style/semicolon.rb +6 -9
- data/lib/rubocop/cop/style/send.rb +4 -5
- data/lib/rubocop/cop/style/signal_exception.rb +23 -19
- data/lib/rubocop/cop/style/single_argument_dig.rb +1 -0
- data/lib/rubocop/cop/style/single_line_block_params.rb +4 -2
- data/lib/rubocop/cop/style/single_line_methods.rb +17 -16
- data/lib/rubocop/cop/style/slicing_with_range.rb +6 -8
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +66 -0
- data/lib/rubocop/cop/style/special_global_vars.rb +10 -15
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +17 -21
- data/lib/rubocop/cop/style/stderr_puts.rb +5 -6
- data/lib/rubocop/cop/style/string_concatenation.rb +17 -3
- data/lib/rubocop/cop/style/string_hash_keys.rb +6 -7
- data/lib/rubocop/cop/style/string_methods.rb +7 -17
- data/lib/rubocop/cop/style/strip.rb +9 -14
- data/lib/rubocop/cop/style/struct_inheritance.rb +3 -6
- data/lib/rubocop/cop/style/symbol_array.rb +5 -16
- data/lib/rubocop/cop/style/symbol_literal.rb +4 -6
- data/lib/rubocop/cop/style/symbol_proc.rb +14 -18
- data/lib/rubocop/cop/style/ternary_parentheses.rb +22 -22
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +3 -6
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +4 -7
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +3 -6
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +11 -9
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +8 -17
- data/lib/rubocop/cop/style/trivial_accessors.rb +26 -30
- data/lib/rubocop/cop/style/unless_else.rb +5 -8
- data/lib/rubocop/cop/style/unpack_first.rb +5 -8
- data/lib/rubocop/cop/style/variable_interpolation.rb +7 -10
- data/lib/rubocop/cop/style/when_then.rb +4 -6
- data/lib/rubocop/cop/style/while_until_do.rb +6 -16
- data/lib/rubocop/cop/style/while_until_modifier.rb +6 -20
- data/lib/rubocop/cop/style/word_array.rb +5 -23
- data/lib/rubocop/cop/style/yoda_condition.rb +4 -15
- data/lib/rubocop/cop/style/zero_length_predicate.rb +12 -18
- data/lib/rubocop/cop/team.rb +1 -0
- data/lib/rubocop/cop/util.rb +1 -2
- data/lib/rubocop/cop/utils/format_string.rb +3 -5
- data/lib/rubocop/cop/variable_force.rb +2 -0
- data/lib/rubocop/cop/variable_force/branch.rb +0 -4
- data/lib/rubocop/cops_documentation_generator.rb +4 -2
- data/lib/rubocop/core_ext/string.rb +2 -2
- data/lib/rubocop/directive_comment.rb +32 -0
- data/lib/rubocop/ext/regexp_node.rb +62 -0
- data/lib/rubocop/file_finder.rb +1 -0
- data/lib/rubocop/formatter/auto_gen_config_formatter.rb +2 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +12 -5
- data/lib/rubocop/formatter/html_formatter.rb +2 -0
- data/lib/rubocop/formatter/progress_formatter.rb +2 -1
- data/lib/rubocop/formatter/quiet_formatter.rb +1 -1
- data/lib/rubocop/formatter/simple_text_formatter.rb +36 -6
- data/lib/rubocop/name_similarity.rb +1 -0
- data/lib/rubocop/options.rb +40 -17
- data/lib/rubocop/remote_config.rb +1 -0
- data/lib/rubocop/result_cache.rb +39 -15
- data/lib/rubocop/rspec/cop_helper.rb +5 -2
- data/lib/rubocop/rspec/expect_offense.rb +14 -9
- data/lib/rubocop/rspec/shared_contexts.rb +12 -0
- data/lib/rubocop/runner.rb +38 -18
- data/lib/rubocop/string_interpreter.rb +3 -0
- data/lib/rubocop/target_finder.rb +28 -26
- data/lib/rubocop/target_ruby.rb +7 -1
- data/lib/rubocop/version.rb +7 -1
- data/lib/rubocop/yaml_duplication_checker.rb +1 -0
- metadata +31 -17
- data/lib/rubocop/cop/mixin/regexp_literal_help.rb +0 -43
- data/lib/rubocop/cop/tokens_util.rb +0 -84
@@ -23,9 +23,12 @@ module RuboCop
|
|
23
23
|
# # good
|
24
24
|
# rand(1..6)
|
25
25
|
# rand(1...7)
|
26
|
-
class RandomWithOffset <
|
26
|
+
class RandomWithOffset < Base
|
27
|
+
extend AutoCorrector
|
28
|
+
|
27
29
|
MSG = 'Prefer ranges when generating random numbers instead of ' \
|
28
30
|
'integers with offsets.'
|
31
|
+
RESTRICT_ON_SEND = %i[+ - succ pred next].freeze
|
29
32
|
|
30
33
|
def_node_matcher :integer_op_rand?, <<~PATTERN
|
31
34
|
(send
|
@@ -33,7 +36,7 @@ module RuboCop
|
|
33
36
|
(send
|
34
37
|
{nil? (const {nil? cbase} :Random) (const {nil? cbase} :Kernel)}
|
35
38
|
:rand
|
36
|
-
{int irange erange}))
|
39
|
+
{int (irange int int) (erange int int)}))
|
37
40
|
PATTERN
|
38
41
|
|
39
42
|
def_node_matcher :rand_op_integer?, <<~PATTERN
|
@@ -41,7 +44,7 @@ module RuboCop
|
|
41
44
|
(send
|
42
45
|
{nil? (const {nil? cbase} :Random) (const {nil? cbase} :Kernel)}
|
43
46
|
:rand
|
44
|
-
{int irange erange})
|
47
|
+
{int (irange int int) (erange int int)})
|
45
48
|
{:+ :-}
|
46
49
|
int)
|
47
50
|
PATTERN
|
@@ -51,7 +54,7 @@ module RuboCop
|
|
51
54
|
(send
|
52
55
|
{nil? (const {nil? cbase} :Random) (const {nil? cbase} :Kernel)}
|
53
56
|
:rand
|
54
|
-
{int irange erange})
|
57
|
+
{int (irange int int) (erange int int)})
|
55
58
|
{:succ :pred :next})
|
56
59
|
PATTERN
|
57
60
|
|
@@ -61,21 +64,8 @@ module RuboCop
|
|
61
64
|
rand_op_integer?(node) ||
|
62
65
|
rand_modified?(node)
|
63
66
|
|
64
|
-
add_offense(node)
|
65
|
-
|
66
|
-
|
67
|
-
def autocorrect(node)
|
68
|
-
lambda do |corrector|
|
69
|
-
if integer_op_rand?(node)
|
70
|
-
corrector.replace(node,
|
71
|
-
corrected_integer_op_rand(node))
|
72
|
-
elsif rand_op_integer?(node)
|
73
|
-
corrector.replace(node,
|
74
|
-
corrected_rand_op_integer(node))
|
75
|
-
elsif rand_modified?(node)
|
76
|
-
corrector.replace(node,
|
77
|
-
corrected_rand_modified(node))
|
78
|
-
end
|
67
|
+
add_offense(node) do |corrector|
|
68
|
+
autocorrect(corrector, node)
|
79
69
|
end
|
80
70
|
end
|
81
71
|
|
@@ -86,6 +76,16 @@ module RuboCop
|
|
86
76
|
(send _ _ (send $_ _ $_))}
|
87
77
|
PATTERN
|
88
78
|
|
79
|
+
def autocorrect(corrector, node)
|
80
|
+
if integer_op_rand?(node)
|
81
|
+
corrector.replace(node, corrected_integer_op_rand(node))
|
82
|
+
elsif rand_op_integer?(node)
|
83
|
+
corrector.replace(node, corrected_rand_op_integer(node))
|
84
|
+
elsif rand_modified?(node)
|
85
|
+
corrector.replace(node, corrected_rand_modified(node))
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
89
|
def corrected_integer_op_rand(node)
|
90
90
|
random_call(node) do |prefix_node, random_node|
|
91
91
|
prefix = prefix_from_prefix_node(prefix_node)
|
@@ -37,7 +37,9 @@ module RuboCop
|
|
37
37
|
# end
|
38
38
|
# end
|
39
39
|
#
|
40
|
-
class RedundantAssignment <
|
40
|
+
class RedundantAssignment < Base
|
41
|
+
extend AutoCorrector
|
42
|
+
|
41
43
|
MSG = 'Redundant assignment before returning detected.'
|
42
44
|
|
43
45
|
def_node_matcher :redundant_assignment?, <<~PATTERN
|
@@ -49,14 +51,6 @@ module RuboCop
|
|
49
51
|
end
|
50
52
|
alias on_defs on_def
|
51
53
|
|
52
|
-
def autocorrect(node)
|
53
|
-
lambda do |corrector|
|
54
|
-
expression = node.children[1]
|
55
|
-
corrector.replace(node, expression.source)
|
56
|
-
corrector.remove(right_sibling_of(node))
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
54
|
private
|
61
55
|
|
62
56
|
def check_branch(node)
|
@@ -97,20 +91,16 @@ module RuboCop
|
|
97
91
|
|
98
92
|
def check_begin_node(node)
|
99
93
|
if (assignment = redundant_assignment?(node))
|
100
|
-
add_offense(assignment)
|
94
|
+
add_offense(assignment) do |corrector|
|
95
|
+
expression = assignment.children[1]
|
96
|
+
corrector.replace(assignment, expression.source)
|
97
|
+
corrector.remove(assignment.right_sibling)
|
98
|
+
end
|
101
99
|
else
|
102
100
|
last_expr = node.children.last
|
103
101
|
check_branch(last_expr)
|
104
102
|
end
|
105
103
|
end
|
106
|
-
|
107
|
-
def right_sibling_of(node)
|
108
|
-
siblings_of(node)[node.sibling_index + 1]
|
109
|
-
end
|
110
|
-
|
111
|
-
def siblings_of(node)
|
112
|
-
node.parent.children
|
113
|
-
end
|
114
104
|
end
|
115
105
|
end
|
116
106
|
end
|
@@ -28,6 +28,14 @@ module RuboCop
|
|
28
28
|
# end
|
29
29
|
#
|
30
30
|
# # bad
|
31
|
+
# begin
|
32
|
+
# do_something
|
33
|
+
# end
|
34
|
+
#
|
35
|
+
# # good
|
36
|
+
# do_something
|
37
|
+
#
|
38
|
+
# # bad
|
31
39
|
# # When using Ruby 2.5 or later.
|
32
40
|
# do_something do
|
33
41
|
# begin
|
@@ -54,11 +62,15 @@ module RuboCop
|
|
54
62
|
# baz
|
55
63
|
# end
|
56
64
|
# end
|
57
|
-
class RedundantBegin <
|
65
|
+
class RedundantBegin < Base
|
66
|
+
extend AutoCorrector
|
67
|
+
|
58
68
|
MSG = 'Redundant `begin` block detected.'
|
59
69
|
|
60
70
|
def on_def(node)
|
61
|
-
|
71
|
+
return unless node.body&.kwbegin_type?
|
72
|
+
|
73
|
+
register_offense(node.body)
|
62
74
|
end
|
63
75
|
alias on_defs on_def
|
64
76
|
|
@@ -67,23 +79,27 @@ module RuboCop
|
|
67
79
|
|
68
80
|
return if node.send_node.lambda_literal?
|
69
81
|
return if node.braces?
|
82
|
+
return unless node.body&.kwbegin_type?
|
70
83
|
|
71
|
-
|
84
|
+
register_offense(node.body)
|
72
85
|
end
|
73
86
|
|
74
|
-
def
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
87
|
+
def on_kwbegin(node)
|
88
|
+
return if node.parent&.assignment?
|
89
|
+
|
90
|
+
first_child = node.children.first
|
91
|
+
return if first_child.rescue_type? || first_child.ensure_type?
|
92
|
+
|
93
|
+
register_offense(node)
|
79
94
|
end
|
80
95
|
|
81
96
|
private
|
82
97
|
|
83
|
-
def
|
84
|
-
|
85
|
-
|
86
|
-
|
98
|
+
def register_offense(node)
|
99
|
+
add_offense(node.loc.begin) do |corrector|
|
100
|
+
corrector.remove(node.loc.begin)
|
101
|
+
corrector.remove(node.loc.end)
|
102
|
+
end
|
87
103
|
end
|
88
104
|
end
|
89
105
|
end
|
@@ -14,8 +14,9 @@ module RuboCop
|
|
14
14
|
# %w/swim run bike/
|
15
15
|
# %w[shirt pants shoes]
|
16
16
|
# %W(apple #{fruit} grape)
|
17
|
-
class RedundantCapitalW <
|
17
|
+
class RedundantCapitalW < Base
|
18
18
|
include PercentLiteral
|
19
|
+
extend AutoCorrector
|
19
20
|
|
20
21
|
MSG = 'Do not use `%W` unless interpolation is needed. ' \
|
21
22
|
'If not, use `%w`.'
|
@@ -24,19 +25,15 @@ module RuboCop
|
|
24
25
|
process(node, '%W')
|
25
26
|
end
|
26
27
|
|
27
|
-
def autocorrect(node)
|
28
|
-
lambda do |corrector|
|
29
|
-
src = node.loc.begin.source
|
30
|
-
corrector.replace(node.loc.begin, src.tr('W', 'w'))
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
28
|
private
|
35
29
|
|
36
30
|
def on_percent_literal(node)
|
37
31
|
return if requires_interpolation?(node)
|
38
32
|
|
39
|
-
add_offense(node)
|
33
|
+
add_offense(node) do |corrector|
|
34
|
+
src = node.loc.begin.source
|
35
|
+
corrector.replace(node.loc.begin, src.tr('W', 'w'))
|
36
|
+
end
|
40
37
|
end
|
41
38
|
|
42
39
|
def requires_interpolation?(node)
|
@@ -30,8 +30,9 @@ module RuboCop
|
|
30
30
|
# c
|
31
31
|
# end
|
32
32
|
#
|
33
|
-
class RedundantCondition <
|
33
|
+
class RedundantCondition < Base
|
34
34
|
include RangeHelp
|
35
|
+
extend AutoCorrector
|
35
36
|
|
36
37
|
MSG = 'Use double pipes `||` instead.'
|
37
38
|
REDUNDANT_CONDITION = 'This condition is not needed.'
|
@@ -40,11 +41,9 @@ module RuboCop
|
|
40
41
|
return if node.elsif_conditional?
|
41
42
|
return unless offense?(node)
|
42
43
|
|
43
|
-
|
44
|
-
end
|
44
|
+
message = message(node)
|
45
45
|
|
46
|
-
|
47
|
-
lambda do |corrector|
|
46
|
+
add_offense(range_of_offense(node), message: message) do |corrector|
|
48
47
|
if node.ternary?
|
49
48
|
correct_ternary(corrector, node)
|
50
49
|
elsif node.modifier_form? || !node.else_branch
|
@@ -68,7 +67,7 @@ module RuboCop
|
|
68
67
|
end
|
69
68
|
|
70
69
|
def range_of_offense(node)
|
71
|
-
return
|
70
|
+
return node.loc.expression unless node.ternary?
|
72
71
|
|
73
72
|
range_between(node.loc.question.begin_pos, node.loc.colon.end_pos)
|
74
73
|
end
|
@@ -76,7 +75,7 @@ module RuboCop
|
|
76
75
|
def offense?(node)
|
77
76
|
condition, if_branch, else_branch = *node
|
78
77
|
|
79
|
-
return false if use_if_branch?(else_branch)
|
78
|
+
return false if use_if_branch?(else_branch) || use_hash_key_assignment?(else_branch)
|
80
79
|
|
81
80
|
condition == if_branch && !node.elsif? && (
|
82
81
|
node.ternary? ||
|
@@ -89,6 +88,10 @@ module RuboCop
|
|
89
88
|
else_branch&.if_type?
|
90
89
|
end
|
91
90
|
|
91
|
+
def use_hash_key_assignment?(else_branch)
|
92
|
+
else_branch&.send_type? && else_branch&.method?(:[]=)
|
93
|
+
end
|
94
|
+
|
92
95
|
def else_source(else_branch)
|
93
96
|
if require_parentheses?(else_branch)
|
94
97
|
"(#{else_branch.source})"
|
@@ -24,8 +24,9 @@ module RuboCop
|
|
24
24
|
#
|
25
25
|
# # good
|
26
26
|
# x != y
|
27
|
-
class RedundantConditional <
|
27
|
+
class RedundantConditional < Base
|
28
28
|
include Alignment
|
29
|
+
extend AutoCorrector
|
29
30
|
|
30
31
|
operators = RuboCop::AST::Node::COMPARISON_OPERATORS.to_a
|
31
32
|
COMPARISON_OPERATOR_MATCHER = "{:#{operators.join(' :')}}"
|
@@ -36,11 +37,9 @@ module RuboCop
|
|
36
37
|
def on_if(node)
|
37
38
|
return unless offense?(node)
|
38
39
|
|
39
|
-
|
40
|
-
end
|
40
|
+
message = message(node)
|
41
41
|
|
42
|
-
|
43
|
-
lambda do |corrector|
|
42
|
+
add_offense(node, message: message) do |corrector|
|
44
43
|
corrector.replace(node, replacement_condition(node))
|
45
44
|
end
|
46
45
|
end
|
@@ -23,13 +23,11 @@ module RuboCop
|
|
23
23
|
MSG_2 = 'Redundant `RuntimeError.new` call can be replaced with ' \
|
24
24
|
'just the message.'
|
25
25
|
|
26
|
-
|
26
|
+
RESTRICT_ON_SEND = %i[raise fail].freeze
|
27
27
|
|
28
28
|
# Switch `raise RuntimeError, 'message'` to `raise 'message'`, and
|
29
29
|
# `raise RuntimeError.new('message')` to `raise 'message'`.
|
30
30
|
def on_send(node)
|
31
|
-
return unless RAISE_METHODS.include?(node.method_name)
|
32
|
-
|
33
31
|
fix_exploded(node) || fix_compact(node)
|
34
32
|
end
|
35
33
|
|
@@ -31,9 +31,10 @@ module RuboCop
|
|
31
31
|
# # good
|
32
32
|
# ENV.fetch(:key, VALUE)
|
33
33
|
#
|
34
|
-
class RedundantFetchBlock <
|
34
|
+
class RedundantFetchBlock < Base
|
35
35
|
include FrozenStringLiteral
|
36
36
|
include RangeHelp
|
37
|
+
extend AutoCorrector
|
37
38
|
|
38
39
|
MSG = 'Use `%<good>s` instead of `%<bad>s`.'
|
39
40
|
|
@@ -52,17 +53,7 @@ module RuboCop
|
|
52
53
|
good = build_good_method(send, body)
|
53
54
|
bad = build_bad_method(send, body)
|
54
55
|
|
55
|
-
add_offense(
|
56
|
-
node,
|
57
|
-
location: range,
|
58
|
-
message: format(MSG, good: good, bad: bad)
|
59
|
-
)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def autocorrect(node)
|
64
|
-
redundant_fetch_block_candidate?(node) do |send, body|
|
65
|
-
lambda do |corrector|
|
56
|
+
add_offense(range, message: format(MSG, good: good, bad: bad)) do |corrector|
|
66
57
|
receiver, _, key = send.children
|
67
58
|
default_value = body ? body.source : 'nil'
|
68
59
|
|
@@ -24,8 +24,11 @@ module RuboCop
|
|
24
24
|
# require_relative '../foo'
|
25
25
|
# require_relative '../foo.so'
|
26
26
|
#
|
27
|
-
class RedundantFileExtensionInRequire <
|
27
|
+
class RedundantFileExtensionInRequire < Base
|
28
|
+
extend AutoCorrector
|
29
|
+
|
28
30
|
MSG = 'Redundant `.rb` file extension detected.'
|
31
|
+
RESTRICT_ON_SEND = %i[require require_relative].freeze
|
29
32
|
|
30
33
|
def_node_matcher :require_call?, <<~PATTERN
|
31
34
|
(send nil? {:require :require_relative} $str_type?)
|
@@ -33,15 +36,13 @@ module RuboCop
|
|
33
36
|
|
34
37
|
def on_send(node)
|
35
38
|
require_call?(node) do |name_node|
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
39
|
+
return unless name_node.value.end_with?('.rb')
|
39
40
|
|
40
|
-
|
41
|
-
|
41
|
+
add_offense(name_node) do |corrector|
|
42
|
+
correction = name_node.value.sub(/\.rb\z/, '')
|
42
43
|
|
43
|
-
|
44
|
-
|
44
|
+
corrector.replace(name_node, "'#{correction}'")
|
45
|
+
end
|
45
46
|
end
|
46
47
|
end
|
47
48
|
end
|
@@ -11,22 +11,20 @@ module RuboCop
|
|
11
11
|
#
|
12
12
|
# # good
|
13
13
|
# CONST = 1
|
14
|
-
class RedundantFreeze <
|
14
|
+
class RedundantFreeze < Base
|
15
|
+
extend AutoCorrector
|
15
16
|
include FrozenStringLiteral
|
16
17
|
|
17
18
|
MSG = 'Do not freeze immutable objects, as freezing them has no ' \
|
18
19
|
'effect.'
|
20
|
+
RESTRICT_ON_SEND = %i[freeze].freeze
|
19
21
|
|
20
22
|
def on_send(node)
|
21
|
-
return unless node.receiver &&
|
23
|
+
return unless node.receiver &&
|
22
24
|
(immutable_literal?(node.receiver) ||
|
23
25
|
operation_produces_immutable_object?(node.receiver))
|
24
26
|
|
25
|
-
add_offense(node)
|
26
|
-
end
|
27
|
-
|
28
|
-
def autocorrect(node)
|
29
|
-
lambda do |corrector|
|
27
|
+
add_offense(node) do |corrector|
|
30
28
|
corrector.remove(node.loc.dot)
|
31
29
|
corrector.remove(node.loc.selector)
|
32
30
|
end
|
@@ -15,8 +15,9 @@ module RuboCop
|
|
15
15
|
#
|
16
16
|
# # good if @var is already a String
|
17
17
|
# @var
|
18
|
-
class RedundantInterpolation <
|
18
|
+
class RedundantInterpolation < Base
|
19
19
|
include PercentLiteral
|
20
|
+
extend AutoCorrector
|
20
21
|
|
21
22
|
MSG = 'Prefer `to_s` over string interpolation.'
|
22
23
|
|
@@ -25,18 +26,18 @@ module RuboCop
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def on_dstr(node)
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
29
|
+
return unless single_interpolation?(node)
|
30
|
+
|
31
|
+
add_offense(node) do |corrector|
|
32
|
+
embedded_node = node.children.first
|
33
|
+
|
34
|
+
if variable_interpolation?(embedded_node)
|
35
|
+
autocorrect_variable_interpolation(corrector, embedded_node, node)
|
36
|
+
elsif single_variable_interpolation?(embedded_node)
|
37
|
+
autocorrect_single_variable_interpolation(corrector, embedded_node, node)
|
38
|
+
else
|
39
|
+
autocorrect_other(corrector, embedded_node, node)
|
40
|
+
end
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
@@ -50,7 +51,12 @@ module RuboCop
|
|
50
51
|
end
|
51
52
|
|
52
53
|
def single_variable_interpolation?(node)
|
53
|
-
node.children.one?
|
54
|
+
return false unless node.children.one?
|
55
|
+
|
56
|
+
first_child = node.children.first
|
57
|
+
|
58
|
+
variable_interpolation?(first_child) ||
|
59
|
+
first_child.send_type? && !first_child.operator_method?
|
54
60
|
end
|
55
61
|
|
56
62
|
def interpolation?(node)
|
@@ -70,27 +76,27 @@ module RuboCop
|
|
70
76
|
percent_literal?(node.parent)
|
71
77
|
end
|
72
78
|
|
73
|
-
def autocorrect_variable_interpolation(embedded_node, node)
|
79
|
+
def autocorrect_variable_interpolation(corrector, embedded_node, node)
|
74
80
|
replacement = "#{embedded_node.loc.expression.source}.to_s"
|
75
|
-
|
81
|
+
|
82
|
+
corrector.replace(node, replacement)
|
76
83
|
end
|
77
84
|
|
78
|
-
def autocorrect_single_variable_interpolation(embedded_node, node)
|
85
|
+
def autocorrect_single_variable_interpolation(corrector, embedded_node, node)
|
79
86
|
variable_loc = embedded_node.children.first.loc
|
80
87
|
replacement = "#{variable_loc.expression.source}.to_s"
|
81
|
-
|
88
|
+
|
89
|
+
corrector.replace(node, replacement)
|
82
90
|
end
|
83
91
|
|
84
|
-
def autocorrect_other(embedded_node, node)
|
92
|
+
def autocorrect_other(corrector, embedded_node, node)
|
85
93
|
loc = node.loc
|
86
94
|
embedded_loc = embedded_node.loc
|
87
95
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
corrector.replace(embedded_loc.end, ').to_s')
|
93
|
-
end
|
96
|
+
corrector.replace(loc.begin, '')
|
97
|
+
corrector.replace(loc.end, '')
|
98
|
+
corrector.replace(embedded_loc.begin, '(')
|
99
|
+
corrector.replace(embedded_loc.end, ').to_s')
|
94
100
|
end
|
95
101
|
end
|
96
102
|
end
|