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
@@ -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?(:[]=)
|
@@ -152,8 +152,7 @@ module RuboCop
|
|
152
152
|
def alignment_base(node, rhs, given_style)
|
153
153
|
case given_style
|
154
154
|
when :aligned
|
155
|
-
semantic_alignment_base(node, rhs) ||
|
156
|
-
syntactic_alignment_base(node, rhs)
|
155
|
+
semantic_alignment_base(node, rhs) || syntactic_alignment_base(node, rhs)
|
157
156
|
when :indented
|
158
157
|
nil
|
159
158
|
when :indented_relative_to_receiver
|
@@ -170,15 +169,11 @@ module RuboCop
|
|
170
169
|
|
171
170
|
# a = b
|
172
171
|
# .c
|
173
|
-
part_of_assignment_rhs(lhs, rhs)
|
174
|
-
return assignment_rhs(base).source_range
|
175
|
-
end
|
172
|
+
part_of_assignment_rhs(lhs, rhs) { |base| return assignment_rhs(base).source_range }
|
176
173
|
|
177
174
|
# a + b
|
178
175
|
# .c
|
179
|
-
operation_rhs(lhs)
|
180
|
-
return base.source_range
|
181
|
-
end
|
176
|
+
operation_rhs(lhs) { |base| return base.source_range }
|
182
177
|
end
|
183
178
|
|
184
179
|
# a.b
|
@@ -228,8 +223,7 @@ module RuboCop
|
|
228
223
|
end
|
229
224
|
|
230
225
|
def operator_rhs?(node, receiver)
|
231
|
-
node.operator_method? && node.arguments? &&
|
232
|
-
within_node?(receiver, node.first_argument)
|
226
|
+
node.operator_method? && node.arguments? && within_node?(receiver, node.first_argument)
|
233
227
|
end
|
234
228
|
end
|
235
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|
|
@@ -77,8 +77,7 @@ module RuboCop
|
|
77
77
|
first = args.first.source_range
|
78
78
|
last = args.last.source_range
|
79
79
|
|
80
|
-
check_no_space(opening_pipe.end_pos, first.begin_pos,
|
81
|
-
'Space before first')
|
80
|
+
check_no_space(opening_pipe.end_pos, first.begin_pos, 'Space before first')
|
82
81
|
check_no_space(last_end_pos_inside_pipes(arguments, last),
|
83
82
|
closing_pipe.begin_pos, 'Space after last')
|
84
83
|
end
|
@@ -98,8 +97,7 @@ module RuboCop
|
|
98
97
|
|
99
98
|
check_space(opening_pipe.end_pos, range.begin_pos, range,
|
100
99
|
'before first block parameter', first_arg)
|
101
|
-
check_no_space(opening_pipe.end_pos, range.begin_pos - 1,
|
102
|
-
'Extra space before first')
|
100
|
+
check_no_space(opening_pipe.end_pos, range.begin_pos - 1, 'Extra space before first')
|
103
101
|
end
|
104
102
|
|
105
103
|
def check_closing_pipe_space(arguments, closing_pipe)
|
@@ -108,10 +106,8 @@ module RuboCop
|
|
108
106
|
last = args.last.source_range
|
109
107
|
last_end_pos = last_end_pos_inside_pipes(arguments, last)
|
110
108
|
|
111
|
-
check_space(last_end_pos, closing_pipe.begin_pos, last,
|
112
|
-
|
113
|
-
check_no_space(last_end_pos + 1, closing_pipe.begin_pos,
|
114
|
-
'Extra space after last')
|
109
|
+
check_space(last_end_pos, closing_pipe.begin_pos, last, 'after last block parameter')
|
110
|
+
check_no_space(last_end_pos + 1, closing_pipe.begin_pos, 'Extra space after last')
|
115
111
|
end
|
116
112
|
|
117
113
|
def last_end_pos_inside_pipes(arguments, range)
|
@@ -123,9 +119,7 @@ module RuboCop
|
|
123
119
|
end
|
124
120
|
|
125
121
|
def check_each_arg(args)
|
126
|
-
args.children.each
|
127
|
-
check_arg(arg)
|
128
|
-
end
|
122
|
+
args.children.each { |arg| check_arg(arg) }
|
129
123
|
end
|
130
124
|
|
131
125
|
def check_arg(arg)
|
@@ -160,9 +154,7 @@ module RuboCop
|
|
160
154
|
return if range.source.include?("\n")
|
161
155
|
|
162
156
|
message = "#{msg} block parameter detected."
|
163
|
-
add_offense(range, message: message)
|
164
|
-
corrector.remove(range)
|
165
|
-
end
|
157
|
+
add_offense(range, message: message) { |corrector| corrector.remove(range) }
|
166
158
|
end
|
167
159
|
end
|
168
160
|
end
|
@@ -47,8 +47,7 @@ module RuboCop
|
|
47
47
|
space_on_both_sides = space_on_both_sides?(arg, equals)
|
48
48
|
no_surrounding_space = no_surrounding_space?(arg, equals)
|
49
49
|
|
50
|
-
if style == :space && space_on_both_sides ||
|
51
|
-
style == :no_space && no_surrounding_space
|
50
|
+
if style == :space && space_on_both_sides || style == :no_space && no_surrounding_space
|
52
51
|
correct_style_detected
|
53
52
|
else
|
54
53
|
incorrect_style_detected(arg, value)
|
@@ -33,10 +33,8 @@ module RuboCop
|
|
33
33
|
DO = 'do'
|
34
34
|
SAFE_NAVIGATION = '&.'
|
35
35
|
NAMESPACE_OPERATOR = '::'
|
36
|
-
ACCEPT_LEFT_PAREN =
|
37
|
-
|
38
|
-
ACCEPT_LEFT_SQUARE_BRACKET =
|
39
|
-
%w[super yield].freeze
|
36
|
+
ACCEPT_LEFT_PAREN = %w[break defined? next not rescue return super yield].freeze
|
37
|
+
ACCEPT_LEFT_SQUARE_BRACKET = %w[super yield].freeze
|
40
38
|
ACCEPT_NAMESPACE_OPERATOR = 'super'
|
41
39
|
|
42
40
|
def on_and(node)
|
@@ -194,8 +192,7 @@ module RuboCop
|
|
194
192
|
|
195
193
|
return false if accepted_opening_delimiter?(range, char)
|
196
194
|
return false if safe_navigation_call?(range, pos)
|
197
|
-
return false if accept_namespace_operator?(range) &&
|
198
|
-
namespace_operator?(range, pos)
|
195
|
+
return false if accept_namespace_operator?(range) && namespace_operator?(range, pos)
|
199
196
|
|
200
197
|
!/[\s;,#\\)}\].]/.match?(char)
|
201
198
|
end
|