rubocop 1.29.0 → 1.30.1
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 +4 -2
- data/config/default.yml +31 -17
- 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 +19 -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 +5 -5
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +10 -10
- 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 +10 -10
- 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 +28 -28
- 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_array_literal_brackets.rb +10 -10
- 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 +8 -8
- 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/erb_new_arguments.rb +3 -0
- 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_deterministic_require_order.rb +4 -4
- 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 +4 -2
- 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/inclusive_language.rb +3 -2
- 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 +18 -18
- 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 +11 -11
- 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_else.rb +10 -10
- 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 +64 -82
- 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 +5 -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_else.rb +24 -24
- 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 +4 -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 +38 -7
- 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 +13 -13
- data/lib/rubocop/cop/style/return_nil.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +4 -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 +4 -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 +6 -7
- 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/cops_documentation_generator.rb +18 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +10 -7
- 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 +24 -0
- data/lib/rubocop/runner.rb +5 -5
- data/lib/rubocop/target_ruby.rb +7 -5
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +2 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86a53f724e77a824d22b44ec21ac28819f73e5766ffcc5734b1908edda92d37d
|
4
|
+
data.tar.gz: 924864c8350f97c98bea2f25420d1adda3f6595474baced2edec3b409302c413
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8b462b23760d3f4a51c0a94dfa01c0b43c0715255b65d58883fd8b67f6841d5d8384c367d3711d68ba6f8f4d72fac1533fdaa33d817986434c185a5c6574f13
|
7
|
+
data.tar.gz: 3751cee1ebfd9d5968f6510d1440675286bbcb5a4f20c9bebb1cdd916ac70a07d4fd8f111352c10fa90ec546bfa36dc2cdae413b25bd24afcf62ed54db7c78a3
|
data/README.md
CHANGED
@@ -53,7 +53,7 @@ To prevent an unwanted RuboCop update you might want to use a conservative versi
|
|
53
53
|
in your `Gemfile`:
|
54
54
|
|
55
55
|
```rb
|
56
|
-
gem 'rubocop', '~> 1.
|
56
|
+
gem 'rubocop', '~> 1.30', require: false
|
57
57
|
```
|
58
58
|
|
59
59
|
See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
|
@@ -73,11 +73,13 @@ You can read a lot more about RuboCop in its [official docs](https://docs.ruboco
|
|
73
73
|
|
74
74
|
## Compatibility
|
75
75
|
|
76
|
-
RuboCop officially supports the following Ruby implementations:
|
76
|
+
RuboCop officially supports the following runtime Ruby implementations:
|
77
77
|
|
78
78
|
* MRI 2.6+
|
79
79
|
* JRuby 9.3+
|
80
80
|
|
81
|
+
Targets Ruby 2.0+ code analysis.
|
82
|
+
|
81
83
|
See the [compatibility documentation](https://docs.rubocop.org/rubocop/compatibility.html) for further details.
|
82
84
|
|
83
85
|
## Readme Badge
|
data/config/default.yml
CHANGED
@@ -254,6 +254,13 @@ Gemspec/DependencyVersion:
|
|
254
254
|
- '**/*.gemspec'
|
255
255
|
AllowedGems: []
|
256
256
|
|
257
|
+
Gemspec/DeprecatedAttributeAssignment:
|
258
|
+
Description: Checks that deprecated attribute assignments are not set in a gemspec file.
|
259
|
+
Enabled: pending
|
260
|
+
VersionAdded: '1.30'
|
261
|
+
Include:
|
262
|
+
- '**/*.gemspec'
|
263
|
+
|
257
264
|
Gemspec/DuplicatedAssignment:
|
258
265
|
Description: 'An attribute assignment method calls should be listed only once in a gemspec.'
|
259
266
|
Enabled: true
|
@@ -895,7 +902,7 @@ Layout/HeredocArgumentClosingParenthesis:
|
|
895
902
|
VersionAdded: '0.68'
|
896
903
|
|
897
904
|
Layout/HeredocIndentation:
|
898
|
-
Description: '
|
905
|
+
Description: 'Checks the indentation of the here document bodies.'
|
899
906
|
StyleGuide: '#squiggly-heredocs'
|
900
907
|
Enabled: true
|
901
908
|
VersionAdded: '0.49'
|
@@ -928,7 +935,7 @@ Layout/IndentationStyle:
|
|
928
935
|
VersionChanged: '0.82'
|
929
936
|
# By default the indentation width from `Layout/IndentationWidth` is used,
|
930
937
|
# but it can be overridden by setting this parameter.
|
931
|
-
# It is used during
|
938
|
+
# It is used during autocorrection to determine how many spaces should
|
932
939
|
# replace each tab.
|
933
940
|
IndentationWidth: ~
|
934
941
|
EnforcedStyle: spaces
|
@@ -1514,7 +1521,7 @@ Lint/BigDecimalNew:
|
|
1514
1521
|
VersionAdded: '0.53'
|
1515
1522
|
|
1516
1523
|
Lint/BinaryOperatorWithIdenticalOperands:
|
1517
|
-
Description: '
|
1524
|
+
Description: 'Checks for places where binary operator has identical operands.'
|
1518
1525
|
Enabled: true
|
1519
1526
|
Safe: false
|
1520
1527
|
VersionAdded: '0.89'
|
@@ -1696,7 +1703,7 @@ Lint/ElseLayout:
|
|
1696
1703
|
VersionChanged: '1.2'
|
1697
1704
|
|
1698
1705
|
Lint/EmptyBlock:
|
1699
|
-
Description: '
|
1706
|
+
Description: 'Checks for blocks without a body.'
|
1700
1707
|
Enabled: pending
|
1701
1708
|
VersionAdded: '1.1'
|
1702
1709
|
VersionChanged: '1.15'
|
@@ -1710,7 +1717,7 @@ Lint/EmptyClass:
|
|
1710
1717
|
AllowComments: false
|
1711
1718
|
|
1712
1719
|
Lint/EmptyConditionalBody:
|
1713
|
-
Description: '
|
1720
|
+
Description: 'Checks for the presence of `if`, `elsif` and `unless` branches without a body.'
|
1714
1721
|
Enabled: true
|
1715
1722
|
AllowComments: true
|
1716
1723
|
VersionAdded: '0.89'
|
@@ -1889,7 +1896,7 @@ Lint/MissingCopEnableDirective:
|
|
1889
1896
|
|
1890
1897
|
Lint/MissingSuper:
|
1891
1898
|
Description: >-
|
1892
|
-
|
1899
|
+
Checks for the presence of constructors and lifecycle callbacks
|
1893
1900
|
without calls to `super`.
|
1894
1901
|
Enabled: true
|
1895
1902
|
VersionAdded: '0.89'
|
@@ -2218,7 +2225,7 @@ Lint/Syntax:
|
|
2218
2225
|
VersionAdded: '0.9'
|
2219
2226
|
|
2220
2227
|
Lint/ToEnumArguments:
|
2221
|
-
Description: '
|
2228
|
+
Description: 'Ensures that `to_enum`/`enum_for`, called for the current method, has correct arguments.'
|
2222
2229
|
Enabled: pending
|
2223
2230
|
VersionAdded: '1.1'
|
2224
2231
|
|
@@ -2228,12 +2235,12 @@ Lint/ToJSON:
|
|
2228
2235
|
VersionAdded: '0.66'
|
2229
2236
|
|
2230
2237
|
Lint/TopLevelReturnWithArgument:
|
2231
|
-
Description: '
|
2238
|
+
Description: 'Detects top level return statements with argument.'
|
2232
2239
|
Enabled: true
|
2233
2240
|
VersionAdded: '0.89'
|
2234
2241
|
|
2235
2242
|
Lint/TrailingCommaInAttributeDeclaration:
|
2236
|
-
Description: '
|
2243
|
+
Description: 'Checks for trailing commas in attribute declarations.'
|
2237
2244
|
Enabled: true
|
2238
2245
|
VersionAdded: '0.90'
|
2239
2246
|
|
@@ -2282,7 +2289,7 @@ Lint/UnreachableCode:
|
|
2282
2289
|
VersionAdded: '0.9'
|
2283
2290
|
|
2284
2291
|
Lint/UnreachableLoop:
|
2285
|
-
Description: '
|
2292
|
+
Description: 'Checks for loops that will have at most one iteration.'
|
2286
2293
|
Enabled: true
|
2287
2294
|
VersionAdded: '0.89'
|
2288
2295
|
VersionChanged: '1.7'
|
@@ -3109,7 +3116,7 @@ Style/CaseEquality:
|
|
3109
3116
|
AllowOnConstant: false
|
3110
3117
|
|
3111
3118
|
Style/CaseLikeIf:
|
3112
|
-
Description: '
|
3119
|
+
Description: 'Identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
3113
3120
|
StyleGuide: '#case-vs-if-else'
|
3114
3121
|
Enabled: true
|
3115
3122
|
Safe: false
|
@@ -3549,7 +3556,7 @@ Style/ExponentialNotation:
|
|
3549
3556
|
|
3550
3557
|
Style/FetchEnvVar:
|
3551
3558
|
Description: >-
|
3552
|
-
|
3559
|
+
Suggests `ENV.fetch` for the replacement of `ENV[]`.
|
3553
3560
|
Reference:
|
3554
3561
|
- https://rubystyle.guide/#hash-fetch-defaults
|
3555
3562
|
Enabled: pending
|
@@ -3925,6 +3932,11 @@ Style/LineEndConcatenation:
|
|
3925
3932
|
VersionAdded: '0.18'
|
3926
3933
|
VersionChanged: '0.64'
|
3927
3934
|
|
3935
|
+
Style/MapCompactWithConditionalBlock:
|
3936
|
+
Description: 'Prefer `select` or `reject` over `map { ... }.compact`.'
|
3937
|
+
Enabled: pending
|
3938
|
+
VersionAdded: '1.30'
|
3939
|
+
|
3928
3940
|
Style/MapToHash:
|
3929
3941
|
Description: 'Prefer `to_h` with a block over `map.to_h`.'
|
3930
3942
|
Enabled: pending
|
@@ -4146,7 +4158,7 @@ Style/NegatedIf:
|
|
4146
4158
|
|
4147
4159
|
Style/NegatedIfElseCondition:
|
4148
4160
|
Description: >-
|
4149
|
-
|
4161
|
+
Checks for uses of `if-else` and ternary operators with a negated condition
|
4150
4162
|
which can be simplified by inverting condition and swapping branches.
|
4151
4163
|
Enabled: pending
|
4152
4164
|
VersionAdded: '1.2'
|
@@ -4592,7 +4604,9 @@ Style/RedundantInitialize:
|
|
4592
4604
|
Style/RedundantInterpolation:
|
4593
4605
|
Description: 'Checks for strings that are just an interpolated expression.'
|
4594
4606
|
Enabled: true
|
4607
|
+
SafeAutoCorrect: false
|
4595
4608
|
VersionAdded: '0.76'
|
4609
|
+
VersionChanged: '1.30'
|
4596
4610
|
|
4597
4611
|
Style/RedundantParentheses:
|
4598
4612
|
Description: "Checks for parentheses that seem not to serve any purpose."
|
@@ -4703,10 +4717,10 @@ Style/ReturnNil:
|
|
4703
4717
|
|
4704
4718
|
Style/SafeNavigation:
|
4705
4719
|
Description: >-
|
4706
|
-
|
4720
|
+
Transforms usages of a method call safeguarded by
|
4707
4721
|
a check for the existence of the object to
|
4708
4722
|
safe navigation (`&.`).
|
4709
|
-
|
4723
|
+
Autocorrection is unsafe as it assumes the object will
|
4710
4724
|
be `nil` or truthy, but never `false`.
|
4711
4725
|
Enabled: true
|
4712
4726
|
VersionAdded: '0.43'
|
@@ -4930,7 +4944,7 @@ Style/StructInheritance:
|
|
4930
4944
|
VersionChanged: '1.20'
|
4931
4945
|
|
4932
4946
|
Style/SwapValues:
|
4933
|
-
Description: '
|
4947
|
+
Description: 'Enforces the use of shorthand-style swapping of 2 variables.'
|
4934
4948
|
StyleGuide: '#values-swapping'
|
4935
4949
|
Enabled: pending
|
4936
4950
|
VersionAdded: '1.1'
|
@@ -4980,7 +4994,7 @@ Style/TernaryParentheses:
|
|
4980
4994
|
AllowSafeAssignment: true
|
4981
4995
|
|
4982
4996
|
Style/TopLevelMethodDefinition:
|
4983
|
-
Description: '
|
4997
|
+
Description: 'Looks for top-level method definitions.'
|
4984
4998
|
StyleGuide: '#top-level-methods'
|
4985
4999
|
Enabled: false
|
4986
5000
|
VersionAdded: '1.15'
|
@@ -66,6 +66,7 @@ module RuboCop
|
|
66
66
|
execute_runner
|
67
67
|
@options.delete(:only)
|
68
68
|
@config_store = ConfigStore.new
|
69
|
+
@config_store.options_config = @options[:config] if @options[:config]
|
69
70
|
# Save the todo configuration of the LineLength cop.
|
70
71
|
File.read(AUTO_GENERATED_FILE).lines.drop_while { |line| line.start_with?('#') }.join
|
71
72
|
end
|
@@ -95,23 +96,24 @@ module RuboCop
|
|
95
96
|
end
|
96
97
|
|
97
98
|
def add_inheritance_from_auto_generated_file(config_file)
|
98
|
-
file_string = " #{
|
99
|
+
file_string = " #{relative_path_to_todo_from_options_config}"
|
99
100
|
|
100
101
|
config_file ||= ConfigLoader::DOTFILE
|
101
102
|
|
102
103
|
if File.exist?(config_file)
|
103
104
|
files = Array(ConfigLoader.load_yaml_configuration(config_file)['inherit_from'])
|
104
105
|
|
105
|
-
return if files.include?(
|
106
|
+
return if files.include?(relative_path_to_todo_from_options_config)
|
106
107
|
|
107
|
-
files.unshift(
|
108
|
+
files.unshift(relative_path_to_todo_from_options_config)
|
108
109
|
file_string = "\n - #{files.join("\n - ")}" if files.size > 1
|
109
110
|
rubocop_yml_contents = existing_configuration(config_file)
|
110
111
|
end
|
111
112
|
|
112
113
|
write_config_file(config_file, file_string, rubocop_yml_contents)
|
113
114
|
|
114
|
-
puts "Added inheritance from `#{
|
115
|
+
puts "Added inheritance from `#{relative_path_to_todo_from_options_config}` "\
|
116
|
+
"in `#{ConfigLoader::DOTFILE}`."
|
115
117
|
end
|
116
118
|
|
117
119
|
def existing_configuration(config_file)
|
@@ -126,6 +128,19 @@ module RuboCop
|
|
126
128
|
lines.insert(doc_start_index + 1, "inherit_from:#{file_string}\n")
|
127
129
|
File.write(file_name, lines.join("\n"))
|
128
130
|
end
|
131
|
+
|
132
|
+
def relative_path_to_todo_from_options_config
|
133
|
+
return AUTO_GENERATED_FILE if !@options[:config] || options_config_in_root?
|
134
|
+
|
135
|
+
base = Pathname.new('.')
|
136
|
+
config_dir = Pathname.new(File.dirname(@options[:config]))
|
137
|
+
|
138
|
+
"#{base.relative_path_from(config_dir)}/#{AUTO_GENERATED_FILE}"
|
139
|
+
end
|
140
|
+
|
141
|
+
def options_config_in_root?
|
142
|
+
File.dirname(@options[:config]) == '.'
|
143
|
+
end
|
129
144
|
end
|
130
145
|
end
|
131
146
|
end
|
@@ -89,7 +89,7 @@ module RuboCop
|
|
89
89
|
# See: https://github.com/rubocop/rubocop/issues/8673
|
90
90
|
return if INTEGRATION_FORMATTERS.include?(@options[:format])
|
91
91
|
|
92
|
-
return unless @options[:stdin] && @options[:
|
92
|
+
return unless @options[:stdin] && @options[:autocorrect]
|
93
93
|
|
94
94
|
(@options[:stderr] ? $stderr : $stdout).puts '=' * 20
|
95
95
|
print @options[:stdin]
|
data/lib/rubocop/cli.rb
CHANGED
@@ -124,6 +124,7 @@ module RuboCop
|
|
124
124
|
ConfigLoader.disable_pending_cops = @options[:disable_pending_cops]
|
125
125
|
ConfigLoader.enable_pending_cops = @options[:enable_pending_cops]
|
126
126
|
ConfigLoader.ignore_parent_exclusion = @options[:ignore_parent_exclusion]
|
127
|
+
ConfigLoader.ignore_unrecognized_cops = @options[:ignore_unrecognized_cops]
|
127
128
|
end
|
128
129
|
|
129
130
|
def handle_exiting_options
|
@@ -22,7 +22,8 @@ module RuboCop
|
|
22
22
|
class << self
|
23
23
|
include FileFinder
|
24
24
|
|
25
|
-
attr_accessor :debug, :ignore_parent_exclusion, :disable_pending_cops, :enable_pending_cops
|
25
|
+
attr_accessor :debug, :ignore_parent_exclusion, :disable_pending_cops, :enable_pending_cops,
|
26
|
+
:ignore_unrecognized_cops
|
26
27
|
attr_writer :default_configuration, :project_root
|
27
28
|
attr_reader :loaded_features
|
28
29
|
|
@@ -102,6 +102,22 @@ module RuboCop
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def alert_about_unrecognized_cops(invalid_cop_names)
|
105
|
+
unknown_cops = list_unknown_cops(invalid_cop_names)
|
106
|
+
|
107
|
+
return if unknown_cops.empty?
|
108
|
+
|
109
|
+
if ConfigLoader.ignore_unrecognized_cops
|
110
|
+
warn Rainbow('The following cops or departments are not '\
|
111
|
+
'recognized and will be ignored:').yellow
|
112
|
+
warn unknown_cops.join("\n")
|
113
|
+
|
114
|
+
return
|
115
|
+
end
|
116
|
+
|
117
|
+
raise ValidationError, unknown_cops.join("\n")
|
118
|
+
end
|
119
|
+
|
120
|
+
def list_unknown_cops(invalid_cop_names)
|
105
121
|
unknown_cops = []
|
106
122
|
invalid_cop_names.each do |name|
|
107
123
|
# There could be a custom cop with this name. If so, don't warn
|
@@ -119,7 +135,8 @@ module RuboCop
|
|
119
135
|
|
120
136
|
unknown_cops << message
|
121
137
|
end
|
122
|
-
|
138
|
+
|
139
|
+
unknown_cops
|
123
140
|
end
|
124
141
|
|
125
142
|
def suggestion(name)
|
@@ -227,7 +244,7 @@ module RuboCop
|
|
227
244
|
next unless cop_config.is_a?(Hash)
|
228
245
|
next unless cop_config['Safe'] == false && cop_config['SafeAutoCorrect'] == true
|
229
246
|
|
230
|
-
msg = 'Unsafe cops cannot have a safe
|
247
|
+
msg = 'Unsafe cops cannot have a safe autocorrection ' \
|
231
248
|
"(section #{name} in #{smart_loaded_path})"
|
232
249
|
raise ValidationError, msg
|
233
250
|
end
|
@@ -13,7 +13,7 @@ module RuboCop
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def autocorrect_requested?
|
16
|
-
@options.fetch(:
|
16
|
+
@options.fetch(:autocorrect, false)
|
17
17
|
end
|
18
18
|
|
19
19
|
def correctable?
|
@@ -34,7 +34,9 @@ module RuboCop
|
|
34
34
|
|
35
35
|
return false if cop_config['AutoCorrect'] == false
|
36
36
|
|
37
|
-
|
37
|
+
# :safe_autocorrect is a derived option based on several command-line
|
38
|
+
# arguments - see Rubocop::Options#add_autocorrection_options
|
39
|
+
return safe_autocorrect? if @options.fetch(:safe_autocorrect, false)
|
38
40
|
|
39
41
|
true
|
40
42
|
end
|
data/lib/rubocop/cop/base.rb
CHANGED
@@ -158,7 +158,7 @@ module RuboCop
|
|
158
158
|
Registry.global.dismiss(self)
|
159
159
|
end
|
160
160
|
|
161
|
-
# Returns if class supports
|
161
|
+
# Returns if class supports autocorrect.
|
162
162
|
# It is recommended to extend AutoCorrector instead of overriding
|
163
163
|
def self.support_autocorrect?
|
164
164
|
false
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Bundler
|
6
|
-
#
|
6
|
+
# Verifies that a project contains Gemfile or gems.rb file and correct
|
7
7
|
# associated lock file based on the configuration.
|
8
8
|
#
|
9
9
|
# @example EnforcedStyle: Gemfile (default)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
|
-
# This class does
|
5
|
+
# This class does autocorrection of nodes that should just be moved to
|
6
6
|
# the left or to the right, amount being determined by the instance
|
7
7
|
# variable column_delta.
|
8
8
|
class AlignmentCorrector
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
|
-
# This class
|
5
|
+
# This class autocorrects `for` iteration to `#each` enumeration.
|
6
6
|
class ForToEachCorrector
|
7
7
|
extend NodePattern::Macros
|
8
8
|
|
@@ -35,7 +35,9 @@ module RuboCop
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def requires_parentheses?
|
38
|
-
collection_node.
|
38
|
+
return true if collection_node.send_type? && collection_node.operator_method?
|
39
|
+
|
40
|
+
collection_node.range_type? || collection_node.or_type? || collection_node.and_type?
|
39
41
|
end
|
40
42
|
|
41
43
|
def end_position
|
@@ -50,7 +50,13 @@ module RuboCop
|
|
50
50
|
|
51
51
|
def semicolon(node)
|
52
52
|
@semicolon ||= {}.compare_by_identity
|
53
|
-
@semicolon[node] ||= processed_source.
|
53
|
+
@semicolon[node] ||= processed_source.sorted_tokens.select(&:semicolon?).find do |token|
|
54
|
+
same_line?(token, node.body) && trailing_class_definition?(token, node.body)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def trailing_class_definition?(token, body)
|
59
|
+
token.column < body.loc.column
|
54
60
|
end
|
55
61
|
end
|
56
62
|
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Gemspec
|
6
|
+
# Checks that deprecated attribute attributes are not set in a gemspec file.
|
7
|
+
# Removing `test_files` allows the user to receive smaller packed gems.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
#
|
11
|
+
# # bad
|
12
|
+
# Gem::Specification.new do |spec|
|
13
|
+
# spec.name = 'your_cool_gem_name'
|
14
|
+
# spec.test_files = Dir.glob('test/**/*')
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# # bad
|
18
|
+
# Gem::Specification.new do |spec|
|
19
|
+
# spec.name = 'your_cool_gem_name'
|
20
|
+
# spec.test_files += Dir.glob('test/**/*')
|
21
|
+
# end
|
22
|
+
#
|
23
|
+
# # good
|
24
|
+
# Gem::Specification.new do |spec|
|
25
|
+
# spec.name = 'your_cool_gem_name'
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
class DeprecatedAttributeAssignment < Base
|
29
|
+
include RangeHelp
|
30
|
+
extend AutoCorrector
|
31
|
+
|
32
|
+
MSG = 'Do not set `test_files` in gemspec.'
|
33
|
+
|
34
|
+
# @!method gem_specification(node)
|
35
|
+
def_node_matcher :gem_specification, <<~PATTERN
|
36
|
+
(block
|
37
|
+
(send
|
38
|
+
(const
|
39
|
+
(const {cbase nil?} :Gem) :Specification) :new)
|
40
|
+
...)
|
41
|
+
PATTERN
|
42
|
+
|
43
|
+
def on_block(block_node)
|
44
|
+
return unless gem_specification(block_node)
|
45
|
+
|
46
|
+
block_parameter = block_node.arguments.first.source
|
47
|
+
|
48
|
+
date_assignment = block_node.descendants.detect do |node|
|
49
|
+
use_test_files?(node, block_parameter)
|
50
|
+
end
|
51
|
+
|
52
|
+
return unless date_assignment
|
53
|
+
|
54
|
+
add_offense(date_assignment) do |corrector|
|
55
|
+
range = range_by_whole_lines(date_assignment.source_range, include_final_newline: true)
|
56
|
+
|
57
|
+
corrector.remove(range)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def use_test_files?(node, block_parameter)
|
64
|
+
node, method_name = if node.op_asgn_type?
|
65
|
+
lhs, _op, _rhs = *node
|
66
|
+
|
67
|
+
[lhs, :test_files]
|
68
|
+
else
|
69
|
+
[node, :test_files=]
|
70
|
+
end
|
71
|
+
|
72
|
+
node.send_type? && node.receiver&.source == block_parameter && node.method?(method_name)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|