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
@@ -17,8 +17,7 @@ module RuboCop
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def message
|
20
|
-
rule_message + "\n(obsolete configuration found in "
|
21
|
-
"#{smart_loaded_path}, please update it)"
|
20
|
+
rule_message + "\n(obsolete configuration found in #{smart_loaded_path}, please update it)"
|
22
21
|
end
|
23
22
|
|
24
23
|
# Cop rules currently can only be failures, not warnings
|
data/lib/rubocop/config_store.rb
CHANGED
@@ -27,8 +27,7 @@ module RuboCop
|
|
27
27
|
|
28
28
|
def options_config=(options_config)
|
29
29
|
loaded_config = ConfigLoader.load_file(options_config)
|
30
|
-
@options_config = ConfigLoader.merge_with_default(loaded_config,
|
31
|
-
options_config)
|
30
|
+
@options_config = ConfigLoader.merge_with_default(loaded_config, options_config)
|
32
31
|
end
|
33
32
|
|
34
33
|
def force_default_config!
|
@@ -9,8 +9,7 @@ module RuboCop
|
|
9
9
|
extend Forwardable
|
10
10
|
|
11
11
|
# @api private
|
12
|
-
COMMON_PARAMS = %w[Exclude Include Severity inherit_mode
|
13
|
-
AutoCorrect StyleGuide Details].freeze
|
12
|
+
COMMON_PARAMS = %w[Exclude Include Severity inherit_mode AutoCorrect StyleGuide Details].freeze
|
14
13
|
# @api private
|
15
14
|
INTERNAL_PARAMS = %w[Description StyleGuide
|
16
15
|
VersionAdded VersionChanged VersionRemoved
|
@@ -60,8 +59,7 @@ module RuboCop
|
|
60
59
|
def validate_section_presence(name)
|
61
60
|
return unless @config.key?(name) && @config[name].nil?
|
62
61
|
|
63
|
-
raise ValidationError,
|
64
|
-
"empty section #{name} found in #{smart_loaded_path}"
|
62
|
+
raise ValidationError, "empty section #{name} found in #{smart_loaded_path}"
|
65
63
|
end
|
66
64
|
|
67
65
|
private
|
@@ -123,8 +121,7 @@ module RuboCop
|
|
123
121
|
syntax_config = @config['Lint/Syntax']
|
124
122
|
default_config = ConfigLoader.default_configuration['Lint/Syntax']
|
125
123
|
|
126
|
-
return unless syntax_config &&
|
127
|
-
default_config.merge(syntax_config) != default_config
|
124
|
+
return unless syntax_config && default_config.merge(syntax_config) != default_config
|
128
125
|
|
129
126
|
raise ValidationError,
|
130
127
|
"configuration for Syntax cop found in #{smart_loaded_path}\n" \
|
@@ -133,8 +130,7 @@ module RuboCop
|
|
133
130
|
|
134
131
|
def validate_new_cops_parameter
|
135
132
|
new_cop_parameter = @config.for_all_cops['NewCops']
|
136
|
-
return if new_cop_parameter.nil? ||
|
137
|
-
NEW_COPS_VALUES.include?(new_cop_parameter)
|
133
|
+
return if new_cop_parameter.nil? || NEW_COPS_VALUES.include?(new_cop_parameter)
|
138
134
|
|
139
135
|
message = "invalid #{new_cop_parameter} for `NewCops` found in" \
|
140
136
|
"#{smart_loaded_path}\n" \
|
@@ -208,8 +204,7 @@ module RuboCop
|
|
208
204
|
def reject_conflicting_safe_settings
|
209
205
|
@config.each do |name, cop_config|
|
210
206
|
next unless cop_config.is_a?(Hash)
|
211
|
-
next unless cop_config['Safe'] == false &&
|
212
|
-
cop_config['SafeAutoCorrect'] == true
|
207
|
+
next unless cop_config['Safe'] == false && cop_config['SafeAutoCorrect'] == true
|
213
208
|
|
214
209
|
msg = 'Unsafe cops cannot have a safe auto-correction ' \
|
215
210
|
"(section #{name} in #{smart_loaded_path})"
|
@@ -21,8 +21,7 @@ module RuboCop
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def safe_autocorrect?
|
24
|
-
cop_config.fetch('Safe', true) &&
|
25
|
-
cop_config.fetch('SafeAutoCorrect', true)
|
24
|
+
cop_config.fetch('Safe', true) && cop_config.fetch('SafeAutoCorrect', true)
|
26
25
|
end
|
27
26
|
|
28
27
|
def autocorrect_enabled?
|
@@ -68,9 +67,7 @@ module RuboCop
|
|
68
67
|
begin_of_first_line = range.begin_pos - range.column
|
69
68
|
end_of_first_line = begin_of_first_line + range.source_line.length
|
70
69
|
|
71
|
-
Parser::Source::Range.new(range.source_buffer,
|
72
|
-
begin_of_first_line,
|
73
|
-
end_of_first_line)
|
70
|
+
Parser::Source::Range.new(range.source_buffer, begin_of_first_line, end_of_first_line)
|
74
71
|
end
|
75
72
|
|
76
73
|
# Expand the given range to include all of any lines it covers. Does not
|
@@ -82,9 +79,7 @@ module RuboCop
|
|
82
79
|
last_line_offset = last_line.length - range.last_column
|
83
80
|
end_of_last_line = range.end_pos + last_line_offset
|
84
81
|
|
85
|
-
Parser::Source::Range.new(range.source_buffer,
|
86
|
-
begin_of_first_line,
|
87
|
-
end_of_last_line)
|
82
|
+
Parser::Source::Range.new(range.source_buffer, begin_of_first_line, end_of_last_line)
|
88
83
|
end
|
89
84
|
|
90
85
|
def max_line_length
|
data/lib/rubocop/cop/badge.rb
CHANGED
data/lib/rubocop/cop/base.rb
CHANGED
@@ -187,8 +187,7 @@ module RuboCop
|
|
187
187
|
def self.match?(given_names)
|
188
188
|
return false unless given_names
|
189
189
|
|
190
|
-
given_names.include?(cop_name) ||
|
191
|
-
given_names.include?(department.to_s)
|
190
|
+
given_names.include?(cop_name) || given_names.include?(department.to_s)
|
192
191
|
end
|
193
192
|
|
194
193
|
def cop_name
|
@@ -206,13 +205,11 @@ module RuboCop
|
|
206
205
|
end
|
207
206
|
|
208
207
|
def config_to_allow_offenses
|
209
|
-
Formatter::DisabledConfigFormatter
|
210
|
-
.config_to_allow_offenses[cop_name] ||= {}
|
208
|
+
Formatter::DisabledConfigFormatter.config_to_allow_offenses[cop_name] ||= {}
|
211
209
|
end
|
212
210
|
|
213
211
|
def config_to_allow_offenses=(hash)
|
214
|
-
Formatter::DisabledConfigFormatter.config_to_allow_offenses[cop_name] =
|
215
|
-
hash
|
212
|
+
Formatter::DisabledConfigFormatter.config_to_allow_offenses[cop_name] = hash
|
216
213
|
end
|
217
214
|
|
218
215
|
def target_ruby_version
|
@@ -233,6 +230,11 @@ module RuboCop
|
|
233
230
|
!relevant_file?(file)
|
234
231
|
end
|
235
232
|
|
233
|
+
# There should be very limited reasons for a Cop to do it's own parsing
|
234
|
+
def parse(source, path = nil)
|
235
|
+
ProcessedSource.new(source, target_ruby_version, path)
|
236
|
+
end
|
237
|
+
|
236
238
|
### Persistence
|
237
239
|
|
238
240
|
# Override if your cop should be called repeatedly for multiple investigations
|
@@ -83,8 +83,7 @@ module RuboCop
|
|
83
83
|
|
84
84
|
def register_offense(node, gem_name, line_of_first_occurrence)
|
85
85
|
line_range = node.loc.column...node.loc.last_column
|
86
|
-
offense_location =
|
87
|
-
source_range(processed_source.buffer, node.first_line, line_range)
|
86
|
+
offense_location = source_range(processed_source.buffer, node.first_line, line_range)
|
88
87
|
message = format(
|
89
88
|
MSG,
|
90
89
|
gem_name: gem_name,
|
@@ -3,15 +3,24 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Bundler
|
6
|
-
#
|
6
|
+
# Each gem in the Gemfile should have a comment explaining
|
7
|
+
# its purpose in the project, or the reason for its version
|
8
|
+
# or source.
|
7
9
|
#
|
8
|
-
#
|
10
|
+
# The optional "OnlyFor" configuration array
|
9
11
|
# can be used to only register offenses when the gems
|
10
12
|
# use certain options or have version specifiers.
|
11
|
-
# Add "version_specifiers" and/or the gem option names
|
12
|
-
# you want to check.
|
13
13
|
#
|
14
|
-
#
|
14
|
+
# When "version_specifiers" is included, a comment
|
15
|
+
# will be enforced if the gem has any version specifier.
|
16
|
+
#
|
17
|
+
# When "restrictive_version_specifiers" is included, a comment
|
18
|
+
# will be enforced if the gem has a version specifier that
|
19
|
+
# holds back the version of the gem.
|
20
|
+
#
|
21
|
+
# For any other value in the array, a comment will be enforced for
|
22
|
+
# a gem if an option by the same name is present.
|
23
|
+
# A useful use case is to enforce a comment when using
|
15
24
|
# options that change the source of a gem:
|
16
25
|
#
|
17
26
|
# - `bitbucket`
|
@@ -21,7 +30,8 @@ module RuboCop
|
|
21
30
|
# - `source`
|
22
31
|
#
|
23
32
|
# For a full list of options supported by bundler,
|
24
|
-
#
|
33
|
+
# see https://bundler.io/man/gemfile.5.html
|
34
|
+
# .
|
25
35
|
#
|
26
36
|
# @example OnlyFor: [] (default)
|
27
37
|
# # bad
|
@@ -43,6 +53,18 @@ module RuboCop
|
|
43
53
|
# # Version 2.1 introduces breaking change baz
|
44
54
|
# gem 'foo', '< 2.1'
|
45
55
|
#
|
56
|
+
# @example OnlyFor: ['restrictive_version_specifiers']
|
57
|
+
# # bad
|
58
|
+
#
|
59
|
+
# gem 'foo', '< 2.1'
|
60
|
+
#
|
61
|
+
# # good
|
62
|
+
#
|
63
|
+
# gem 'foo', '>= 1.0'
|
64
|
+
#
|
65
|
+
# # Version 2.1 introduces breaking change baz
|
66
|
+
# gem 'foo', '< 2.1'
|
67
|
+
#
|
46
68
|
# @example OnlyFor: ['version_specifiers', 'github']
|
47
69
|
# # bad
|
48
70
|
#
|
@@ -64,6 +86,8 @@ module RuboCop
|
|
64
86
|
MSG = 'Missing gem description comment.'
|
65
87
|
CHECKED_OPTIONS_CONFIG = 'OnlyFor'
|
66
88
|
VERSION_SPECIFIERS_OPTION = 'version_specifiers'
|
89
|
+
RESTRICTIVE_VERSION_SPECIFIERS_OPTION = 'restrictive_version_specifiers'
|
90
|
+
RESTRICTIVE_VERSION_PATTERN = /<|~>/.freeze
|
67
91
|
RESTRICT_ON_SEND = %i[gem].freeze
|
68
92
|
|
69
93
|
# @!method gem_declaration?(node)
|
@@ -102,8 +126,7 @@ module RuboCop
|
|
102
126
|
end
|
103
127
|
|
104
128
|
def preceding_comment?(node1, node2)
|
105
|
-
node1 && node2 && precede?(node2, node1) &&
|
106
|
-
comment_line?(node2.loc.expression.source)
|
129
|
+
node1 && node2 && precede?(node2, node1) && comment_line?(node2.loc.expression.source)
|
107
130
|
end
|
108
131
|
|
109
132
|
def ignored_gem?(node)
|
@@ -114,6 +137,8 @@ module RuboCop
|
|
114
137
|
def checked_options_present?(node)
|
115
138
|
(cop_config[CHECKED_OPTIONS_CONFIG].include?(VERSION_SPECIFIERS_OPTION) &&
|
116
139
|
version_specified_gem?(node)) ||
|
140
|
+
(cop_config[CHECKED_OPTIONS_CONFIG].include?(RESTRICTIVE_VERSION_SPECIFIERS_OPTION) &&
|
141
|
+
restrictive_version_specified_gem?(node)) ||
|
117
142
|
contains_checked_options?(node)
|
118
143
|
end
|
119
144
|
|
@@ -124,6 +149,15 @@ module RuboCop
|
|
124
149
|
node.arguments[1]&.str_type?
|
125
150
|
end
|
126
151
|
|
152
|
+
# Version specifications that restrict all updates going forward. This excludes versions
|
153
|
+
# like ">= 1.0" or "!= 2.0.3".
|
154
|
+
def restrictive_version_specified_gem?(node)
|
155
|
+
return unless version_specified_gem?(node)
|
156
|
+
|
157
|
+
node.arguments
|
158
|
+
.any? { |arg| arg&.str_type? && RESTRICTIVE_VERSION_PATTERN.match?(arg.to_s) }
|
159
|
+
end
|
160
|
+
|
127
161
|
def contains_checked_options?(node)
|
128
162
|
(Array(cop_config[CHECKED_OPTIONS_CONFIG]) & gem_options(node).map(&:to_s)).any?
|
129
163
|
end
|
@@ -38,10 +38,7 @@ module RuboCop
|
|
38
38
|
gem_declarations(processed_source.ast)
|
39
39
|
.each_cons(2) do |previous, current|
|
40
40
|
next unless consecutive_lines(previous, current)
|
41
|
-
next unless case_insensitive_out_of_order?(
|
42
|
-
gem_name(current),
|
43
|
-
gem_name(previous)
|
44
|
-
)
|
41
|
+
next unless case_insensitive_out_of_order?(gem_name(current), gem_name(previous))
|
45
42
|
|
46
43
|
register_offense(previous, current)
|
47
44
|
end
|
@@ -143,20 +143,14 @@ module RuboCop
|
|
143
143
|
map = {}
|
144
144
|
callbacks&.select! do |cop|
|
145
145
|
restrictions = cop.class.send :restrict_on_send
|
146
|
-
restrictions.each
|
147
|
-
(map[name] ||= []) << cop
|
148
|
-
end
|
146
|
+
restrictions.each { |name| (map[name] ||= []) << cop }
|
149
147
|
restrictions.empty?
|
150
148
|
end
|
151
149
|
map
|
152
150
|
end
|
153
151
|
|
154
152
|
def invoke(callback, cops, *args)
|
155
|
-
cops.each
|
156
|
-
with_cop_error_handling(cop) do
|
157
|
-
cop.send(callback, *args)
|
158
|
-
end
|
159
|
-
end
|
153
|
+
cops.each { |cop| with_cop_error_handling(cop) { cop.send(callback, *args) } }
|
160
154
|
end
|
161
155
|
|
162
156
|
# Allow blind rescues here, since we're absorbing and packaging or
|
data/lib/rubocop/cop/cop.rb
CHANGED
@@ -18,9 +18,7 @@ module RuboCop
|
|
18
18
|
def call(corrector)
|
19
19
|
lambda.call(corrector)
|
20
20
|
rescue StandardError => e
|
21
|
-
raise ErrorWithAnalyzedFileLocation.new(
|
22
|
-
cause: e, node: node, cop: cop
|
23
|
-
)
|
21
|
+
raise ErrorWithAnalyzedFileLocation.new(cause: e, node: node, cop: cop)
|
24
22
|
end
|
25
23
|
end
|
26
24
|
|
@@ -55,9 +53,7 @@ module RuboCop
|
|
55
53
|
return unless method_defined?(:join_force?)
|
56
54
|
|
57
55
|
cop = new
|
58
|
-
Force.all.select
|
59
|
-
cop.join_force?(force_class)
|
60
|
-
end
|
56
|
+
Force.all.select { |force_class| cop.join_force?(force_class) }
|
61
57
|
end
|
62
58
|
|
63
59
|
# @deprecated
|
@@ -97,12 +93,6 @@ module RuboCop
|
|
97
93
|
Registry.qualified_cop_name(name, origin)
|
98
94
|
end
|
99
95
|
|
100
|
-
# @deprecated
|
101
|
-
# Open issue if there's a valid use case to include this in Base
|
102
|
-
def parse(source, path = nil)
|
103
|
-
ProcessedSource.new(source, target_ruby_version, path)
|
104
|
-
end
|
105
|
-
|
106
96
|
private
|
107
97
|
|
108
98
|
def begin_investigation(processed_source)
|
@@ -130,17 +120,13 @@ module RuboCop
|
|
130
120
|
|
131
121
|
return unless lambda
|
132
122
|
|
133
|
-
suppress_clobbering
|
134
|
-
lambda.call(corrector)
|
135
|
-
end
|
123
|
+
suppress_clobbering { lambda.call(corrector) }
|
136
124
|
end
|
137
125
|
|
138
126
|
def correction_lambda
|
139
127
|
return unless support_autocorrect?
|
140
128
|
|
141
|
-
dedup_on_node(@v0_argument)
|
142
|
-
autocorrect(@v0_argument)
|
143
|
-
end
|
129
|
+
dedup_on_node(@v0_argument) { autocorrect(@v0_argument) }
|
144
130
|
end
|
145
131
|
|
146
132
|
def dedup_on_node(node)
|
@@ -36,10 +36,7 @@ module RuboCop
|
|
36
36
|
# @param [Integer] size
|
37
37
|
def remove_preceding(node_or_range, size)
|
38
38
|
range = to_range(node_or_range)
|
39
|
-
to_remove = range.with(
|
40
|
-
begin_pos: range.begin_pos - size,
|
41
|
-
end_pos: range.begin_pos
|
42
|
-
)
|
39
|
+
to_remove = range.with(begin_pos: range.begin_pos - size, end_pos: range.begin_pos)
|
43
40
|
remove(to_remove)
|
44
41
|
end
|
45
42
|
|
@@ -54,8 +54,7 @@ module RuboCop
|
|
54
54
|
def inside_string_ranges(node)
|
55
55
|
return [] unless node.is_a?(Parser::AST::Node)
|
56
56
|
|
57
|
-
node.each_node(:str, :dstr, :xstr).map { |n| inside_string_range(n) }
|
58
|
-
.compact
|
57
|
+
node.each_node(:str, :dstr, :xstr).map { |n| inside_string_range(n) }.compact
|
59
58
|
end
|
60
59
|
|
61
60
|
def inside_string_range(node)
|
@@ -76,8 +75,7 @@ module RuboCop
|
|
76
75
|
def delimited_string_literal?(node)
|
77
76
|
loc = node.location
|
78
77
|
|
79
|
-
loc.respond_to?(:begin) && loc.begin &&
|
80
|
-
loc.respond_to?(:end) && loc.end
|
78
|
+
loc.respond_to?(:begin) && loc.begin && loc.respond_to?(:end) && loc.end
|
81
79
|
end
|
82
80
|
|
83
81
|
def block_comment_within?(expr)
|
@@ -89,8 +87,7 @@ module RuboCop
|
|
89
87
|
def calculate_range(expr, line_begin_pos, column_delta)
|
90
88
|
return range_between(line_begin_pos, line_begin_pos) if column_delta.positive?
|
91
89
|
|
92
|
-
starts_with_space =
|
93
|
-
expr.source_buffer.source[line_begin_pos].start_with?(' ')
|
90
|
+
starts_with_space = expr.source_buffer.source[line_begin_pos].start_with?(' ')
|
94
91
|
|
95
92
|
if starts_with_space
|
96
93
|
range_between(line_begin_pos, line_begin_pos + column_delta.abs)
|
@@ -6,8 +6,7 @@ module RuboCop
|
|
6
6
|
class EachToForCorrector
|
7
7
|
extend NodePattern::Macros
|
8
8
|
|
9
|
-
CORRECTION_WITH_ARGUMENTS =
|
10
|
-
'for %<variables>s in %<collection>s do'
|
9
|
+
CORRECTION_WITH_ARGUMENTS = 'for %<variables>s in %<collection>s do'
|
11
10
|
CORRECTION_WITHOUT_ARGUMENTS = 'for _ in %<enumerable>s do'
|
12
11
|
|
13
12
|
def initialize(block_node)
|
@@ -30,8 +29,7 @@ module RuboCop
|
|
30
29
|
collection: collection_node.source,
|
31
30
|
variables: argument_node.children.first.source)
|
32
31
|
else
|
33
|
-
format(CORRECTION_WITHOUT_ARGUMENTS,
|
34
|
-
enumerable: collection_node.source)
|
32
|
+
format(CORRECTION_WITHOUT_ARGUMENTS, enumerable: collection_node.source)
|
35
33
|
end
|
36
34
|
end
|
37
35
|
|
@@ -23,8 +23,7 @@ module RuboCop
|
|
23
23
|
attr_reader :for_node, :variable_node, :collection_node
|
24
24
|
|
25
25
|
def correction
|
26
|
-
format(CORRECTION, collection: collection_source,
|
27
|
-
argument: variable_node.source)
|
26
|
+
format(CORRECTION, collection: collection_source, argument: variable_node.source)
|
28
27
|
end
|
29
28
|
|
30
29
|
def collection_source
|
@@ -20,8 +20,7 @@ module RuboCop
|
|
20
20
|
|
21
21
|
break_line_before(range: range, node: node, corrector: corrector,
|
22
22
|
configured_width: configured_width)
|
23
|
-
move_comment(eol_comment: eol_comment, node: node,
|
24
|
-
corrector: corrector)
|
23
|
+
move_comment(eol_comment: eol_comment, node: node, corrector: corrector)
|
25
24
|
remove_semicolon(node, corrector)
|
26
25
|
end
|
27
26
|
|
@@ -29,8 +28,7 @@ module RuboCop
|
|
29
28
|
indent_steps: 1)
|
30
29
|
corrector.insert_before(
|
31
30
|
range,
|
32
|
-
"\n#{' ' * (node.loc.keyword.column +
|
33
|
-
indent_steps * configured_width)}"
|
31
|
+
"\n#{' ' * (node.loc.keyword.column + indent_steps * configured_width)}"
|
34
32
|
)
|
35
33
|
end
|
36
34
|
|
@@ -38,8 +36,7 @@ module RuboCop
|
|
38
36
|
return unless eol_comment
|
39
37
|
|
40
38
|
text = eol_comment.loc.expression.source
|
41
|
-
corrector.insert_before(node,
|
42
|
-
"#{text}\n#{' ' * node.loc.keyword.column}")
|
39
|
+
corrector.insert_before(node, "#{text}\n#{' ' * node.loc.keyword.column}")
|
43
40
|
corrector.remove(eol_comment)
|
44
41
|
end
|
45
42
|
|