rubocop 1.29.1 → 1.30.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 +1 -1
- data/config/default.yml +16 -2
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +19 -4
- data/lib/rubocop/cli/command/execute_runner.rb +1 -1
- data/lib/rubocop/cli/command/show_cops.rb +1 -1
- data/lib/rubocop/cli.rb +1 -0
- data/lib/rubocop/config_loader.rb +2 -1
- data/lib/rubocop/config_validator.rb +15 -2
- data/lib/rubocop/cop/autocorrect_logic.rb +4 -2
- data/lib/rubocop/cop/base.rb +1 -1
- data/lib/rubocop/cop/bundler/gem_filename.rb +1 -1
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/condition_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +4 -2
- data/lib/rubocop/cop/correctors/if_then_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +7 -1
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/space_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/string_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +1 -1
- data/lib/rubocop/cop/gemspec/date_assignment.rb +1 -1
- data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +77 -0
- data/lib/rubocop/cop/internal_affairs/cop_description.rb +96 -0
- data/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +1 -1
- data/lib/rubocop/cop/internal_affairs.rb +1 -0
- data/lib/rubocop/cop/layout/argument_alignment.rb +22 -1
- data/lib/rubocop/cop/layout/assignment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/block_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/block_end_newline.rb +1 -1
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/condition_position.rb +1 -1
- data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/dot_position.rb +1 -1
- data/lib/rubocop/cop/layout/else_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_comment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +1 -1
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/hash_alignment.rb +2 -0
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +1 -1
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_style.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_width.rb +8 -5
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
- data/lib/rubocop/cop/layout/leading_empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/line_length.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/redundant_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +1 -1
- data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +2 -2
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -1
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +3 -3
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +1 -1
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_range.rb +3 -3
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -1
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
- data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -1
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +1 -1
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -1
- data/lib/rubocop/cop/lint/deprecated_constants.rb +1 -1
- data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_require.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
- data/lib/rubocop/cop/lint/else_layout.rb +3 -3
- data/lib/rubocop/cop/lint/empty_block.rb +1 -1
- data/lib/rubocop/cop/lint/empty_class.rb +1 -1
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +1 -1
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
- data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
- data/lib/rubocop/cop/lint/empty_file.rb +1 -1
- data/lib/rubocop/cop/lint/empty_in_pattern.rb +1 -1
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/empty_when.rb +1 -1
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
- data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
- data/lib/rubocop/cop/lint/float_comparison.rb +1 -1
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -1
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
- data/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +1 -1
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -1
- data/lib/rubocop/cop/lint/interpolation_check.rb +1 -1
- data/lib/rubocop/cop/lint/lambda_without_literal_block.rb +2 -2
- data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/loop.rb +1 -1
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +1 -1
- data/lib/rubocop/cop/lint/missing_super.rb +1 -1
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +1 -1
- data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +2 -3
- data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -1
- data/lib/rubocop/cop/lint/rand_one.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +3 -0
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +3 -3
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -1
- data/lib/rubocop/cop/lint/refinement_import_methods.rb +1 -1
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -1
- data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -1
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +3 -0
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +1 -1
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
- data/lib/rubocop/cop/lint/script_permission.rb +1 -1
- data/lib/rubocop/cop/lint/self_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -1
- data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -1
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -1
- data/lib/rubocop/cop/lint/suppressed_exception.rb +1 -1
- data/lib/rubocop/cop/lint/symbol_conversion.rb +1 -1
- data/lib/rubocop/cop/lint/syntax.rb +1 -1
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +1 -1
- data/lib/rubocop/cop/lint/to_json.rb +1 -1
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -1
- data/lib/rubocop/cop/lint/triple_quotes.rb +1 -1
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -1
- data/lib/rubocop/cop/lint/unexpected_block_arity.rb +1 -1
- data/lib/rubocop/cop/lint/unified_integer.rb +3 -1
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -1
- data/lib/rubocop/cop/lint/unused_block_argument.rb +1 -1
- data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -1
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +1 -1
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +1 -1
- data/lib/rubocop/cop/lint/useless_setter_call.rb +2 -2
- data/lib/rubocop/cop/lint/useless_times.rb +1 -1
- data/lib/rubocop/cop/lint/void.rb +1 -1
- data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
- data/lib/rubocop/cop/metrics/block_length.rb +1 -1
- data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
- data/lib/rubocop/cop/metrics/class_length.rb +1 -1
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/method_length.rb +1 -1
- data/lib/rubocop/cop/metrics/module_length.rb +1 -1
- data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +7 -2
- data/lib/rubocop/cop/mixin/string_help.rb +1 -1
- data/lib/rubocop/cop/naming/accessor_method_name.rb +1 -1
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/block_forwarding.rb +2 -2
- data/lib/rubocop/cop/naming/block_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +1 -1
- data/lib/rubocop/cop/naming/file_name.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/method_name.rb +1 -1
- data/lib/rubocop/cop/naming/method_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/predicate_name.rb +1 -1
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/variable_number.rb +1 -1
- data/lib/rubocop/cop/security/compound_hash.rb +1 -1
- data/lib/rubocop/cop/security/eval.rb +1 -1
- data/lib/rubocop/cop/security/json_load.rb +1 -1
- data/lib/rubocop/cop/security/marshal_load.rb +1 -1
- data/lib/rubocop/cop/security/open.rb +1 -1
- data/lib/rubocop/cop/security/yaml_load.rb +1 -1
- data/lib/rubocop/cop/style/accessor_grouping.rb +3 -3
- data/lib/rubocop/cop/style/alias.rb +1 -1
- data/lib/rubocop/cop/style/and_or.rb +3 -3
- data/lib/rubocop/cop/style/array_coercion.rb +1 -1
- data/lib/rubocop/cop/style/array_join.rb +1 -1
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/attr.rb +1 -1
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
- data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +1 -1
- data/lib/rubocop/cop/style/case_equality.rb +1 -1
- data/lib/rubocop/cop/style/case_like_if.rb +1 -1
- data/lib/rubocop/cop/style/class_and_module_children.rb +1 -1
- data/lib/rubocop/cop/style/class_check.rb +1 -1
- data/lib/rubocop/cop/style/class_equality_comparison.rb +1 -1
- data/lib/rubocop/cop/style/class_methods.rb +1 -1
- data/lib/rubocop/cop/style/class_methods_definitions.rb +1 -1
- data/lib/rubocop/cop/style/class_vars.rb +1 -1
- data/lib/rubocop/cop/style/collection_compact.rb +1 -1
- data/lib/rubocop/cop/style/collection_methods.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/combinable_loops.rb +1 -1
- data/lib/rubocop/cop/style/command_literal.rb +1 -1
- data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
- data/lib/rubocop/cop/style/commented_keyword.rb +3 -3
- data/lib/rubocop/cop/style/conditional_assignment.rb +1 -1
- data/lib/rubocop/cop/style/constant_visibility.rb +1 -1
- data/lib/rubocop/cop/style/date_time.rb +1 -1
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/dir.rb +4 -1
- data/lib/rubocop/cop/style/documentation.rb +1 -1
- data/lib/rubocop/cop/style/documentation_method.rb +1 -1
- data/lib/rubocop/cop/style/double_negation.rb +1 -1
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
- data/lib/rubocop/cop/style/each_with_object.rb +1 -1
- data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
- data/lib/rubocop/cop/style/empty_case_condition.rb +1 -1
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
- data/lib/rubocop/cop/style/empty_literal.rb +1 -1
- data/lib/rubocop/cop/style/empty_method.rb +1 -1
- data/lib/rubocop/cop/style/encoding.rb +1 -1
- data/lib/rubocop/cop/style/end_block.rb +1 -1
- data/lib/rubocop/cop/style/endless_method.rb +1 -1
- data/lib/rubocop/cop/style/env_home.rb +1 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
- data/lib/rubocop/cop/style/even_odd.rb +1 -1
- data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -1
- data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -1
- data/lib/rubocop/cop/style/exponential_notation.rb +1 -1
- data/lib/rubocop/cop/style/fetch_env_var.rb +56 -83
- data/lib/rubocop/cop/style/float_division.rb +1 -1
- data/lib/rubocop/cop/style/for.rb +1 -1
- data/lib/rubocop/cop/style/format_string.rb +1 -1
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +5 -2
- data/lib/rubocop/cop/style/global_std_stream.rb +1 -1
- data/lib/rubocop/cop/style/global_vars.rb +1 -1
- data/lib/rubocop/cop/style/guard_clause.rb +1 -1
- data/lib/rubocop/cop/style/hash_conversion.rb +1 -1
- data/lib/rubocop/cop/style/hash_each_methods.rb +1 -1
- data/lib/rubocop/cop/style/hash_except.rb +1 -1
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -1
- data/lib/rubocop/cop/style/hash_syntax.rb +1 -1
- data/lib/rubocop/cop/style/hash_transform_keys.rb +6 -1
- data/lib/rubocop/cop/style/hash_transform_values.rb +4 -1
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +2 -2
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +2 -2
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -1
- data/lib/rubocop/cop/style/in_pattern_then.rb +1 -1
- data/lib/rubocop/cop/style/inline_comment.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +2 -2
- data/lib/rubocop/cop/style/ip_addresses.rb +1 -1
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +1 -1
- data/lib/rubocop/cop/style/lambda.rb +1 -1
- data/lib/rubocop/cop/style/lambda_call.rb +1 -1
- data/lib/rubocop/cop/style/line_end_concatenation.rb +1 -1
- data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +136 -0
- data/lib/rubocop/cop/style/map_to_hash.rb +2 -2
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +1 -1
- data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/min_max.rb +1 -1
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
- data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
- data/lib/rubocop/cop/style/module_function.rb +1 -1
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
- data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +1 -1
- data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +2 -2
- data/lib/rubocop/cop/style/multiline_when_then.rb +1 -1
- data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +1 -1
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -1
- data/lib/rubocop/cop/style/nested_file_dirname.rb +1 -1
- data/lib/rubocop/cop/style/nested_modifier.rb +1 -1
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +1 -1
- data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
- data/lib/rubocop/cop/style/nil_lambda.rb +1 -1
- data/lib/rubocop/cop/style/non_nil_check.rb +1 -1
- data/lib/rubocop/cop/style/not.rb +1 -1
- data/lib/rubocop/cop/style/numbered_parameters.rb +1 -1
- data/lib/rubocop/cop/style/numbered_parameters_limit.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literals.rb +1 -1
- data/lib/rubocop/cop/style/numeric_predicate.rb +10 -2
- data/lib/rubocop/cop/style/object_then.rb +1 -1
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -1
- data/lib/rubocop/cop/style/open_struct_use.rb +1 -1
- data/lib/rubocop/cop/style/option_hash.rb +1 -1
- data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
- data/lib/rubocop/cop/style/optional_boolean_parameter.rb +1 -1
- data/lib/rubocop/cop/style/or_assignment.rb +1 -1
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +1 -1
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
- data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -1
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +1 -1
- data/lib/rubocop/cop/style/random_with_offset.rb +1 -1
- data/lib/rubocop/cop/style/redundant_argument.rb +1 -1
- data/lib/rubocop/cop/style/redundant_assignment.rb +1 -1
- data/lib/rubocop/cop/style/redundant_begin.rb +17 -6
- data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -1
- data/lib/rubocop/cop/style/redundant_condition.rb +9 -5
- data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
- data/lib/rubocop/cop/style/redundant_exception.rb +1 -1
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +1 -1
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
- data/lib/rubocop/cop/style/redundant_interpolation.rb +22 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -1
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +2 -2
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -1
- data/lib/rubocop/cop/style/redundant_return.rb +1 -1
- data/lib/rubocop/cop/style/redundant_self.rb +1 -1
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +1 -1
- data/lib/rubocop/cop/style/redundant_sort.rb +1 -1
- data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -1
- data/lib/rubocop/cop/style/regexp_literal.rb +1 -1
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
- data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -3
- data/lib/rubocop/cop/style/return_nil.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +1 -1
- data/lib/rubocop/cop/style/sample.rb +1 -1
- data/lib/rubocop/cop/style/select_by_regexp.rb +1 -1
- data/lib/rubocop/cop/style/self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/semicolon.rb +1 -1
- data/lib/rubocop/cop/style/send.rb +1 -1
- data/lib/rubocop/cop/style/signal_exception.rb +1 -1
- data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
- data/lib/rubocop/cop/style/single_line_methods.rb +2 -2
- data/lib/rubocop/cop/style/slicing_with_range.rb +1 -1
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +26 -7
- data/lib/rubocop/cop/style/static_class.rb +1 -1
- data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
- data/lib/rubocop/cop/style/string_concatenation.rb +1 -1
- data/lib/rubocop/cop/style/string_hash_keys.rb +1 -1
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/string_methods.rb +1 -1
- data/lib/rubocop/cop/style/strip.rb +1 -1
- data/lib/rubocop/cop/style/struct_inheritance.rb +2 -2
- data/lib/rubocop/cop/style/swap_values.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +6 -2
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
- data/lib/rubocop/cop/style/symbol_proc.rb +3 -3
- data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +1 -1
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +1 -1
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +1 -1
- data/lib/rubocop/cop/style/trivial_accessors.rb +1 -1
- data/lib/rubocop/cop/style/unless_else.rb +1 -1
- data/lib/rubocop/cop/style/unless_logical_operators.rb +1 -1
- data/lib/rubocop/cop/style/unpack_first.rb +4 -1
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +1 -1
- data/lib/rubocop/cop/style/word_array.rb +1 -1
- data/lib/rubocop/cop/style/yoda_condition.rb +1 -1
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -1
- data/lib/rubocop/cop/team.rb +2 -2
- data/lib/rubocop/cop/util.rb +1 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +2 -2
- data/lib/rubocop/formatter/markdown_formatter.rb +2 -0
- data/lib/rubocop/formatter/simple_text_formatter.rb +4 -2
- data/lib/rubocop/magic_comment.rb +27 -2
- data/lib/rubocop/options.rb +60 -38
- data/lib/rubocop/rake_task.rb +3 -3
- data/lib/rubocop/result_cache.rb +2 -1
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +3 -3
- data/lib/rubocop/rspec/shared_contexts.rb +20 -0
- data/lib/rubocop/runner.rb +3 -3
- data/lib/rubocop/target_ruby.rb +7 -5
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +2 -0
- metadata +8 -5
data/lib/rubocop/options.rb
CHANGED
@@ -80,7 +80,7 @@ module RuboCop
|
|
80
80
|
option(opts, '-x', '--fix-layout') do
|
81
81
|
@options[:only] ||= []
|
82
82
|
@options[:only] << 'Layout'
|
83
|
-
@options[:
|
83
|
+
@options[:autocorrect] = true
|
84
84
|
end
|
85
85
|
option(opts, '--safe')
|
86
86
|
add_cop_selection_csv_option('except', opts)
|
@@ -93,6 +93,7 @@ module RuboCop
|
|
93
93
|
option(opts, '--force-exclusion')
|
94
94
|
option(opts, '--only-recognized-file-types')
|
95
95
|
option(opts, '--ignore-parent-exclusion')
|
96
|
+
option(opts, '--ignore-unrecognized-cops')
|
96
97
|
option(opts, '--force-default-config')
|
97
98
|
option(opts, '-s', '--stdin FILE')
|
98
99
|
option(opts, '-P', '--[no-]parallel')
|
@@ -128,14 +129,30 @@ module RuboCop
|
|
128
129
|
end
|
129
130
|
end
|
130
131
|
|
131
|
-
|
132
|
-
|
133
|
-
|
132
|
+
# the autocorrect command-line arguments map to the autocorrect @options values like so:
|
133
|
+
# :fix_layout :autocorrect :safe_autocorrect :autocorrect_all
|
134
|
+
# -x, --fix-layout true true - -
|
135
|
+
# -a, --auto-correct - true true -
|
136
|
+
# --safe-auto-correct - true true -
|
137
|
+
# -A, --auto-correct-all - true - true
|
138
|
+
def add_autocorrection_options(opts) # rubocop:disable Metrics/MethodLength
|
139
|
+
section(opts, 'Autocorrection') do
|
140
|
+
option(opts, '-a', '--autocorrect') { @options[:safe_autocorrect] = true }
|
141
|
+
option(opts, '--auto-correct') do
|
142
|
+
handle_deprecated_option('--auto-correct', '--autocorrect')
|
143
|
+
@options[:safe_autocorrect] = true
|
144
|
+
end
|
134
145
|
option(opts, '--safe-auto-correct') do
|
135
|
-
|
136
|
-
@options[:
|
146
|
+
handle_deprecated_option('--safe-auto-correct', '--autocorrect')
|
147
|
+
@options[:safe_autocorrect] = true
|
148
|
+
end
|
149
|
+
|
150
|
+
option(opts, '-A', '--autocorrect-all') { @options[:autocorrect] = true }
|
151
|
+
option(opts, '--auto-correct-all') do
|
152
|
+
handle_deprecated_option('--auto-correct-all', '--autocorrect-all')
|
153
|
+
@options[:autocorrect] = true
|
137
154
|
end
|
138
|
-
|
155
|
+
|
139
156
|
option(opts, '--disable-uncorrectable')
|
140
157
|
end
|
141
158
|
end
|
@@ -208,6 +225,11 @@ module RuboCop
|
|
208
225
|
end
|
209
226
|
end
|
210
227
|
|
228
|
+
def handle_deprecated_option(old_option, new_option)
|
229
|
+
warn "#{old_option} is deprecated; use #{new_option}"
|
230
|
+
@options[long_opt_symbol([new_option])] = @options.delete(long_opt_symbol([old_option]))
|
231
|
+
end
|
232
|
+
|
211
233
|
def rainbow
|
212
234
|
@rainbow ||= begin
|
213
235
|
rainbow = Rainbow.new
|
@@ -236,7 +258,7 @@ module RuboCop
|
|
236
258
|
end
|
237
259
|
|
238
260
|
# Finds the option in `args` starting with -- and converts it to a symbol,
|
239
|
-
# e.g. [..., '--
|
261
|
+
# e.g. [..., '--autocorrect', ...] to :autocorrect.
|
240
262
|
def long_opt_symbol(args)
|
241
263
|
long_opt = args.find { |arg| arg.start_with?('--') }
|
242
264
|
long_opt[2..].sub('[no-]', '').sub(/ .*/, '').tr('-', '_').gsub(/[\[\]]/, '').to_sym
|
@@ -309,15 +331,14 @@ module RuboCop
|
|
309
331
|
end
|
310
332
|
|
311
333
|
if display_only_fail_level_offenses_with_autocorrect?
|
312
|
-
raise OptionArgumentError, '--
|
313
|
-
'--display-only-fail-level-offenses'
|
334
|
+
raise OptionArgumentError, '--autocorrect cannot be used with ' \
|
335
|
+
'--display-only-fail-level-offenses.'
|
314
336
|
end
|
315
|
-
|
316
337
|
validate_auto_gen_config
|
317
|
-
|
338
|
+
validate_autocorrect
|
318
339
|
validate_display_only_failed
|
319
340
|
validate_display_only_failed_and_display_only_correctable
|
320
|
-
|
341
|
+
validate_display_only_correctable_and_autocorrect
|
321
342
|
disable_parallel_when_invalid_option_combo
|
322
343
|
|
323
344
|
return if incompatible_options.size <= 1
|
@@ -347,13 +368,13 @@ module RuboCop
|
|
347
368
|
format('--display-only-failed can only be used together with --format junit.')
|
348
369
|
end
|
349
370
|
|
350
|
-
def
|
351
|
-
return
|
371
|
+
def validate_display_only_correctable_and_autocorrect
|
372
|
+
return unless @options.key?(:autocorrect)
|
352
373
|
return if !@options.key?(:display_only_correctable) &&
|
353
374
|
!@options.key?(:display_only_safe_correctable)
|
354
375
|
|
355
376
|
raise OptionArgumentError,
|
356
|
-
'--
|
377
|
+
'--autocorrect cannot be used with --display-only-[safe-]correctable.'
|
357
378
|
end
|
358
379
|
|
359
380
|
def validate_display_only_failed_and_display_only_correctable
|
@@ -365,35 +386,34 @@ module RuboCop
|
|
365
386
|
format('--display-only-failed cannot be used together with other display options.')
|
366
387
|
end
|
367
388
|
|
368
|
-
def
|
369
|
-
return if @options.key?(:
|
389
|
+
def validate_autocorrect
|
390
|
+
return if @options.key?(:autocorrect)
|
370
391
|
return unless @options.key?(:disable_uncorrectable)
|
371
392
|
|
372
393
|
raise OptionArgumentError,
|
373
|
-
format('--disable-uncorrectable can only be used together with --
|
394
|
+
format('--disable-uncorrectable can only be used together with --autocorrect.')
|
374
395
|
end
|
375
396
|
|
376
397
|
def disable_parallel_when_invalid_option_combo
|
377
398
|
return unless @options.key?(:parallel)
|
378
399
|
|
379
|
-
|
380
|
-
{ name: :auto_gen_config, value: true, flag: '--auto-gen-config' },
|
381
|
-
{ name: :fail_fast, value: true, flag: '-F/--fail-fast.' },
|
382
|
-
{ name: :auto_correct, value: true, flag: '--auto-correct.' },
|
383
|
-
{ name: :cache, value: 'false', flag: '--cache false' }
|
384
|
-
]
|
385
|
-
|
386
|
-
invalid_flags = invalid_options.each_with_object([]) do |option, flags|
|
387
|
-
# `>` rather than `>=` because `@options` will also contain `parallel: true`
|
388
|
-
flags << option[:flag] if @options > { option[:name] => option[:value] }
|
389
|
-
end
|
400
|
+
invalid_flags = invalid_arguments_for_parallel
|
390
401
|
|
391
402
|
return if invalid_flags.empty?
|
392
403
|
|
393
404
|
@options.delete(:parallel)
|
394
405
|
|
395
406
|
puts '-P/--parallel is being ignored because ' \
|
396
|
-
"it is not compatible with #{invalid_flags.join(', ')}"
|
407
|
+
"it is not compatible with #{invalid_flags.join(', ')}."
|
408
|
+
end
|
409
|
+
|
410
|
+
def invalid_arguments_for_parallel
|
411
|
+
[('--auto-gen-config' if @options.key?(:auto_gen_config)),
|
412
|
+
('-F/--fail-fast' if @options.key?(:fail_fast)),
|
413
|
+
('-x/--fix-layout' if @options.key?(:fix_layout)),
|
414
|
+
('-a/--autocorrect' if @options.key?(:safe_autocorrect)),
|
415
|
+
('-A/--autocorrect-all' if @options.key?(:autocorrect_all)),
|
416
|
+
('--cache false' if @options > { cache: 'false' })].compact
|
397
417
|
end
|
398
418
|
|
399
419
|
def only_includes_redundant_disable?
|
@@ -402,8 +422,7 @@ module RuboCop
|
|
402
422
|
end
|
403
423
|
|
404
424
|
def display_only_fail_level_offenses_with_autocorrect?
|
405
|
-
@options
|
406
|
-
(@options.key?(:auto_correct) || @options.key?(:safe_auto_correct))
|
425
|
+
@options.key?(:display_only_fail_level_offenses) && @options.key?(:autocorrect)
|
407
426
|
end
|
408
427
|
|
409
428
|
def except_syntax?
|
@@ -465,7 +484,7 @@ module RuboCop
|
|
465
484
|
exclude_limit: ['Set the limit for how many files to explicitly exclude.',
|
466
485
|
'If there are more files than the limit, the cop will',
|
467
486
|
"be disabled instead. Default is #{MAX_EXCL}."],
|
468
|
-
disable_uncorrectable: ['Used with --
|
487
|
+
disable_uncorrectable: ['Used with --autocorrect to annotate any',
|
469
488
|
'offenses that do not support autocorrect',
|
470
489
|
'with `rubocop:todo` comments.'],
|
471
490
|
force_exclusion: ['Any files excluded by `Exclude` in configuration',
|
@@ -478,6 +497,7 @@ module RuboCop
|
|
478
497
|
'by a `rubocop:disable` directive.'],
|
479
498
|
ignore_parent_exclusion: ['Prevent from inheriting `AllCops/Exclude` from',
|
480
499
|
'parent folders.'],
|
500
|
+
ignore_unrecognized_cops: ['Ignore unrecognized cops or departments in the config.'],
|
481
501
|
force_default_config: ['Use default configuration even if configuration',
|
482
502
|
'files are present in the directory tree.'],
|
483
503
|
format: ['Choose an output formatter. This option',
|
@@ -534,12 +554,14 @@ module RuboCop
|
|
534
554
|
safe: 'Run only safe cops.',
|
535
555
|
stderr: ['Write all output to stderr except for the',
|
536
556
|
'autocorrected source. This is especially useful',
|
537
|
-
'when combined with --
|
557
|
+
'when combined with --autocorrect and --stdin.'],
|
538
558
|
list_target_files: 'List all files RuboCop will inspect.',
|
539
|
-
|
559
|
+
autocorrect: 'Autocorrect offenses (only when it\'s safe).',
|
560
|
+
auto_correct: '(same, deprecated)',
|
540
561
|
safe_auto_correct: '(same, deprecated)',
|
541
|
-
|
542
|
-
|
562
|
+
autocorrect_all: 'Autocorrect offenses (safe and unsafe).',
|
563
|
+
auto_correct_all: '(same, deprecated)',
|
564
|
+
fix_layout: 'Run only layout cops, with autocorrect on.',
|
543
565
|
color: 'Force color output on or off.',
|
544
566
|
version: 'Display version.',
|
545
567
|
verbose_version: 'Display verbose version.',
|
data/lib/rubocop/rake_task.rb
CHANGED
@@ -62,15 +62,15 @@ module RuboCop
|
|
62
62
|
|
63
63
|
def setup_subtasks(name, *args, &task_block)
|
64
64
|
namespace(name) do
|
65
|
-
desc '
|
65
|
+
desc 'Autocorrect RuboCop offenses'
|
66
66
|
|
67
67
|
task(:auto_correct, *args) do |_, task_args|
|
68
68
|
RakeFileUtils.verbose(verbose) do
|
69
69
|
yield(*[self, task_args].slice(0, task_block.arity)) if task_block
|
70
|
-
options = full_options.unshift('--
|
70
|
+
options = full_options.unshift('--autocorrect-all')
|
71
71
|
# `parallel` will automatically be removed from the options internally.
|
72
72
|
# This is a nice to have to suppress the warning message
|
73
|
-
# about parallel and
|
73
|
+
# about --parallel and --autocorrect not being compatible.
|
74
74
|
options.delete('--parallel')
|
75
75
|
run_cli(verbose, options)
|
76
76
|
end
|
data/lib/rubocop/result_cache.rb
CHANGED
@@ -9,7 +9,8 @@ module RuboCop
|
|
9
9
|
# Provides functionality for caching RuboCop runs.
|
10
10
|
# @api private
|
11
11
|
class ResultCache
|
12
|
-
NON_CHANGING = %i[color format formatters out debug fail_level
|
12
|
+
NON_CHANGING = %i[color format formatters out debug fail_level
|
13
|
+
fix_layout autocorrect safe_autocorrect autocorrect_all
|
13
14
|
cache fail_fast stdin parallel].freeze
|
14
15
|
|
15
16
|
# Remove old files so that the cache doesn't grow too big. When the
|
@@ -38,7 +38,7 @@ module CopHelper
|
|
38
38
|
def autocorrect_source(source, file = nil)
|
39
39
|
RuboCop::Formatter::DisabledConfigFormatter.config_to_allow_offenses = {}
|
40
40
|
RuboCop::Formatter::DisabledConfigFormatter.detected_styles = {}
|
41
|
-
cop.instance_variable_get(:@options)[:
|
41
|
+
cop.instance_variable_get(:@options)[:autocorrect] = true
|
42
42
|
processed_source = parse_source(source, file)
|
43
43
|
_investigate(cop, processed_source)
|
44
44
|
|
@@ -38,7 +38,7 @@ module RuboCop
|
|
38
38
|
# 'Avoid chaining a method call on a do...end block.'
|
39
39
|
# )
|
40
40
|
#
|
41
|
-
#
|
41
|
+
# Autocorrection can be tested using `expect_correction` after
|
42
42
|
# `expect_offense`.
|
43
43
|
#
|
44
44
|
# @example `expect_offense` and `expect_correction`
|
@@ -58,7 +58,7 @@ module RuboCop
|
|
58
58
|
# that there were no offenses. The `expect_offense` method has
|
59
59
|
# to do more work by parsing out lines that contain carets.
|
60
60
|
#
|
61
|
-
# If the code produces an offense that could not be
|
61
|
+
# If the code produces an offense that could not be autocorrected, you can
|
62
62
|
# use `expect_no_corrections` after `expect_offense`.
|
63
63
|
#
|
64
64
|
# @example `expect_offense` and `expect_no_corrections`
|
@@ -205,7 +205,7 @@ module RuboCop
|
|
205
205
|
def set_formatter_options
|
206
206
|
RuboCop::Formatter::DisabledConfigFormatter.config_to_allow_offenses = {}
|
207
207
|
RuboCop::Formatter::DisabledConfigFormatter.detected_styles = {}
|
208
|
-
cop.instance_variable_get(:@options)[:
|
208
|
+
cop.instance_variable_get(:@options)[:autocorrect] = true
|
209
209
|
end
|
210
210
|
|
211
211
|
# Parsed representation of code annotated with the `^^^ Message` style
|
@@ -116,6 +116,26 @@ RSpec.shared_context 'mock console output' do
|
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
|
+
RSpec.shared_context 'ruby 2.0', :ruby20 do
|
120
|
+
let(:ruby_version) { 2.0 }
|
121
|
+
end
|
122
|
+
|
123
|
+
RSpec.shared_context 'ruby 2.1', :ruby21 do
|
124
|
+
let(:ruby_version) { 2.1 }
|
125
|
+
end
|
126
|
+
|
127
|
+
RSpec.shared_context 'ruby 2.2', :ruby22 do
|
128
|
+
let(:ruby_version) { 2.2 }
|
129
|
+
end
|
130
|
+
|
131
|
+
RSpec.shared_context 'ruby 2.3', :ruby23 do
|
132
|
+
let(:ruby_version) { 2.3 }
|
133
|
+
end
|
134
|
+
|
135
|
+
RSpec.shared_context 'ruby 2.4', :ruby24 do
|
136
|
+
let(:ruby_version) { 2.4 }
|
137
|
+
end
|
138
|
+
|
119
139
|
RSpec.shared_context 'ruby 2.5', :ruby25 do
|
120
140
|
let(:ruby_version) { 2.5 }
|
121
141
|
end
|
data/lib/rubocop/runner.rb
CHANGED
@@ -143,10 +143,10 @@ module RuboCop
|
|
143
143
|
|
144
144
|
if cache&.valid?
|
145
145
|
offenses = cache.load
|
146
|
-
# If we're running --
|
146
|
+
# If we're running --autocorrect and the cache says there are
|
147
147
|
# offenses, we need to actually inspect the file. If the cache shows no
|
148
148
|
# offenses, we're good.
|
149
|
-
real_run_needed = @options[:
|
149
|
+
real_run_needed = @options[:autocorrect] && offenses.any?
|
150
150
|
else
|
151
151
|
real_run_needed = true
|
152
152
|
end
|
@@ -240,7 +240,7 @@ module RuboCop
|
|
240
240
|
# error message.
|
241
241
|
offenses_by_iteration = []
|
242
242
|
|
243
|
-
# When running with --
|
243
|
+
# When running with --autocorrect, we need to inspect the file (which
|
244
244
|
# includes writing a corrected version of it) until no more corrections
|
245
245
|
# are made. This is because automatic corrections can introduce new
|
246
246
|
# offenses. In the normal case the loop is only executed once.
|
data/lib/rubocop/target_ruby.rb
CHANGED
@@ -4,8 +4,8 @@ module RuboCop
|
|
4
4
|
# The kind of Ruby that code inspected by RuboCop is written in.
|
5
5
|
# @api private
|
6
6
|
class TargetRuby
|
7
|
-
KNOWN_RUBIES = [2.5, 2.6, 2.7, 3.0, 3.1, 3.2].freeze
|
8
|
-
DEFAULT_VERSION =
|
7
|
+
KNOWN_RUBIES = [2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2].freeze
|
8
|
+
DEFAULT_VERSION = 2.6
|
9
9
|
|
10
10
|
OBSOLETE_RUBIES = {
|
11
11
|
1.9 => '0.41',
|
@@ -172,7 +172,7 @@ module RuboCop
|
|
172
172
|
right_hand_side = version_from_gemspec_file(file)
|
173
173
|
return if right_hand_side.nil?
|
174
174
|
|
175
|
-
|
175
|
+
find_default_minimal_known_ruby(right_hand_side)
|
176
176
|
end
|
177
177
|
|
178
178
|
def gemspec_filename
|
@@ -206,11 +206,13 @@ module RuboCop
|
|
206
206
|
array.children.map(&:value)
|
207
207
|
end
|
208
208
|
|
209
|
-
def
|
209
|
+
def find_default_minimal_known_ruby(right_hand_side)
|
210
210
|
version = version_from_right_hand_side(right_hand_side)
|
211
211
|
requirement = Gem::Requirement.new(version)
|
212
212
|
|
213
|
-
KNOWN_RUBIES.detect
|
213
|
+
KNOWN_RUBIES.detect do |v|
|
214
|
+
v >= DEFAULT_VERSION && requirement.satisfied_by?(Gem::Version.new("#{v}.99"))
|
215
|
+
end
|
214
216
|
end
|
215
217
|
end
|
216
218
|
|
data/lib/rubocop/version.rb
CHANGED
data/lib/rubocop.rb
CHANGED
@@ -162,6 +162,7 @@ require_relative 'rubocop/cop/bundler/ordered_gems'
|
|
162
162
|
|
163
163
|
require_relative 'rubocop/cop/gemspec/date_assignment'
|
164
164
|
require_relative 'rubocop/cop/gemspec/dependency_version'
|
165
|
+
require_relative 'rubocop/cop/gemspec/deprecated_attribute_assignment'
|
165
166
|
require_relative 'rubocop/cop/gemspec/duplicated_assignment'
|
166
167
|
require_relative 'rubocop/cop/gemspec/ordered_dependencies'
|
167
168
|
require_relative 'rubocop/cop/gemspec/require_mfa'
|
@@ -535,6 +536,7 @@ require_relative 'rubocop/cop/style/redundant_self_assignment'
|
|
535
536
|
require_relative 'rubocop/cop/style/redundant_self_assignment_branch'
|
536
537
|
require_relative 'rubocop/cop/style/sole_nested_conditional'
|
537
538
|
require_relative 'rubocop/cop/style/static_class'
|
539
|
+
require_relative 'rubocop/cop/style/map_compact_with_conditional_block'
|
538
540
|
require_relative 'rubocop/cop/style/method_called_on_do_end_block'
|
539
541
|
require_relative 'rubocop/cop/style/method_def_parentheses'
|
540
542
|
require_relative 'rubocop/cop/style/min_max'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-05-
|
13
|
+
date: 2022-05-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: parallel
|
@@ -106,7 +106,7 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.
|
109
|
+
version: 1.18.0
|
110
110
|
- - "<"
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '2.0'
|
@@ -116,7 +116,7 @@ dependencies:
|
|
116
116
|
requirements:
|
117
117
|
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 1.
|
119
|
+
version: 1.18.0
|
120
120
|
- - "<"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '2.0'
|
@@ -257,6 +257,7 @@ files:
|
|
257
257
|
- lib/rubocop/cop/force.rb
|
258
258
|
- lib/rubocop/cop/gemspec/date_assignment.rb
|
259
259
|
- lib/rubocop/cop/gemspec/dependency_version.rb
|
260
|
+
- lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb
|
260
261
|
- lib/rubocop/cop/gemspec/duplicated_assignment.rb
|
261
262
|
- lib/rubocop/cop/gemspec/ordered_dependencies.rb
|
262
263
|
- lib/rubocop/cop/gemspec/require_mfa.rb
|
@@ -267,6 +268,7 @@ files:
|
|
267
268
|
- lib/rubocop/cop/generator/require_file_injector.rb
|
268
269
|
- lib/rubocop/cop/ignored_node.rb
|
269
270
|
- lib/rubocop/cop/internal_affairs.rb
|
271
|
+
- lib/rubocop/cop/internal_affairs/cop_description.rb
|
270
272
|
- lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb
|
271
273
|
- lib/rubocop/cop/internal_affairs/example_description.rb
|
272
274
|
- lib/rubocop/cop/internal_affairs/inherit_deprecated_cop_class.rb
|
@@ -722,6 +724,7 @@ files:
|
|
722
724
|
- lib/rubocop/cop/style/lambda.rb
|
723
725
|
- lib/rubocop/cop/style/lambda_call.rb
|
724
726
|
- lib/rubocop/cop/style/line_end_concatenation.rb
|
727
|
+
- lib/rubocop/cop/style/map_compact_with_conditional_block.rb
|
725
728
|
- lib/rubocop/cop/style/map_to_hash.rb
|
726
729
|
- lib/rubocop/cop/style/method_call_with_args_parentheses.rb
|
727
730
|
- lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb
|
@@ -927,7 +930,7 @@ metadata:
|
|
927
930
|
homepage_uri: https://rubocop.org/
|
928
931
|
changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
|
929
932
|
source_code_uri: https://github.com/rubocop/rubocop/
|
930
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
933
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.30/
|
931
934
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|
932
935
|
rubygems_mfa_required: 'true'
|
933
936
|
post_install_message:
|