rubocop 1.9.1 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +15 -14
- data/assets/output.html.erb +1 -1
- data/config/default.yml +77 -17
- data/config/obsoletion.yml +4 -0
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +5 -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/execute_runner.rb +1 -1
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -3
- data/lib/rubocop/cli/command/show_cops.rb +1 -4
- data/lib/rubocop/cli/command/suggest_extensions.rb +3 -2
- data/lib/rubocop/comment_config.rb +45 -101
- 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 +3 -3
- data/lib/rubocop/cop/bundler/gem_comment.rb +43 -8
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -0
- data/lib/rubocop/cop/bundler/ordered_gems.rb +2 -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 +6 -12
- 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/date_assignment.rb +57 -0
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +3 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +2 -4
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +2 -0
- data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +2 -0
- data/lib/rubocop/cop/generator.rb +3 -6
- 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.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/example_description.rb +7 -4
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +3 -5
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +3 -3
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +151 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +2 -3
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +3 -2
- data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +3 -0
- data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +5 -2
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +3 -3
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +12 -10
- data/lib/rubocop/cop/layout/argument_alignment.rb +8 -9
- data/lib/rubocop/cop/layout/array_alignment.rb +7 -6
- data/lib/rubocop/cop/layout/assignment_indentation.rb +8 -7
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
- data/lib/rubocop/cop/layout/block_alignment.rb +8 -19
- data/lib/rubocop/cop/layout/block_end_newline.rb +4 -8
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -3
- data/lib/rubocop/cop/layout/class_structure.rb +5 -10
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +18 -30
- data/lib/rubocop/cop/layout/comment_indentation.rb +17 -21
- 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 +10 -9
- 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 +5 -9
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +12 -6
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +10 -8
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +24 -20
- 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/first_parameter_indentation.rb +6 -5
- 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_consistency.rb +9 -6
- data/lib/rubocop/cop/layout/indentation_style.rb +25 -30
- data/lib/rubocop/cop/layout/indentation_width.rb +21 -11
- 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_assignment_layout.rb +26 -0
- 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 +22 -15
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +10 -5
- data/lib/rubocop/cop/layout/parameter_alignment.rb +6 -5
- 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 +2 -3
- data/lib/rubocop/cop/layout/space_before_brackets.rb +2 -4
- 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 +6 -11
- 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/big_decimal_new.rb +1 -0
- data/lib/rubocop/cop/lint/boolean_symbol.rb +2 -2
- data/lib/rubocop/cop/lint/constant_definition_in_block.rb +2 -0
- data/lib/rubocop/cop/lint/constant_resolution.rb +2 -2
- data/lib/rubocop/cop/lint/debugger.rb +60 -14
- 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 +16 -9
- data/lib/rubocop/cop/lint/duplicate_branch.rb +2 -3
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +6 -7
- data/lib/rubocop/cop/lint/duplicate_require.rb +3 -2
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -0
- data/lib/rubocop/cop/lint/else_layout.rb +2 -4
- 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 +4 -7
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +4 -6
- data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +1 -0
- 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 +4 -7
- data/lib/rubocop/cop/lint/inherit_exception.rb +2 -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/multiple_comparison.rb +5 -4
- data/lib/rubocop/cop/lint/nested_method_definition.rb +4 -2
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -0
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +8 -3
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +3 -0
- data/lib/rubocop/cop/lint/number_conversion.rb +12 -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 +3 -2
- data/lib/rubocop/cop/lint/rand_one.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +9 -22
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +1 -0
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +2 -3
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +10 -10
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -4
- data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -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 +2 -2
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +2 -2
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +3 -7
- data/lib/rubocop/cop/lint/shadowed_argument.rb +5 -11
- data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -0
- data/lib/rubocop/cop/lint/struct_new_override.rb +2 -2
- data/lib/rubocop/cop/lint/suppressed_exception.rb +44 -1
- data/lib/rubocop/cop/lint/symbol_conversion.rb +91 -6
- data/lib/rubocop/cop/lint/syntax.rb +1 -3
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +3 -0
- 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/unified_integer.rb +1 -0
- data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +5 -0
- data/lib/rubocop/cop/lint/unreachable_code.rb +3 -5
- data/lib/rubocop/cop/lint/unreachable_loop.rb +3 -5
- data/lib/rubocop/cop/lint/unused_block_argument.rb +4 -8
- data/lib/rubocop/cop/lint/unused_method_argument.rb +2 -2
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -0
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +6 -4
- data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
- data/lib/rubocop/cop/lint/useless_setter_call.rb +2 -3
- data/lib/rubocop/cop/lint/useless_times.rb +3 -0
- 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 +3 -6
- data/lib/rubocop/cop/metrics/parameter_lists.rb +3 -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/code_length_calculator.rb +6 -4
- data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +4 -7
- data/lib/rubocop/cop/migration/department_name.rb +3 -7
- data/lib/rubocop/cop/mixin/alignment.rb +12 -7
- 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/comments_help.rb +5 -1
- 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 +3 -5
- data/lib/rubocop/cop/mixin/documentation_comment.rb +3 -6
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +6 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +2 -3
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +4 -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 +8 -22
- data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
- data/lib/rubocop/cop/mixin/line_length_help.rb +13 -10
- data/lib/rubocop/cop/mixin/match_range.rb +2 -5
- data/lib/rubocop/cop/mixin/method_complexity.rb +2 -3
- data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +4 -3
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +11 -40
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
- data/lib/rubocop/cop/mixin/negative_conditional.rb +4 -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 +6 -9
- data/lib/rubocop/cop/mixin/range_help.rb +10 -13
- data/lib/rubocop/cop/mixin/rational_literal.rb +1 -0
- data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
- data/lib/rubocop/cop/mixin/safe_assignment.rb +6 -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 +7 -13
- data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
- data/lib/rubocop/cop/mixin/visibility_help.rb +1 -0
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +2 -2
- data/lib/rubocop/cop/naming/constant_name.rb +2 -0
- data/lib/rubocop/cop/naming/file_name.rb +7 -16
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +8 -3
- data/lib/rubocop/cop/naming/method_name.rb +4 -2
- data/lib/rubocop/cop/naming/predicate_name.rb +2 -2
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +10 -0
- data/lib/rubocop/cop/offense.rb +3 -8
- data/lib/rubocop/cop/registry.rb +13 -12
- data/lib/rubocop/cop/security/eval.rb +1 -0
- data/lib/rubocop/cop/security/json_load.rb +1 -0
- data/lib/rubocop/cop/security/marshal_load.rb +1 -0
- data/lib/rubocop/cop/security/open.rb +1 -0
- data/lib/rubocop/cop/security/yaml_load.rb +1 -0
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +4 -5
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
- data/lib/rubocop/cop/style/alias.rb +6 -12
- data/lib/rubocop/cop/style/and_or.rb +3 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +4 -3
- data/lib/rubocop/cop/style/array_coercion.rb +2 -0
- data/lib/rubocop/cop/style/array_join.rb +1 -0
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
- data/lib/rubocop/cop/style/attr.rb +2 -3
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +59 -71
- data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +60 -0
- data/lib/rubocop/cop/style/case_equality.rb +2 -1
- data/lib/rubocop/cop/style/case_like_if.rb +16 -6
- 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_equality_comparison.rb +3 -0
- data/lib/rubocop/cop/style/class_methods.rb +1 -3
- data/lib/rubocop/cop/style/collection_compact.rb +3 -3
- data/lib/rubocop/cop/style/colon_method_call.rb +2 -3
- data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
- data/lib/rubocop/cop/style/command_literal.rb +4 -9
- 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 +12 -24
- data/lib/rubocop/cop/style/constant_visibility.rb +28 -0
- data/lib/rubocop/cop/style/copyright.rb +3 -6
- data/lib/rubocop/cop/style/date_time.rb +5 -5
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/dir.rb +1 -0
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +2 -2
- data/lib/rubocop/cop/style/documentation.rb +30 -3
- data/lib/rubocop/cop/style/documentation_method.rb +1 -0
- data/lib/rubocop/cop/style/double_negation.rb +3 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +2 -2
- data/lib/rubocop/cop/style/each_with_object.rb +1 -0
- 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 +13 -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 +2 -3
- data/lib/rubocop/cop/style/eval_with_location.rb +91 -31
- data/lib/rubocop/cop/style/even_odd.rb +1 -0
- data/lib/rubocop/cop/style/expand_path_arguments.rb +4 -3
- data/lib/rubocop/cop/style/explicit_block_argument.rb +3 -5
- data/lib/rubocop/cop/style/exponential_notation.rb +6 -7
- data/lib/rubocop/cop/style/float_division.rb +4 -0
- data/lib/rubocop/cop/style/format_string.rb +2 -0
- data/lib/rubocop/cop/style/format_string_token.rb +2 -4
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -11
- data/lib/rubocop/cop/style/global_std_stream.rb +1 -0
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +133 -0
- data/lib/rubocop/cop/style/hash_each_methods.rb +2 -2
- data/lib/rubocop/cop/style/hash_except.rb +1 -0
- data/lib/rubocop/cop/style/hash_like_case.rb +2 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +20 -24
- data/lib/rubocop/cop/style/hash_transform_keys.rb +4 -0
- data/lib/rubocop/cop/style/hash_transform_values.rb +4 -0
- 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/if_with_boolean_literal_branches.rb +2 -0
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -0
- data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +5 -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 +47 -3
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +26 -16
- 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 +2 -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 +3 -2
- data/lib/rubocop/cop/style/module_function.rb +8 -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 +22 -5
- data/lib/rubocop/cop/style/mutable_constant.rb +7 -10
- data/lib/rubocop/cop/style/negated_if.rb +1 -2
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +16 -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/nil_comparison.rb +3 -0
- data/lib/rubocop/cop/style/nil_lambda.rb +1 -0
- data/lib/rubocop/cop/style/non_nil_check.rb +9 -5
- data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
- data/lib/rubocop/cop/style/numeric_predicate.rb +5 -7
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
- data/lib/rubocop/cop/style/option_hash.rb +2 -3
- data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
- data/lib/rubocop/cop/style/or_assignment.rb +4 -6
- data/lib/rubocop/cop/style/parallel_assignment.rb +12 -9
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +1 -0
- 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 +2 -2
- data/lib/rubocop/cop/style/raise_args.rb +4 -8
- data/lib/rubocop/cop/style/random_with_offset.rb +8 -8
- data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
- data/lib/rubocop/cop/style/redundant_assignment.rb +2 -3
- data/lib/rubocop/cop/style/redundant_begin.rb +47 -7
- 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 +5 -6
- data/lib/rubocop/cop/style/redundant_exception.rb +5 -6
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +2 -0
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +2 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +2 -2
- data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
- data/lib/rubocop/cop/style/redundant_parentheses.rb +21 -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 +6 -4
- data/lib/rubocop/cop/style/redundant_self.rb +9 -9
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +4 -2
- data/lib/rubocop/cop/style/redundant_sort.rb +3 -5
- data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
- data/lib/rubocop/cop/style/rescue_modifier.rb +21 -14
- data/lib/rubocop/cop/style/rescue_standard_error.rb +5 -7
- data/lib/rubocop/cop/style/return_nil.rb +7 -2
- data/lib/rubocop/cop/style/safe_navigation.rb +12 -21
- data/lib/rubocop/cop/style/sample.rb +1 -0
- data/lib/rubocop/cop/style/send.rb +1 -2
- data/lib/rubocop/cop/style/signal_exception.rb +6 -7
- data/lib/rubocop/cop/style/single_argument_dig.rb +2 -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/slicing_with_range.rb +1 -0
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +17 -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 +3 -6
- data/lib/rubocop/cop/style/string_chars.rb +39 -0
- data/lib/rubocop/cop/style/string_concatenation.rb +9 -10
- data/lib/rubocop/cop/style/string_hash_keys.rb +2 -0
- data/lib/rubocop/cop/style/string_literals.rb +2 -5
- data/lib/rubocop/cop/style/strip.rb +1 -0
- data/lib/rubocop/cop/style/struct_inheritance.rb +11 -0
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
- data/lib/rubocop/cop/style/symbol_proc.rb +29 -10
- data/lib/rubocop/cop/style/ternary_parentheses.rb +4 -6
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +6 -2
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +3 -6
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
- data/lib/rubocop/cop/style/trivial_accessors.rb +3 -4
- data/lib/rubocop/cop/style/unless_else.rb +1 -2
- data/lib/rubocop/cop/style/unless_logical_operators.rb +105 -0
- data/lib/rubocop/cop/style/unpack_first.rb +1 -0
- 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 +4 -11
- data/lib/rubocop/cop/style/zero_length_predicate.rb +6 -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 +69 -9
- data/lib/rubocop/ext/regexp_parser.rb +3 -6
- 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/offense_count_formatter.rb +1 -1
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/formatter/tap_formatter.rb +4 -2
- data/lib/rubocop/formatter/worst_offenders_formatter.rb +1 -1
- data/lib/rubocop/magic_comment.rb +1 -1
- data/lib/rubocop/name_similarity.rb +1 -1
- 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 +12 -16
- data/lib/rubocop/target_ruby.rb +25 -21
- data/lib/rubocop/version.rb +1 -1
- metadata +15 -9
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -71,9 +71,7 @@ module RuboCop
|
|
71
71
|
command += ' --auto-gen-only-exclude' if @options[:auto_gen_only_exclude]
|
72
72
|
|
73
73
|
if @exclude_limit_option
|
74
|
-
command +=
|
75
|
-
format(' --exclude-limit %<limit>d',
|
76
|
-
limit: Integer(@exclude_limit_option))
|
74
|
+
command += format(' --exclude-limit %<limit>d', limit: Integer(@exclude_limit_option))
|
77
75
|
end
|
78
76
|
command += ' --no-offense-counts' unless show_offense_counts?
|
79
77
|
|
@@ -111,8 +109,7 @@ module RuboCop
|
|
111
109
|
|
112
110
|
# In case auto_gen_only_exclude is set, only modify the maximum if the
|
113
111
|
# files are not excluded one by one.
|
114
|
-
if !@options[:auto_gen_only_exclude] ||
|
115
|
-
@files_with_offenses[cop_name].size > @exclude_limit
|
112
|
+
if !@options[:auto_gen_only_exclude] || @files_with_offenses[cop_name].size > @exclude_limit
|
116
113
|
cfg.merge!(cfg[:exclude_limit])
|
117
114
|
end
|
118
115
|
|
@@ -144,9 +141,7 @@ module RuboCop
|
|
144
141
|
|
145
142
|
def output_cop_param_comments(output_buffer, params, default_cfg)
|
146
143
|
config_params = params.reject { |p| p.start_with?('Supported') }
|
147
|
-
output_buffer.puts(
|
148
|
-
"# Configuration parameters: #{config_params.join(', ')}."
|
149
|
-
)
|
144
|
+
output_buffer.puts("# Configuration parameters: #{config_params.join(', ')}.")
|
150
145
|
|
151
146
|
params.each do |param|
|
152
147
|
value = default_cfg[param]
|
@@ -5,11 +5,7 @@ module RuboCop
|
|
5
5
|
# This formatter formats report data as GitHub Workflow commands resulting
|
6
6
|
# in GitHub check annotations when run within GitHub Actions.
|
7
7
|
class GitHubActionsFormatter < BaseFormatter
|
8
|
-
ESCAPE_MAP = {
|
9
|
-
'%' => '%25',
|
10
|
-
"\n" => '%0A',
|
11
|
-
"\r" => '%0D'
|
12
|
-
}.freeze
|
8
|
+
ESCAPE_MAP = { '%' => '%25', "\n" => '%0A', "\r" => '%0D' }.freeze
|
13
9
|
|
14
10
|
def file_finished(file, offenses)
|
15
11
|
offenses.each { |offense| report_offense(file, offense) }
|
@@ -11,8 +11,7 @@ module RuboCop
|
|
11
11
|
# This formatter saves the output as an html file.
|
12
12
|
class HTMLFormatter < BaseFormatter
|
13
13
|
ELLIPSES = '<span class="extra-code">...</span>'
|
14
|
-
TEMPLATE_PATH =
|
15
|
-
File.expand_path('../../../assets/output.html.erb', __dir__)
|
14
|
+
TEMPLATE_PATH = File.expand_path('../../../assets/output.html.erb', __dir__)
|
16
15
|
|
17
16
|
Color = Struct.new(:red, :green, :blue, :alpha) do
|
18
17
|
def to_s
|
@@ -20,9 +19,7 @@ module RuboCop
|
|
20
19
|
end
|
21
20
|
|
22
21
|
def fade_out(amount)
|
23
|
-
dup.tap
|
24
|
-
color.alpha -= amount
|
25
|
-
end
|
22
|
+
dup.tap { |color| color.alpha -= amount }
|
26
23
|
end
|
27
24
|
end
|
28
25
|
|
@@ -79,8 +76,7 @@ module RuboCop
|
|
79
76
|
fatal: Color.new(0xD2, 0x32, 0x2D, 1.0)
|
80
77
|
}.freeze
|
81
78
|
|
82
|
-
LOGO_IMAGE_PATH =
|
83
|
-
File.expand_path('../../../assets/logo.png', __dir__)
|
79
|
+
LOGO_IMAGE_PATH = File.expand_path('../../../assets/logo.png', __dir__)
|
84
80
|
|
85
81
|
attr_reader :files, :summary
|
86
82
|
|
@@ -97,9 +93,7 @@ module RuboCop
|
|
97
93
|
# rubocop:enable Lint/UselessMethodDefinition
|
98
94
|
|
99
95
|
def decorated_message(offense)
|
100
|
-
offense.message.gsub(/`(.+?)`/)
|
101
|
-
"<code>#{Regexp.last_match(1)}</code>"
|
102
|
-
end
|
96
|
+
offense.message.gsub(/`(.+?)`/) { "<code>#{Regexp.last_match(1)}</code>" }
|
103
97
|
end
|
104
98
|
|
105
99
|
def highlighted_source_line(offense)
|
@@ -13,11 +13,7 @@ module RuboCop
|
|
13
13
|
|
14
14
|
def initialize(output, options = {})
|
15
15
|
super
|
16
|
-
@output_hash = {
|
17
|
-
metadata: metadata_hash,
|
18
|
-
files: [],
|
19
|
-
summary: { offense_count: 0 }
|
20
|
-
}
|
16
|
+
@output_hash = { metadata: metadata_hash, files: [], summary: { offense_count: 0 } }
|
21
17
|
end
|
22
18
|
|
23
19
|
def started(target_files)
|
@@ -18,14 +18,10 @@ module RuboCop
|
|
18
18
|
def initialize(output, options = {})
|
19
19
|
super
|
20
20
|
|
21
|
-
@document = REXML::Document.new.tap
|
22
|
-
document << REXML::XMLDecl.new
|
23
|
-
end
|
21
|
+
@document = REXML::Document.new.tap { |document| document << REXML::XMLDecl.new }
|
24
22
|
testsuites = REXML::Element.new('testsuites', @document)
|
25
23
|
testsuite = REXML::Element.new('testsuite', testsuites)
|
26
|
-
@testsuite = testsuite.tap
|
27
|
-
element.add_attributes('name' => 'rubocop')
|
28
|
-
end
|
24
|
+
@testsuite = testsuite.tap { |element| element.add_attributes('name' => 'rubocop') }
|
29
25
|
end
|
30
26
|
|
31
27
|
def file_finished(file, offenses)
|
@@ -53,9 +49,7 @@ module RuboCop
|
|
53
49
|
end
|
54
50
|
|
55
51
|
def offenses_for_cop(all_offenses, cop)
|
56
|
-
all_offenses.select
|
57
|
-
offense.cop_name == cop.cop_name
|
58
|
-
end
|
52
|
+
all_offenses.select { |offense| offense.cop_name == cop.cop_name }
|
59
53
|
end
|
60
54
|
|
61
55
|
def classname_attribute_value(file)
|
@@ -38,9 +38,7 @@ module RuboCop
|
|
38
38
|
output.puts 'Offenses:'
|
39
39
|
output.puts
|
40
40
|
|
41
|
-
@offenses_for_files.each
|
42
|
-
report_file(file, offenses)
|
43
|
-
end
|
41
|
+
@offenses_for_files.each { |file, offenses| report_file(file, offenses) }
|
44
42
|
end
|
45
43
|
|
46
44
|
report_summary(inspected_files.size,
|
@@ -37,8 +37,10 @@ module RuboCop
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def report_highlighted_area(highlighted_area)
|
40
|
-
|
41
|
-
|
40
|
+
space_area = highlighted_area.source_buffer.slice(0...highlighted_area.begin_pos)
|
41
|
+
source_area = highlighted_area.source
|
42
|
+
output.puts("# #{' ' * Unicode::DisplayWidth.of(space_area)}" \
|
43
|
+
"#{'^' * Unicode::DisplayWidth.of(source_area)}")
|
42
44
|
end
|
43
45
|
|
44
46
|
def report_offense(file, offense)
|
@@ -47,7 +47,7 @@ module RuboCop
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def valid_shareable_constant_value?
|
50
|
-
%w[none literal experimental_everything experimental_copy].include?(
|
50
|
+
%w[none literal experimental_everything experimental_copy].include?(shareable_constant_value)
|
51
51
|
end
|
52
52
|
|
53
53
|
# Was a magic comment for the frozen string literal found?
|
@@ -16,7 +16,7 @@ module RuboCop
|
|
16
16
|
# DidYouMean::SpellChecker is not available in all versions of Ruby, and
|
17
17
|
# even on versions where it *is* available (>= 2.3), it is not always
|
18
18
|
# required correctly. So we do a feature check first.
|
19
|
-
# See: https://github.com/rubocop
|
19
|
+
# See: https://github.com/rubocop/rubocop/issues/7979
|
20
20
|
return [] unless defined?(DidYouMean::SpellChecker)
|
21
21
|
|
22
22
|
names = names.dup
|
data/lib/rubocop/options.rb
CHANGED
@@ -112,9 +112,7 @@ module RuboCop
|
|
112
112
|
@options.replace(ConfigRegeneration.new.options.merge(@options))
|
113
113
|
end
|
114
114
|
|
115
|
-
option(opts, '--exclude-limit COUNT')
|
116
|
-
@validator.validate_exclude_limit_option
|
117
|
-
end
|
115
|
+
option(opts, '--exclude-limit COUNT') { @validator.validate_exclude_limit_option }
|
118
116
|
|
119
117
|
option(opts, '--disable-uncorrectable')
|
120
118
|
|
@@ -161,9 +159,7 @@ module RuboCop
|
|
161
159
|
|
162
160
|
def add_cache_options(opts)
|
163
161
|
option(opts, '-C', '--cache FLAG')
|
164
|
-
option(opts, '--cache-root DIR')
|
165
|
-
@validator.validate_cache_enabled_for_cache_root
|
166
|
-
end
|
162
|
+
option(opts, '--cache-root DIR') { @validator.validate_cache_enabled_for_cache_root }
|
167
163
|
end
|
168
164
|
|
169
165
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
@@ -173,16 +169,12 @@ module RuboCop
|
|
173
169
|
option(opts, '-D', '--[no-]display-cop-names')
|
174
170
|
option(opts, '-E', '--extra-details')
|
175
171
|
option(opts, '-S', '--display-style-guide')
|
176
|
-
option(opts, '-a', '--auto-correct')
|
177
|
-
@options[:safe_auto_correct] = true
|
178
|
-
end
|
172
|
+
option(opts, '-a', '--auto-correct') { @options[:safe_auto_correct] = true }
|
179
173
|
option(opts, '--safe-auto-correct') do
|
180
174
|
warn '--safe-auto-correct is deprecated; use --auto-correct'
|
181
175
|
@options[:safe_auto_correct] = @options[:auto_correct] = true
|
182
176
|
end
|
183
|
-
option(opts, '-A', '--auto-correct-all')
|
184
|
-
@options[:auto_correct] = true
|
185
|
-
end
|
177
|
+
option(opts, '-A', '--auto-correct-all') { @options[:auto_correct] = true }
|
186
178
|
option(opts, '--disable-pending-cops')
|
187
179
|
option(opts, '--enable-pending-cops')
|
188
180
|
option(opts, '--ignore-disable-comments')
|
@@ -194,7 +186,7 @@ module RuboCop
|
|
194
186
|
|
195
187
|
option(opts, '-v', '--version')
|
196
188
|
option(opts, '-V', '--verbose-version')
|
197
|
-
option(opts, '-P', '--parallel')
|
189
|
+
option(opts, '-P', '--[no-]parallel')
|
198
190
|
end
|
199
191
|
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
200
192
|
|
@@ -229,8 +221,7 @@ module RuboCop
|
|
229
221
|
# e.g. [..., '--auto-correct', ...] to :auto_correct.
|
230
222
|
def long_opt_symbol(args)
|
231
223
|
long_opt = args.find { |arg| arg.start_with?('--') }
|
232
|
-
long_opt[2..-1].sub('[no-]', '').sub(/ .*/, '')
|
233
|
-
.tr('-', '_').gsub(/[\[\]]/, '').to_sym
|
224
|
+
long_opt[2..-1].sub('[no-]', '').sub(/ .*/, '').tr('-', '_').gsub(/[\[\]]/, '').to_sym
|
234
225
|
end
|
235
226
|
|
236
227
|
def require_feature(file)
|
@@ -286,16 +277,13 @@ module RuboCop
|
|
286
277
|
end
|
287
278
|
|
288
279
|
def validate_cop_options
|
289
|
-
%i[only except].each
|
290
|
-
OptionsValidator.validate_cop_list(@options[opt])
|
291
|
-
end
|
280
|
+
%i[only except].each { |opt| OptionsValidator.validate_cop_list(@options[opt]) }
|
292
281
|
end
|
293
282
|
|
294
283
|
# rubocop:disable Metrics/AbcSize
|
295
284
|
def validate_compatibility # rubocop:disable Metrics/MethodLength
|
296
285
|
if only_includes_redundant_disable?
|
297
|
-
raise OptionArgumentError, 'Lint/RedundantCopDisableDirective cannot '
|
298
|
-
'be used with --only.'
|
286
|
+
raise OptionArgumentError, 'Lint/RedundantCopDisableDirective cannot be used with --only.'
|
299
287
|
end
|
300
288
|
raise OptionArgumentError, 'Syntax checking cannot be turned off.' if except_syntax?
|
301
289
|
unless boolean_or_empty_cache?
|
@@ -313,8 +301,7 @@ module RuboCop
|
|
313
301
|
|
314
302
|
return if incompatible_options.size <= 1
|
315
303
|
|
316
|
-
raise OptionArgumentError,
|
317
|
-
"#{incompatible_options.inspect}"
|
304
|
+
raise OptionArgumentError, "Incompatible cli options: #{incompatible_options.inspect}"
|
318
305
|
end
|
319
306
|
# rubocop:enable Metrics/AbcSize
|
320
307
|
|
@@ -326,8 +313,7 @@ module RuboCop
|
|
326
313
|
%i[exclude_limit offense_counts auto_gen_timestamp
|
327
314
|
auto_gen_only_exclude].each do |option|
|
328
315
|
if @options.key?(option)
|
329
|
-
raise OptionArgumentError,
|
330
|
-
format(message, flag: option.to_s.tr('_', '-'))
|
316
|
+
raise OptionArgumentError, format(message, flag: option.to_s.tr('_', '-'))
|
331
317
|
end
|
332
318
|
end
|
333
319
|
end
|
@@ -357,27 +343,29 @@ module RuboCop
|
|
357
343
|
'false is not allowed.'
|
358
344
|
end
|
359
345
|
|
360
|
-
|
346
|
+
disable_parallel_when_invalid_combo
|
361
347
|
end
|
362
348
|
|
363
|
-
def
|
349
|
+
def disable_parallel_when_invalid_combo
|
364
350
|
combos = {
|
365
|
-
auto_gen_config: '-
|
366
|
-
|
367
|
-
|
368
|
-
fail_fast: '-P/--parallel cannot be combined with -F/--fail-fast.',
|
369
|
-
auto_correct: '-P/--parallel cannot be combined with --auto-correct.'
|
351
|
+
auto_gen_config: '--auto-gen-config',
|
352
|
+
fail_fast: '-F/--fail-fast.',
|
353
|
+
auto_correct: '--auto-correct.'
|
370
354
|
}
|
371
355
|
|
372
|
-
combos.
|
373
|
-
|
374
|
-
|
356
|
+
invalid_combos = combos.select { |key, _flag| @options.key?(key) }
|
357
|
+
|
358
|
+
return if invalid_combos.empty?
|
359
|
+
|
360
|
+
@options.delete(:parallel)
|
361
|
+
|
362
|
+
puts '-P/--parallel is being ignored because ' \
|
363
|
+
"it is not compatible with #{invalid_combos.values.join(', ')}"
|
375
364
|
end
|
376
365
|
|
377
366
|
def only_includes_redundant_disable?
|
378
367
|
@options.key?(:only) &&
|
379
|
-
(@options[:only] & %w[Lint/RedundantCopDisableDirective
|
380
|
-
RedundantCopDisableDirective]).any?
|
368
|
+
(@options[:only] & %w[Lint/RedundantCopDisableDirective RedundantCopDisableDirective]).any?
|
381
369
|
end
|
382
370
|
|
383
371
|
def display_only_fail_level_offenses_with_autocorrect?
|
@@ -385,8 +373,7 @@ module RuboCop
|
|
385
373
|
end
|
386
374
|
|
387
375
|
def except_syntax?
|
388
|
-
@options.key?(:except) &&
|
389
|
-
(@options[:except] & %w[Lint/Syntax Syntax]).any?
|
376
|
+
@options.key?(:except) && (@options[:except] & %w[Lint/Syntax Syntax]).any?
|
390
377
|
end
|
391
378
|
|
392
379
|
def boolean_or_empty_cache?
|
@@ -408,8 +395,7 @@ module RuboCop
|
|
408
395
|
def validate_cache_enabled_for_cache_root
|
409
396
|
return unless @options[:cache] == 'false'
|
410
397
|
|
411
|
-
raise OptionArgumentError, '--cache-root can not be used with '
|
412
|
-
'--cache false'
|
398
|
+
raise OptionArgumentError, '--cache-root can not be used with --cache false'
|
413
399
|
end
|
414
400
|
end
|
415
401
|
|
@@ -512,7 +498,7 @@ module RuboCop
|
|
512
498
|
version: 'Display version.',
|
513
499
|
verbose_version: 'Display verbose version.',
|
514
500
|
parallel: ['Use available CPUs to execute inspection in',
|
515
|
-
'parallel.'],
|
501
|
+
'parallel. Default is false.'],
|
516
502
|
stdin: ['Pipe source from STDIN, using FILE in offense',
|
517
503
|
'reports. This is useful for editor integration.'],
|
518
504
|
init: 'Generate a .rubocop.yml file in the current directory.'
|
data/lib/rubocop/path_util.rb
CHANGED
data/lib/rubocop/rake_task.rb
CHANGED
@@ -68,6 +68,9 @@ module RuboCop
|
|
68
68
|
RakeFileUtils.verbose(verbose) do
|
69
69
|
yield(*[self, task_args].slice(0, task_block.arity)) if task_block
|
70
70
|
options = full_options.unshift('--auto-correct-all')
|
71
|
+
# `parallel` will automatically be removed from the options internally.
|
72
|
+
# This is a nice to have to suppress the warning message
|
73
|
+
# about parallel and auto-corrent not being compatible.
|
71
74
|
options.delete('--parallel')
|
72
75
|
run_cli(verbose, options)
|
73
76
|
end
|
@@ -46,11 +46,9 @@ module RuboCop
|
|
46
46
|
http.use_ssl = uri.instance_of?(URI::HTTPS)
|
47
47
|
|
48
48
|
generate_request(uri) do |request|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
handle_response(e, limit, &block)
|
53
|
-
end
|
49
|
+
handle_response(http.request(request), limit, &block)
|
50
|
+
rescue SocketError => e
|
51
|
+
handle_response(e, limit, &block)
|
54
52
|
end
|
55
53
|
end
|
56
54
|
|
@@ -72,8 +70,7 @@ module RuboCop
|
|
72
70
|
begin
|
73
71
|
response.error!
|
74
72
|
rescue StandardError => e
|
75
|
-
message = "#{e.message} while downloading remote config"
|
76
|
-
" file #{uri}"
|
73
|
+
message = "#{e.message} while downloading remote config file #{uri}"
|
77
74
|
raise e, message
|
78
75
|
end
|
79
76
|
end
|
data/lib/rubocop/result_cache.rb
CHANGED
@@ -39,8 +39,7 @@ module RuboCop
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def requires_file_removal?(file_count, config_store)
|
42
|
-
file_count > 1 &&
|
43
|
-
file_count > config_store.for_pwd.for_all_cops['MaxFilesInCache']
|
42
|
+
file_count > 1 && file_count > config_store.for_pwd.for_all_cops['MaxFilesInCache']
|
44
43
|
end
|
45
44
|
|
46
45
|
def remove_oldest_files(files, dirs, cache_root, verbose)
|
@@ -108,7 +107,7 @@ module RuboCop
|
|
108
107
|
|
109
108
|
def load
|
110
109
|
puts "Loading cache from #{@path}" if debug?
|
111
|
-
@cached_data.from_json(
|
110
|
+
@cached_data.from_json(File.read(@path, encoding: Encoding::UTF_8))
|
112
111
|
end
|
113
112
|
|
114
113
|
def save(offenses)
|
@@ -117,8 +116,7 @@ module RuboCop
|
|
117
116
|
begin
|
118
117
|
FileUtils.mkdir_p(dir)
|
119
118
|
rescue Errno::EACCES, Errno::EROFS => e
|
120
|
-
warn "Couldn't create cache directory. Continuing without cache."
|
121
|
-
"\n #{e.message}"
|
119
|
+
warn "Couldn't create cache directory. Continuing without cache.\n #{e.message}"
|
122
120
|
return
|
123
121
|
end
|
124
122
|
|
@@ -159,9 +157,7 @@ module RuboCop
|
|
159
157
|
def file_checksum(file, config_store)
|
160
158
|
digester = Digest::SHA1.new
|
161
159
|
mode = File.stat(file).mode
|
162
|
-
digester.update(
|
163
|
-
"#{file}#{mode}#{config_store.for_file(file).signature}"
|
164
|
-
)
|
160
|
+
digester.update("#{file}#{mode}#{config_store.for_file(file).signature}")
|
165
161
|
digester.file(file)
|
166
162
|
digester.hexdigest
|
167
163
|
rescue Errno::ENOENT
|
@@ -224,10 +220,7 @@ module RuboCop
|
|
224
220
|
# This context is for anything that's not (1) the RuboCop executable
|
225
221
|
# checksum or (2) the inspected file checksum.
|
226
222
|
def context_checksum(team, options)
|
227
|
-
Digest::SHA1.hexdigest([
|
228
|
-
team_checksum(team),
|
229
|
-
relevant_options_digest(options)
|
230
|
-
].join)
|
223
|
+
Digest::SHA1.hexdigest([team_checksum(team), relevant_options_digest(options)].join)
|
231
224
|
end
|
232
225
|
end
|
233
226
|
end
|