rubocop 1.12.0 → 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 +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 +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 +16 -10
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +4 -0
- 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 +3 -4
- 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/check_line_breakable.rb +1 -1
- 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 -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/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 +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 +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 +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 -11
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +31 -3
- data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +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 +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_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_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 +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 +16 -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 +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 +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/directive_comment.rb +5 -0
- 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 +3 -9
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/formatter/tap_formatter.rb +4 -2
- 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
@@ -81,10 +81,7 @@ module RuboCop
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def width_message(indentation_width)
|
84
|
-
format(
|
85
|
-
WIDTH_MSG,
|
86
|
-
indentation_width: indentation_width
|
87
|
-
)
|
84
|
+
format(WIDTH_MSG, indentation_width: indentation_width)
|
88
85
|
end
|
89
86
|
|
90
87
|
def line_too_long?(node)
|
@@ -126,8 +123,7 @@ module RuboCop
|
|
126
123
|
body = heredoc_body(node)
|
127
124
|
body_indent_level = indent_level(body)
|
128
125
|
correct_indent_level = base_indent_level(node) + indentation_width
|
129
|
-
body.gsub(/^[^\S\r\n]{#{body_indent_level}}/,
|
130
|
-
' ' * correct_indent_level)
|
126
|
+
body.gsub(/^[^\S\r\n]{#{body_indent_level}}/, ' ' * correct_indent_level)
|
131
127
|
end
|
132
128
|
|
133
129
|
def indented_end(node)
|
@@ -46,9 +46,7 @@ module RuboCop
|
|
46
46
|
next unless (range = find_offence(line, lineno))
|
47
47
|
next if in_string_literal?(str_ranges, range)
|
48
48
|
|
49
|
-
add_offense(range)
|
50
|
-
autocorrect(corrector, range)
|
51
|
-
end
|
49
|
+
add_offense(range) { |corrector| autocorrect(corrector, range) }
|
52
50
|
end
|
53
51
|
end
|
54
52
|
|
@@ -135,8 +135,7 @@ module RuboCop
|
|
135
135
|
check_indentation(when_node.loc.keyword, when_node.body)
|
136
136
|
end
|
137
137
|
|
138
|
-
check_indentation(case_node.when_branches.last.loc.keyword,
|
139
|
-
case_node.else_branch)
|
138
|
+
check_indentation(case_node.when_branches.last.loc.keyword, case_node.else_branch)
|
140
139
|
end
|
141
140
|
|
142
141
|
def on_if(node, base = node)
|
@@ -41,10 +41,7 @@ module RuboCop
|
|
41
41
|
return unless token
|
42
42
|
return if token.column.zero?
|
43
43
|
|
44
|
-
space_range =
|
45
|
-
range_with_surrounding_space(range: token.pos,
|
46
|
-
side: :left,
|
47
|
-
newlines: false)
|
44
|
+
space_range = range_with_surrounding_space(range: token.pos, side: :left, newlines: false)
|
48
45
|
# If the file starts with a byte order mark (BOM), the column can be
|
49
46
|
# non-zero, but then we find out here if there's no space to the left
|
50
47
|
# of the first token.
|
@@ -122,8 +122,7 @@ module RuboCop
|
|
122
122
|
range = breakable_block_range(block_node)
|
123
123
|
pos = range.begin_pos + 1
|
124
124
|
|
125
|
-
breakable_range_by_line_index[line_index] =
|
126
|
-
range_between(pos, pos + 1)
|
125
|
+
breakable_range_by_line_index[line_index] = range_between(pos, pos + 1)
|
127
126
|
end
|
128
127
|
|
129
128
|
def breakable_block_range(block_node)
|
@@ -171,11 +170,7 @@ module RuboCop
|
|
171
170
|
end
|
172
171
|
return check_uri_line(line, line_index) if allow_uri?
|
173
172
|
|
174
|
-
register_offense(
|
175
|
-
excess_range(nil, line, line_index),
|
176
|
-
line,
|
177
|
-
line_index
|
178
|
-
)
|
173
|
+
register_offense(excess_range(nil, line, line_index), line, line_index)
|
179
174
|
end
|
180
175
|
|
181
176
|
def ignored_line?(line, line_index)
|
@@ -242,9 +237,7 @@ module RuboCop
|
|
242
237
|
end
|
243
238
|
|
244
239
|
def line_in_heredoc?(line_number)
|
245
|
-
heredocs.any?
|
246
|
-
range.cover?(line_number)
|
247
|
-
end
|
240
|
+
heredocs.any? { |range, _delimiter| range.cover?(line_number) }
|
248
241
|
end
|
249
242
|
|
250
243
|
def check_directive_line(line, line_index)
|
@@ -266,11 +259,7 @@ module RuboCop
|
|
266
259
|
uri_range = find_excessive_uri_range(line)
|
267
260
|
return if uri_range && allowed_uri_position?(line, uri_range)
|
268
261
|
|
269
|
-
register_offense(
|
270
|
-
excess_range(uri_range, line, line_index),
|
271
|
-
line,
|
272
|
-
line_index
|
273
|
-
)
|
262
|
+
register_offense(excess_range(uri_range, line, line_index), line, line_index)
|
274
263
|
end
|
275
264
|
end
|
276
265
|
end
|
@@ -24,8 +24,7 @@ module RuboCop
|
|
24
24
|
include MultilineElementLineBreaks
|
25
25
|
extend AutoCorrector
|
26
26
|
|
27
|
-
MSG = 'Each item in a multi-line array must start '
|
28
|
-
'on a separate line.'
|
27
|
+
MSG = 'Each item in a multi-line array must start on a separate line.'
|
29
28
|
|
30
29
|
def on_array(node)
|
31
30
|
check_line_breaks(node, node.children)
|
@@ -52,17 +52,14 @@ module RuboCop
|
|
52
52
|
include RangeHelp
|
53
53
|
extend AutoCorrector
|
54
54
|
|
55
|
-
MSG = 'Block body expression is on the same line as '
|
56
|
-
|
57
|
-
ARG_MSG = 'Block argument expression is not on the same line as the ' \
|
58
|
-
'block start.'
|
55
|
+
MSG = 'Block body expression is on the same line as the block start.'
|
56
|
+
ARG_MSG = 'Block argument expression is not on the same line as the block start.'
|
59
57
|
PIPE_SIZE = '|'.length
|
60
58
|
|
61
59
|
def on_block(node)
|
62
60
|
return if node.single_line?
|
63
61
|
|
64
|
-
unless args_on_beginning_line?(node) ||
|
65
|
-
line_break_necessary_in_args?(node)
|
62
|
+
unless args_on_beginning_line?(node) || line_break_necessary_in_args?(node)
|
66
63
|
add_offense_for_expression(node, node.arguments, ARG_MSG)
|
67
64
|
end
|
68
65
|
|
@@ -74,8 +71,7 @@ module RuboCop
|
|
74
71
|
private
|
75
72
|
|
76
73
|
def args_on_beginning_line?(node)
|
77
|
-
!node.arguments? ||
|
78
|
-
node.loc.begin.line == node.arguments.loc.last_line
|
74
|
+
!node.arguments? || node.loc.begin.line == node.arguments.loc.last_line
|
79
75
|
end
|
80
76
|
|
81
77
|
def line_break_necessary_in_args?(node)
|
@@ -101,9 +97,7 @@ module RuboCop
|
|
101
97
|
expression = expr.source_range
|
102
98
|
range = range_between(expression.begin_pos, expression.end_pos)
|
103
99
|
|
104
|
-
add_offense(range, message: msg)
|
105
|
-
autocorrect(corrector, node)
|
106
|
-
end
|
100
|
+
add_offense(range, message: msg) { |corrector| autocorrect(corrector, node) }
|
107
101
|
end
|
108
102
|
|
109
103
|
def autocorrect(corrector, node)
|
@@ -128,8 +122,7 @@ module RuboCop
|
|
128
122
|
newlines: false
|
129
123
|
).end_pos
|
130
124
|
range = range_between(node.loc.begin.end.begin_pos, end_pos)
|
131
|
-
corrector.replace(range,
|
132
|
-
" |#{block_arg_string(node, node.arguments)}|")
|
125
|
+
corrector.replace(range, " |#{block_arg_string(node, node.arguments)}|")
|
133
126
|
end
|
134
127
|
|
135
128
|
def autocorrect_body(corrector, node, block_body)
|
@@ -141,8 +134,7 @@ module RuboCop
|
|
141
134
|
|
142
135
|
block_start_col = node.source_range.column
|
143
136
|
|
144
|
-
corrector.insert_before(first_node,
|
145
|
-
"\n #{' ' * block_start_col}")
|
137
|
+
corrector.insert_before(first_node, "\n #{' ' * block_start_col}")
|
146
138
|
end
|
147
139
|
|
148
140
|
def block_arg_string(node, args)
|
@@ -24,8 +24,7 @@ module RuboCop
|
|
24
24
|
include MultilineElementLineBreaks
|
25
25
|
extend AutoCorrector
|
26
26
|
|
27
|
-
MSG = 'Each key in a multi-line hash must start on a '
|
28
|
-
'separate line.'
|
27
|
+
MSG = 'Each key in a multi-line hash must start on a separate line.'
|
29
28
|
|
30
29
|
def on_hash(node)
|
31
30
|
# This cop only deals with hashes wrapped by a set of curly
|
@@ -23,8 +23,7 @@ module RuboCop
|
|
23
23
|
include MultilineElementLineBreaks
|
24
24
|
extend AutoCorrector
|
25
25
|
|
26
|
-
MSG = 'Each argument in a multi-line method call must start '
|
27
|
-
'on a separate line.'
|
26
|
+
MSG = 'Each argument in a multi-line method call must start on a separate line.'
|
28
27
|
|
29
28
|
def on_send(node)
|
30
29
|
return if node.method?(:[]=)
|
@@ -72,6 +72,18 @@ module RuboCop
|
|
72
72
|
send_node.loc.dot # Only check method calls with dot operator
|
73
73
|
end
|
74
74
|
|
75
|
+
def right_hand_side(send_node)
|
76
|
+
dot = send_node.loc.dot
|
77
|
+
selector = send_node.loc.selector
|
78
|
+
if send_node.dot? && selector && dot.line == selector.line
|
79
|
+
dot.join(selector)
|
80
|
+
elsif selector
|
81
|
+
selector
|
82
|
+
elsif send_node.implicit_call?
|
83
|
+
dot.join(send_node.loc.begin)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
75
87
|
def offending_range(node, lhs, rhs, given_style)
|
76
88
|
return false unless begins_its_line?(rhs)
|
77
89
|
return false if not_for_this_cop?(node)
|
@@ -140,8 +152,7 @@ module RuboCop
|
|
140
152
|
def alignment_base(node, rhs, given_style)
|
141
153
|
case given_style
|
142
154
|
when :aligned
|
143
|
-
semantic_alignment_base(node, rhs) ||
|
144
|
-
syntactic_alignment_base(node, rhs)
|
155
|
+
semantic_alignment_base(node, rhs) || syntactic_alignment_base(node, rhs)
|
145
156
|
when :indented
|
146
157
|
nil
|
147
158
|
when :indented_relative_to_receiver
|
@@ -158,15 +169,11 @@ module RuboCop
|
|
158
169
|
|
159
170
|
# a = b
|
160
171
|
# .c
|
161
|
-
part_of_assignment_rhs(lhs, rhs)
|
162
|
-
return assignment_rhs(base).source_range
|
163
|
-
end
|
172
|
+
part_of_assignment_rhs(lhs, rhs) { |base| return assignment_rhs(base).source_range }
|
164
173
|
|
165
174
|
# a + b
|
166
175
|
# .c
|
167
|
-
operation_rhs(lhs)
|
168
|
-
return base.source_range
|
169
|
-
end
|
176
|
+
operation_rhs(lhs) { |base| return base.source_range }
|
170
177
|
end
|
171
178
|
|
172
179
|
# a.b
|
@@ -216,8 +223,7 @@ module RuboCop
|
|
216
223
|
end
|
217
224
|
|
218
225
|
def operator_rhs?(node, receiver)
|
219
|
-
node.operator_method? && node.arguments? &&
|
220
|
-
within_node?(receiver, node.first_argument)
|
226
|
+
node.operator_method? && node.arguments? && within_node?(receiver, node.first_argument)
|
221
227
|
end
|
222
228
|
end
|
223
229
|
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Layout
|
6
|
+
# This cop checks whether certain expressions, e.g. method calls, that could fit
|
7
|
+
# completely on a single line, are broken up into multiple lines unnecessarily.
|
8
|
+
#
|
9
|
+
# @example any configuration
|
10
|
+
# # bad
|
11
|
+
# foo(
|
12
|
+
# a,
|
13
|
+
# b
|
14
|
+
# )
|
15
|
+
#
|
16
|
+
# puts 'string that fits on ' \
|
17
|
+
# 'a single line'
|
18
|
+
#
|
19
|
+
# things
|
20
|
+
# .select { |thing| thing.cond? }
|
21
|
+
# .join('-')
|
22
|
+
#
|
23
|
+
# # good
|
24
|
+
# foo(a, b)
|
25
|
+
#
|
26
|
+
# puts 'string that fits on a single line'
|
27
|
+
#
|
28
|
+
# things.select { |thing| thing.cond? }.join('-')
|
29
|
+
#
|
30
|
+
# @example InspectBlocks: false (default)
|
31
|
+
# # good
|
32
|
+
# foo(a) do |x|
|
33
|
+
# puts x
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# @example InspectBlocks: true
|
37
|
+
# # bad
|
38
|
+
# foo(a) do |x|
|
39
|
+
# puts x
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# # good
|
43
|
+
# foo(a) { |x| puts x }
|
44
|
+
#
|
45
|
+
class RedundantLineBreak < Cop
|
46
|
+
include CheckAssignment
|
47
|
+
|
48
|
+
MSG = 'Redundant line break detected.'
|
49
|
+
|
50
|
+
def on_send(node)
|
51
|
+
# Include "the whole expression".
|
52
|
+
node = node.parent while convertible_block?(node) ||
|
53
|
+
node.parent.is_a?(RuboCop::AST::BinaryOperatorNode) ||
|
54
|
+
node.parent&.send_type?
|
55
|
+
|
56
|
+
return unless offense?(node) && !part_of_ignored_node?(node)
|
57
|
+
|
58
|
+
add_offense(node)
|
59
|
+
ignore_node(node)
|
60
|
+
end
|
61
|
+
|
62
|
+
def check_assignment(node, _rhs)
|
63
|
+
return unless offense?(node)
|
64
|
+
|
65
|
+
add_offense(node)
|
66
|
+
ignore_node(node)
|
67
|
+
end
|
68
|
+
|
69
|
+
def autocorrect(node)
|
70
|
+
->(corrector) { corrector.replace(node.source_range, to_single_line(node.source).strip) }
|
71
|
+
end
|
72
|
+
|
73
|
+
private
|
74
|
+
|
75
|
+
def offense?(node)
|
76
|
+
return false if configured_to_not_be_inspected?(node)
|
77
|
+
|
78
|
+
node.multiline? && !too_long?(node) && suitable_as_single_line?(node)
|
79
|
+
end
|
80
|
+
|
81
|
+
def configured_to_not_be_inspected?(node)
|
82
|
+
!cop_config['InspectBlocks'] && (node.block_type? ||
|
83
|
+
node.each_child_node(:block).any?(&:multiline?))
|
84
|
+
end
|
85
|
+
|
86
|
+
def suitable_as_single_line?(node)
|
87
|
+
!comment_within?(node) &&
|
88
|
+
node.each_descendant(:if, :case, :kwbegin, :def).none? &&
|
89
|
+
node.each_descendant(:dstr, :str).none?(&:heredoc?) &&
|
90
|
+
node.each_descendant(:begin).none? { |b| b.first_line != b.last_line }
|
91
|
+
end
|
92
|
+
|
93
|
+
def convertible_block?(node)
|
94
|
+
return false unless node.parent&.block_type?
|
95
|
+
|
96
|
+
send_node = node.parent&.send_node
|
97
|
+
send_node.parenthesized? || !send_node.arguments?
|
98
|
+
end
|
99
|
+
|
100
|
+
def comment_within?(node)
|
101
|
+
processed_source.comments.map(&:loc).map(&:line).any? do |comment_line_number|
|
102
|
+
comment_line_number >= node.first_line && comment_line_number <= node.last_line
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def too_long?(node)
|
107
|
+
lines = processed_source.lines[(node.first_line - 1)...node.last_line]
|
108
|
+
to_single_line(lines.join("\n")).length > max_line_length
|
109
|
+
end
|
110
|
+
|
111
|
+
def to_single_line(source)
|
112
|
+
source
|
113
|
+
.gsub(/" *\\\n\s*'/, %q(" + ')) # Double quote, backslash, and then single quote
|
114
|
+
.gsub(/' *\\\n\s*"/, %q(' + ")) # Single quote, backslash, and then double quote
|
115
|
+
.gsub(/(["']) *\\\n\s*\1/, '') # Double or single quote, backslash, then same quote
|
116
|
+
.gsub(/\s*\\?\n\s*/, ' ') # Any other line break, with or without backslash
|
117
|
+
end
|
118
|
+
|
119
|
+
def max_line_length
|
120
|
+
config.for_cop('Layout/LineLength')['Max']
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -32,8 +32,7 @@ module RuboCop
|
|
32
32
|
ANCESTOR_TYPES = %i[kwbegin def defs class module].freeze
|
33
33
|
RUBY_2_5_ANCESTOR_TYPES = (ANCESTOR_TYPES + %i[block]).freeze
|
34
34
|
ANCESTOR_TYPES_WITH_ACCESS_MODIFIERS = %i[def defs].freeze
|
35
|
-
ALTERNATIVE_ACCESS_MODIFIERS = %i[public_class_method
|
36
|
-
private_class_method].freeze
|
35
|
+
ALTERNATIVE_ACCESS_MODIFIERS = %i[public_class_method private_class_method].freeze
|
37
36
|
|
38
37
|
def on_resbody(node)
|
39
38
|
check(node) unless modifier?(node)
|
@@ -118,8 +117,7 @@ module RuboCop
|
|
118
117
|
def alignment_node(node)
|
119
118
|
ancestor_node = ancestor_node(node)
|
120
119
|
|
121
|
-
return ancestor_node if ancestor_node.nil? ||
|
122
|
-
ancestor_node.kwbegin_type?
|
120
|
+
return ancestor_node if ancestor_node.nil? || ancestor_node.kwbegin_type?
|
123
121
|
|
124
122
|
assignment_node = assignment_node(ancestor_node)
|
125
123
|
return assignment_node if same_line?(ancestor_node, assignment_node)
|
@@ -173,8 +171,7 @@ module RuboCop
|
|
173
171
|
end
|
174
172
|
|
175
173
|
def access_modifier?(node)
|
176
|
-
return true if node.respond_to?(:access_modifier?) &&
|
177
|
-
node.access_modifier?
|
174
|
+
return true if node.respond_to?(:access_modifier?) && node.access_modifier?
|
178
175
|
|
179
176
|
return true if node.respond_to?(:method_name) &&
|
180
177
|
ALTERNATIVE_ACCESS_MODIFIERS.include?(node.method_name)
|
@@ -37,9 +37,7 @@ module RuboCop
|
|
37
37
|
private
|
38
38
|
|
39
39
|
def register_offense(colon)
|
40
|
-
add_offense(colon)
|
41
|
-
corrector.insert_after(colon, ' ')
|
42
|
-
end
|
40
|
+
add_offense(colon) { |corrector| corrector.insert_after(colon, ' ') }
|
43
41
|
end
|
44
42
|
|
45
43
|
def followed_by_space?(colon)
|
@@ -18,16 +18,14 @@ module RuboCop
|
|
18
18
|
include RangeHelp
|
19
19
|
extend AutoCorrector
|
20
20
|
|
21
|
-
MSG = 'Do not put a space between a method name and the opening '
|
22
|
-
'parenthesis.'
|
21
|
+
MSG = 'Do not put a space between a method name and the opening parenthesis.'
|
23
22
|
|
24
23
|
def on_def(node)
|
25
24
|
args = node.arguments
|
26
25
|
return unless args.loc.begin&.is?('(')
|
27
26
|
|
28
27
|
expr = args.source_range
|
29
|
-
pos_before_left_paren = range_between(expr.begin_pos - 1,
|
30
|
-
expr.begin_pos)
|
28
|
+
pos_before_left_paren = range_between(expr.begin_pos - 1, expr.begin_pos)
|
31
29
|
return unless pos_before_left_paren.source.start_with?(' ')
|
32
30
|
|
33
31
|
add_offense(pos_before_left_paren) do |corrector|
|