rubocop 1.12.1 → 1.13.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 +3 -2
- data/config/default.yml +10 -0
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +1 -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 +42 -8
- 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 +6 -4
- 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 +2 -4
- 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 +1 -3
- 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 +2 -5
- 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 +2 -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 +3 -6
- 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 +1 -2
- 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 +4 -10
- data/lib/rubocop/cop/layout/redundant_line_break.rb +125 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
- 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 +2 -4
- 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_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 +1 -2
- 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 +8 -20
- 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 +2 -4
- 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 +2 -5
- data/lib/rubocop/cop/lint/unused_block_argument.rb +4 -8
- 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 +4 -11
- 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/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 +3 -9
- 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 +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 -17
- 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/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 +1 -3
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
- data/lib/rubocop/cop/style/alias.rb +5 -12
- 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 +3 -6
- 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 +2 -8
- 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 +4 -8
- 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 -8
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +28 -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 +4 -9
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +41 -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 +1 -1
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +7 -13
- 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 +1 -3
- 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_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/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 +4 -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 +15 -4
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +1 -2
- 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 +2 -5
- 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/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 +2 -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 +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 +4 -10
- 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 +1 -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/file_finder.rb +1 -3
- 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 +3 -9
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/options.rb +27 -41
- 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 +4 -15
- data/lib/rubocop/runner.rb +7 -14
- data/lib/rubocop/target_finder.rb +11 -16
- data/lib/rubocop/target_ruby.rb +4 -8
- data/lib/rubocop/version.rb +1 -1
- metadata +5 -5
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -14,8 +14,7 @@ module RuboCop
|
|
14
14
|
# Foo.__send__(:bar)
|
15
15
|
# quuz.public_send(:fred)
|
16
16
|
class Send < Base
|
17
|
-
MSG = 'Prefer `Object#__send__` or `Object#public_send` to '
|
18
|
-
'`send`.'
|
17
|
+
MSG = 'Prefer `Object#__send__` or `Object#public_send` to `send`.'
|
19
18
|
RESTRICT_ON_SEND = %i[send].freeze
|
20
19
|
|
21
20
|
def on_send(node)
|
@@ -109,8 +109,7 @@ module RuboCop
|
|
109
109
|
extend AutoCorrector
|
110
110
|
|
111
111
|
FAIL_MSG = 'Use `fail` instead of `raise` to signal exceptions.'
|
112
|
-
RAISE_MSG = 'Use `raise` instead of `fail` to '
|
113
|
-
'rethrow exceptions.'
|
112
|
+
RAISE_MSG = 'Use `raise` instead of `fail` to rethrow exceptions.'
|
114
113
|
|
115
114
|
RESTRICT_ON_SEND = %i[raise fail].freeze
|
116
115
|
|
@@ -118,8 +117,7 @@ module RuboCop
|
|
118
117
|
def_node_matcher :kernel_call?, '(send (const {nil? cbase} :Kernel) %1 ...)'
|
119
118
|
|
120
119
|
# @!method custom_fail_methods(node)
|
121
|
-
def_node_search :custom_fail_methods,
|
122
|
-
'{(def :fail ...) (defs _ :fail ...)}'
|
120
|
+
def_node_search :custom_fail_methods, '{(def :fail ...) (defs _ :fail ...)}'
|
123
121
|
|
124
122
|
def on_new_investigation
|
125
123
|
ast = processed_source.ast
|
@@ -204,9 +202,7 @@ module RuboCop
|
|
204
202
|
end
|
205
203
|
|
206
204
|
def allow(method_name, node)
|
207
|
-
each_command_or_kernel_call(method_name, node)
|
208
|
-
ignore_node(send_node)
|
209
|
-
end
|
205
|
+
each_command_or_kernel_call(method_name, node) { |send_node| ignore_node(send_node) }
|
210
206
|
end
|
211
207
|
|
212
208
|
def each_command_or_kernel_call(method_name, node)
|
@@ -43,8 +43,7 @@ module RuboCop
|
|
43
43
|
receiver = node.receiver.source
|
44
44
|
argument = expression.source
|
45
45
|
|
46
|
-
message = format(MSG, receiver: receiver, argument: argument,
|
47
|
-
original: node.source)
|
46
|
+
message = format(MSG, receiver: receiver, argument: argument, original: node.source)
|
48
47
|
add_offense(node, message: message) do |corrector|
|
49
48
|
correct_access = "#{receiver}[#{argument}]"
|
50
49
|
corrector.replace(node, correct_access)
|
@@ -81,8 +81,7 @@ module RuboCop
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def eligible_method?(node)
|
84
|
-
node.send_node.receiver &&
|
85
|
-
method_names.include?(node.send_node.method_name)
|
84
|
+
node.send_node.receiver && method_names.include?(node.send_node.method_name)
|
86
85
|
end
|
87
86
|
|
88
87
|
def methods
|
@@ -108,9 +107,7 @@ module RuboCop
|
|
108
107
|
|
109
108
|
# Prepending an underscore to mark an unused parameter is allowed, so
|
110
109
|
# we remove any leading underscores before comparing.
|
111
|
-
actual_args_no_underscores = actual_args.map
|
112
|
-
arg.to_s.sub(/^_+/, '')
|
113
|
-
end
|
110
|
+
actual_args_no_underscores = actual_args.map { |arg| arg.to_s.sub(/^_+/, '') }
|
114
111
|
|
115
112
|
actual_args_no_underscores == target_args(method_name)
|
116
113
|
end
|
@@ -42,9 +42,7 @@ module RuboCop
|
|
42
42
|
return if node.endless?
|
43
43
|
return if allow_empty? && !node.body
|
44
44
|
|
45
|
-
add_offense(node)
|
46
|
-
autocorrect(corrector, node)
|
47
|
-
end
|
45
|
+
add_offense(node) { |corrector| autocorrect(corrector, node) }
|
48
46
|
end
|
49
47
|
alias on_defs on_def
|
50
48
|
|
@@ -93,7 +91,9 @@ module RuboCop
|
|
93
91
|
def correct_to_endless(corrector, node)
|
94
92
|
self_receiver = node.self_receiver? ? 'self.' : ''
|
95
93
|
arguments = node.arguments.any? ? node.arguments.source : '()'
|
96
|
-
|
94
|
+
body_source = method_body_source(node.body)
|
95
|
+
replacement = "def #{self_receiver}#{node.method_name}#{arguments} = #{body_source}"
|
96
|
+
|
97
97
|
corrector.replace(node, replacement)
|
98
98
|
end
|
99
99
|
|
@@ -113,6 +113,17 @@ module RuboCop
|
|
113
113
|
node: node, corrector: corrector
|
114
114
|
)
|
115
115
|
end
|
116
|
+
|
117
|
+
def method_body_source(method_body)
|
118
|
+
if !method_body.send_type? || method_body.arguments.empty? || method_body.parenthesized?
|
119
|
+
method_body.source
|
120
|
+
else
|
121
|
+
arguments_source = method_body.arguments.map(&:source).join(', ')
|
122
|
+
body_source = "#{method_body.method_name}(#{arguments_source})"
|
123
|
+
|
124
|
+
method_body.receiver ? "#{method_body.receiver.source}.#{body_source}" : body_source
|
125
|
+
end
|
126
|
+
end
|
116
127
|
end
|
117
128
|
end
|
118
129
|
end
|
@@ -36,8 +36,7 @@ module RuboCop
|
|
36
36
|
include RangeHelp
|
37
37
|
extend AutoCorrector
|
38
38
|
|
39
|
-
MSG = 'Consider merging nested conditions into '
|
40
|
-
'outer `%<conditional_type>s` conditions.'
|
39
|
+
MSG = 'Consider merging nested conditions into outer `%<conditional_type>s` conditions.'
|
41
40
|
|
42
41
|
def on_if(node)
|
43
42
|
return if node.ternary? || node.else? || node.elsif?
|
@@ -80,25 +80,15 @@ module RuboCop
|
|
80
80
|
:$* => %i[$ARGV ARGV]
|
81
81
|
}
|
82
82
|
|
83
|
-
PERL_VARS =
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
ENGLISH_VARS.flat_map { |_, vs| vs.map { |v| [v, [v]] } }.to_h
|
88
|
-
)
|
89
|
-
PERL_VARS.merge!(
|
90
|
-
PERL_VARS.flat_map { |_, vs| vs.map { |v| [v, [v]] } }.to_h
|
91
|
-
)
|
83
|
+
PERL_VARS = ENGLISH_VARS.flat_map { |k, vs| vs.map { |v| [v, [k]] } }.to_h
|
84
|
+
|
85
|
+
ENGLISH_VARS.merge!(ENGLISH_VARS.flat_map { |_, vs| vs.map { |v| [v, [v]] } }.to_h)
|
86
|
+
PERL_VARS.merge!(PERL_VARS.flat_map { |_, vs| vs.map { |v| [v, [v]] } }.to_h)
|
92
87
|
ENGLISH_VARS.each_value(&:freeze).freeze
|
93
88
|
PERL_VARS.each_value(&:freeze).freeze
|
94
89
|
|
95
90
|
# Anything *not* in this set is provided by the English library.
|
96
|
-
NON_ENGLISH_VARS = Set.new(%i[
|
97
|
-
$LOAD_PATH
|
98
|
-
$LOADED_FEATURES
|
99
|
-
$PROGRAM_NAME
|
100
|
-
ARGV
|
101
|
-
]).freeze
|
91
|
+
NON_ENGLISH_VARS = Set.new(%i[$LOAD_PATH $LOADED_FEATURES $PROGRAM_NAME ARGV]).freeze
|
102
92
|
|
103
93
|
def on_gvar(node)
|
104
94
|
global_var, = *node
|
@@ -120,9 +110,7 @@ module RuboCop
|
|
120
110
|
if style == :use_english_names
|
121
111
|
format_english_message(global_var)
|
122
112
|
else
|
123
|
-
format(MSG_REGULAR,
|
124
|
-
prefer: preferred_names(global_var).first,
|
125
|
-
global: global_var)
|
113
|
+
format(MSG_REGULAR, prefer: preferred_names(global_var).first, global: global_var)
|
126
114
|
end
|
127
115
|
end
|
128
116
|
|
@@ -24,8 +24,7 @@ module RuboCop
|
|
24
24
|
extend AutoCorrector
|
25
25
|
|
26
26
|
MSG_REQUIRE = 'Wrap stabby lambda arguments with parentheses.'
|
27
|
-
MSG_NO_REQUIRE = 'Do not wrap stabby lambda arguments '
|
28
|
-
'with parentheses.'
|
27
|
+
MSG_NO_REQUIRE = 'Do not wrap stabby lambda arguments with parentheses.'
|
29
28
|
def on_send(node)
|
30
29
|
return unless stabby_lambda_with_args?(node)
|
31
30
|
return unless redundant_parentheses?(node) || missing_parentheses?(node)
|
@@ -18,8 +18,7 @@ module RuboCop
|
|
18
18
|
include RangeHelp
|
19
19
|
extend AutoCorrector
|
20
20
|
|
21
|
-
MSG =
|
22
|
-
'Use `warn` instead of `%<bad>s` to allow such output to be disabled.'
|
21
|
+
MSG = 'Use `warn` instead of `%<bad>s` to allow such output to be disabled.'
|
23
22
|
RESTRICT_ON_SEND = %i[puts].freeze
|
24
23
|
|
25
24
|
# @!method stderr_puts?(node)
|
@@ -50,10 +49,7 @@ module RuboCop
|
|
50
49
|
end
|
51
50
|
|
52
51
|
def stderr_puts_range(send)
|
53
|
-
range_between(
|
54
|
-
send.loc.expression.begin_pos,
|
55
|
-
send.loc.selector.end_pos
|
56
|
-
)
|
52
|
+
range_between(send.loc.expression.begin_pos, send.loc.selector.end_pos)
|
57
53
|
end
|
58
54
|
end
|
59
55
|
end
|
@@ -17,6 +17,7 @@ module RuboCop
|
|
17
17
|
# string.chars
|
18
18
|
#
|
19
19
|
class StringChars < Base
|
20
|
+
include RangeHelp
|
20
21
|
extend AutoCorrector
|
21
22
|
|
22
23
|
MSG = 'Use `chars` instead of `%<current>s`.'
|
@@ -26,7 +27,7 @@ module RuboCop
|
|
26
27
|
def on_send(node)
|
27
28
|
return unless node.arguments.one? && BAD_ARGUMENTS.include?(node.first_argument.source)
|
28
29
|
|
29
|
-
range = node.loc.selector.
|
30
|
+
range = range_between(node.loc.selector.begin_pos, node.source_range.end_pos)
|
30
31
|
|
31
32
|
add_offense(range, message: format(MSG, current: range.source)) do |corrector|
|
32
33
|
corrector.replace(range, 'chars')
|
@@ -29,6 +29,7 @@ module RuboCop
|
|
29
29
|
#
|
30
30
|
class StringConcatenation < Base
|
31
31
|
include Util
|
32
|
+
include RangeHelp
|
32
33
|
extend AutoCorrector
|
33
34
|
|
34
35
|
MSG = 'Prefer string interpolation to string concatenation.'
|
@@ -102,10 +103,7 @@ module RuboCop
|
|
102
103
|
end
|
103
104
|
|
104
105
|
def uncorrectable?(part)
|
105
|
-
part.multiline? ||
|
106
|
-
part.dstr_type? ||
|
107
|
-
(part.str_type? && part.heredoc?) ||
|
108
|
-
part.each_descendant(:block).any?
|
106
|
+
part.multiline? || (part.str_type? && part.heredoc?) || part.each_descendant(:block).any?
|
109
107
|
end
|
110
108
|
|
111
109
|
def corrected_ancestor?(node)
|
@@ -115,12 +113,12 @@ module RuboCop
|
|
115
113
|
def replacement(parts)
|
116
114
|
interpolated_parts =
|
117
115
|
parts.map do |part|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
116
|
+
case part.type
|
117
|
+
when :str
|
118
|
+
value = part.value
|
119
|
+
single_quoted?(part) ? value.gsub(/(\\|")/, '\\\\\&') : value.inspect[1..-2]
|
120
|
+
when :dstr
|
121
|
+
contents_range(part).source
|
124
122
|
else
|
125
123
|
"\#{#{part.source}}"
|
126
124
|
end
|
@@ -110,8 +110,7 @@ module RuboCop
|
|
110
110
|
if unexpected_single_quotes?(quote)
|
111
111
|
all_children_with_quotes = children.all? { |c| wrong_quotes?(c) }
|
112
112
|
register_offense(node) if all_children_with_quotes
|
113
|
-
elsif unexpected_double_quotes?(quote) &&
|
114
|
-
!accept_child_double_quotes?(children)
|
113
|
+
elsif unexpected_double_quotes?(quote) && !accept_child_double_quotes?(children)
|
115
114
|
register_offense(node)
|
116
115
|
end
|
117
116
|
end
|
@@ -125,9 +124,7 @@ module RuboCop
|
|
125
124
|
end
|
126
125
|
|
127
126
|
def accept_child_double_quotes?(nodes)
|
128
|
-
nodes.any?
|
129
|
-
n.dstr_type? || double_quotes_required?(n.source)
|
130
|
-
end
|
127
|
+
nodes.any? { |n| n.dstr_type? || double_quotes_required?(n.source) }
|
131
128
|
end
|
132
129
|
end
|
133
130
|
end
|
@@ -49,11 +49,19 @@ module RuboCop
|
|
49
49
|
if parent.block_type?
|
50
50
|
corrector.remove(range_with_surrounding_space(range: parent.loc.end, newlines: false))
|
51
51
|
elsif (class_node = parent.parent).body.nil?
|
52
|
-
corrector.remove(
|
52
|
+
corrector.remove(range_for_empty_class_body(class_node, parent))
|
53
53
|
else
|
54
54
|
corrector.insert_after(parent.loc.expression, ' do')
|
55
55
|
end
|
56
56
|
end
|
57
|
+
|
58
|
+
def range_for_empty_class_body(class_node, struct_new)
|
59
|
+
if class_node.single_line?
|
60
|
+
range_between(struct_new.source_range.end_pos, class_node.source_range.end_pos)
|
61
|
+
else
|
62
|
+
range_by_whole_lines(class_node.loc.end, include_final_newline: true)
|
63
|
+
end
|
64
|
+
end
|
57
65
|
end
|
58
66
|
end
|
59
67
|
end
|
@@ -20,9 +20,7 @@ module RuboCop
|
|
20
20
|
def on_sym(node)
|
21
21
|
return unless /\A:["'][A-Za-z_]\w*["']\z/.match?(node.source)
|
22
22
|
|
23
|
-
add_offense(node)
|
24
|
-
corrector.replace(node, node.source.delete(%q('")))
|
25
|
-
end
|
23
|
+
add_offense(node) { |corrector| corrector.replace(node, node.source.delete(%q('"))) }
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
@@ -31,8 +31,7 @@ module RuboCop
|
|
31
31
|
include IgnoredMethods
|
32
32
|
extend AutoCorrector
|
33
33
|
|
34
|
-
MSG = 'Pass `&:%<method>s` as an argument to `%<block_method>s` '
|
35
|
-
'instead of a block.'
|
34
|
+
MSG = 'Pass `&:%<method>s` as an argument to `%<block_method>s` instead of a block.'
|
36
35
|
SUPER_TYPES = %i[super zsuper].freeze
|
37
36
|
|
38
37
|
# @!method proc_node?(node)
|
@@ -81,9 +80,7 @@ module RuboCop
|
|
81
80
|
range = range_between(block_start, block_end)
|
82
81
|
message = format(MSG, method: method_name, block_method: block_method_name)
|
83
82
|
|
84
|
-
add_offense(range, message: message)
|
85
|
-
autocorrect(corrector, node)
|
86
|
-
end
|
83
|
+
add_offense(range, message: message) { |corrector| autocorrect(corrector, node) }
|
87
84
|
end
|
88
85
|
|
89
86
|
def autocorrect(corrector, node)
|
@@ -95,8 +92,7 @@ module RuboCop
|
|
95
92
|
end
|
96
93
|
|
97
94
|
def autocorrect_without_args(corrector, node)
|
98
|
-
corrector.replace(block_range_with_space(node),
|
99
|
-
"(&:#{node.body.method_name})")
|
95
|
+
corrector.replace(block_range_with_space(node), "(&:#{node.body.method_name})")
|
100
96
|
end
|
101
97
|
|
102
98
|
def autocorrect_with_args(corrector, node, args, method_name)
|
@@ -109,8 +105,7 @@ module RuboCop
|
|
109
105
|
end
|
110
106
|
|
111
107
|
def block_range_with_space(node)
|
112
|
-
block_range = range_between(begin_pos_for_replacement(node),
|
113
|
-
node.loc.end.end_pos)
|
108
|
+
block_range = range_between(begin_pos_for_replacement(node), node.loc.end.end_pos)
|
114
109
|
range_with_surrounding_space(range: block_range, side: :left)
|
115
110
|
end
|
116
111
|
|
@@ -64,8 +64,7 @@ module RuboCop
|
|
64
64
|
NON_COMPLEX_TYPES = [*VARIABLE_TYPES, :const, :defined?, :yield].freeze
|
65
65
|
|
66
66
|
MSG = '%<command>s parentheses for ternary conditions.'
|
67
|
-
MSG_COMPLEX = '%<command>s parentheses for ternary expressions with'
|
68
|
-
' complex conditions.'
|
67
|
+
MSG_COMPLEX = '%<command>s parentheses for ternary expressions with complex conditions.'
|
69
68
|
|
70
69
|
def on_if(node)
|
71
70
|
return if only_closing_parenthesis_is_last_line?(node.condition)
|
@@ -88,8 +87,7 @@ module RuboCop
|
|
88
87
|
condition = node.condition
|
89
88
|
|
90
89
|
return nil if parenthesized?(condition) &&
|
91
|
-
(safe_assignment?(condition) ||
|
92
|
-
unsafe_autocorrect?(condition))
|
90
|
+
(safe_assignment?(condition) || unsafe_autocorrect?(condition))
|
93
91
|
|
94
92
|
if parenthesized?(condition)
|
95
93
|
correct_parenthesized(corrector, condition)
|
@@ -127,8 +125,7 @@ module RuboCop
|
|
127
125
|
# Anything that is not a variable, constant, or method/.method call
|
128
126
|
# will be counted as a complex expression.
|
129
127
|
def non_complex_expression?(condition)
|
130
|
-
NON_COMPLEX_TYPES.include?(condition.type) ||
|
131
|
-
non_complex_send?(condition)
|
128
|
+
NON_COMPLEX_TYPES.include?(condition.type) || non_complex_send?(condition)
|
132
129
|
end
|
133
130
|
|
134
131
|
def non_complex_send?(node)
|
@@ -33,8 +33,7 @@ module RuboCop
|
|
33
33
|
include TrailingBody
|
34
34
|
extend AutoCorrector
|
35
35
|
|
36
|
-
MSG = "Place the first line of a multi-line method definition's "
|
37
|
-
'body on its own line.'
|
36
|
+
MSG = "Place the first line of a multi-line method definition's body on its own line."
|
38
37
|
|
39
38
|
def on_def(node)
|
40
39
|
return unless trailing_body?(node)
|
@@ -52,9 +52,7 @@ module RuboCop
|
|
52
52
|
|
53
53
|
last_comma_pos = last_comma(node).pos
|
54
54
|
|
55
|
-
add_offense(last_comma_pos)
|
56
|
-
corrector.replace(last_comma_pos, '')
|
57
|
-
end
|
55
|
+
add_offense(last_comma_pos) { |corrector| corrector.replace(last_comma_pos, '') }
|
58
56
|
end
|
59
57
|
|
60
58
|
private
|
@@ -78,9 +76,7 @@ module RuboCop
|
|
78
76
|
def argument_tokens(node)
|
79
77
|
tokens = processed_source.tokens_within(node)
|
80
78
|
pipes = tokens.select { |token| token.type == :tPIPE }
|
81
|
-
begin_pos, end_pos = pipes.map
|
82
|
-
tokens.index(pipe)
|
83
|
-
end
|
79
|
+
begin_pos, end_pos = pipes.map { |pipe| tokens.index(pipe) }
|
84
80
|
|
85
81
|
tokens[begin_pos + 1..end_pos - 1]
|
86
82
|
end
|
@@ -36,8 +36,7 @@ module RuboCop
|
|
36
36
|
class TrailingMethodEndStatement < Base
|
37
37
|
extend AutoCorrector
|
38
38
|
|
39
|
-
MSG = 'Place the end statement of a multi-line method on '
|
40
|
-
'its own line.'
|
39
|
+
MSG = 'Place the end statement of a multi-line method on its own line.'
|
41
40
|
|
42
41
|
def on_def(node)
|
43
42
|
return if node.endless? || !trailing_end?(node)
|
@@ -53,9 +52,7 @@ module RuboCop
|
|
53
52
|
private
|
54
53
|
|
55
54
|
def trailing_end?(node)
|
56
|
-
node.body &&
|
57
|
-
node.multiline? &&
|
58
|
-
body_and_end_on_same_line?(node)
|
55
|
+
node.body && node.multiline? && body_and_end_on_same_line?(node)
|
59
56
|
end
|
60
57
|
|
61
58
|
def body_and_end_on_same_line?(node)
|
@@ -33,8 +33,7 @@ module RuboCop
|
|
33
33
|
include RangeHelp
|
34
34
|
extend AutoCorrector
|
35
35
|
|
36
|
-
MSG = 'Do not use trailing `_`s in parallel assignment. '
|
37
|
-
'Prefer `%<code>s`.'
|
36
|
+
MSG = 'Do not use trailing `_`s in parallel assignment. Prefer `%<code>s`.'
|
38
37
|
UNDERSCORE = '_'
|
39
38
|
DISALLOW = %i[lvasgn splat].freeze
|
40
39
|
private_constant :DISALLOW
|
@@ -91,8 +90,7 @@ module RuboCop
|
|
91
90
|
end
|
92
91
|
|
93
92
|
def allow_named_underscore_variables
|
94
|
-
@allow_named_underscore_variables ||=
|
95
|
-
cop_config['AllowNamedUnderscoreVariables']
|
93
|
+
@allow_named_underscore_variables ||= cop_config['AllowNamedUnderscoreVariables']
|
96
94
|
end
|
97
95
|
|
98
96
|
def unneeded_ranges(node)
|
@@ -121,8 +119,7 @@ module RuboCop
|
|
121
119
|
|
122
120
|
return range_for_parentheses(first_offense, mlhs_node) if Util.parentheses?(mlhs_node)
|
123
121
|
|
124
|
-
range_between(first_offense.source_range.begin_pos,
|
125
|
-
node.loc.operator.begin_pos)
|
122
|
+
range_between(first_offense.source_range.begin_pos, node.loc.operator.begin_pos)
|
126
123
|
end
|
127
124
|
|
128
125
|
def children_offenses(variables)
|
@@ -147,10 +144,7 @@ module RuboCop
|
|
147
144
|
end
|
148
145
|
|
149
146
|
def range_for_parentheses(offense, left)
|
150
|
-
range_between(
|
151
|
-
offense.source_range.begin_pos - 1,
|
152
|
-
left.loc.expression.end_pos - 1
|
153
|
-
)
|
147
|
+
range_between(offense.source_range.begin_pos - 1, left.loc.expression.end_pos - 1)
|
154
148
|
end
|
155
149
|
end
|
156
150
|
end
|