rubocop 0.89.0 → 0.92.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 +2 -2
- data/config/default.yml +128 -14
- data/lib/rubocop.rb +30 -4
- data/lib/rubocop/cached_data.rb +1 -0
- data/lib/rubocop/cli/command.rb +1 -0
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +1 -0
- data/lib/rubocop/cli/command/base.rb +1 -0
- data/lib/rubocop/cli/command/execute_runner.rb +9 -0
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -0
- data/lib/rubocop/cli/command/show_cops.rb +2 -1
- data/lib/rubocop/cli/command/version.rb +1 -0
- data/lib/rubocop/cli/environment.rb +1 -0
- data/lib/rubocop/comment_config.rb +17 -10
- data/lib/rubocop/config.rb +1 -1
- data/lib/rubocop/config_loader.rb +21 -10
- data/lib/rubocop/config_loader_resolver.rb +1 -0
- data/lib/rubocop/config_obsoletion.rb +1 -0
- data/lib/rubocop/config_regeneration.rb +33 -0
- data/lib/rubocop/config_store.rb +3 -3
- data/lib/rubocop/config_validator.rb +4 -1
- data/lib/rubocop/cop/base.rb +23 -0
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +5 -1
- data/lib/rubocop/cop/bundler/gem_comment.rb +8 -3
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +2 -0
- data/lib/rubocop/cop/commissioner.rb +47 -7
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/condition_corrector.rb +3 -5
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +9 -10
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +8 -3
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -8
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +5 -10
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +8 -10
- data/lib/rubocop/cop/documentation.rb +22 -0
- data/lib/rubocop/cop/generator.rb +2 -1
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.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 +1 -0
- data/lib/rubocop/cop/layout/array_alignment.rb +1 -0
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +77 -0
- data/lib/rubocop/cop/layout/block_alignment.rb +23 -19
- data/lib/rubocop/cop/layout/case_indentation.rb +4 -7
- data/lib/rubocop/cop/layout/class_structure.rb +14 -17
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -6
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/condition_position.rb +13 -15
- data/lib/rubocop/cop/layout/def_end_alignment.rb +8 -5
- data/lib/rubocop/cop/layout/dot_position.rb +21 -17
- data/lib/rubocop/cop/layout/empty_comment.rb +30 -23
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +21 -18
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +13 -13
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +136 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +21 -23
- data/lib/rubocop/cop/layout/empty_lines.rb +6 -7
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +18 -14
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +7 -8
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +4 -7
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +3 -7
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +2 -5
- data/lib/rubocop/cop/layout/end_alignment.rb +11 -17
- data/lib/rubocop/cop/layout/extra_spacing.rb +14 -21
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +4 -8
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/hash_alignment.rb +17 -20
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +15 -14
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +14 -11
- data/lib/rubocop/cop/layout/initial_indentation.rb +6 -7
- data/lib/rubocop/cop/layout/leading_comment_space.rb +12 -10
- data/lib/rubocop/cop/layout/leading_empty_lines.rb +6 -11
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +10 -14
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +21 -19
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +5 -9
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +41 -22
- data/lib/rubocop/cop/layout/space_after_colon.rb +11 -7
- data/lib/rubocop/cop/layout/space_after_comma.rb +2 -5
- data/lib/rubocop/cop/layout/space_after_method_name.rb +5 -6
- data/lib/rubocop/cop/layout/space_after_not.rb +9 -11
- data/lib/rubocop/cop/layout/space_after_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +22 -17
- data/lib/rubocop/cop/layout/space_around_keyword.rb +17 -18
- data/lib/rubocop/cop/layout/space_around_operators.rb +17 -16
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +23 -22
- data/lib/rubocop/cop/layout/space_before_comma.rb +3 -5
- data/lib/rubocop/cop/layout/space_before_comment.rb +10 -7
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +7 -7
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +9 -17
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +20 -23
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +3 -8
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +17 -16
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +19 -37
- data/lib/rubocop/cop/layout/space_inside_parens.rb +9 -14
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +8 -17
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +16 -24
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +12 -13
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +10 -15
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +11 -11
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +2 -0
- data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -2
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +2 -1
- data/lib/rubocop/cop/lint/constant_definition_in_block.rb +74 -0
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +2 -3
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +2 -4
- data/lib/rubocop/cop/lint/duplicate_require.rb +46 -0
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +2 -15
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -0
- data/lib/rubocop/cop/lint/empty_file.rb +50 -0
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +2 -0
- data/lib/rubocop/cop/lint/float_comparison.rb +2 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +2 -2
- data/lib/rubocop/cop/lint/identity_comparison.rb +51 -0
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +2 -5
- data/lib/rubocop/cop/lint/inherit_exception.rb +2 -2
- data/lib/rubocop/cop/lint/missing_super.rb +11 -11
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +2 -35
- data/lib/rubocop/cop/lint/multiple_comparison.rb +3 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +1 -0
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +33 -15
- data/lib/rubocop/cop/lint/percent_string_array.rb +8 -12
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -0
- data/lib/rubocop/cop/lint/rand_one.rb +2 -1
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +36 -29
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +14 -4
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +1 -0
- data/lib/rubocop/cop/lint/rescue_type.rb +0 -1
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +3 -1
- data/lib/rubocop/cop/lint/shadowed_exception.rb +6 -6
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +4 -4
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -0
- data/lib/rubocop/cop/lint/to_json.rb +16 -5
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +57 -0
- data/lib/rubocop/cop/lint/unreachable_loop.rb +3 -6
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +3 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +10 -25
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +3 -9
- data/lib/rubocop/cop/lint/useless_method_definition.rb +70 -0
- data/lib/rubocop/cop/lint/useless_times.rb +106 -0
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +27 -16
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +1 -0
- data/lib/rubocop/cop/migration/department_name.rb +2 -2
- data/lib/rubocop/cop/mixin/alignment.rb +5 -1
- data/lib/rubocop/cop/mixin/allowed_methods.rb +2 -0
- data/lib/rubocop/cop/mixin/annotation_comment.rb +5 -0
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +17 -8
- data/lib/rubocop/cop/mixin/comments_help.rb +48 -0
- data/lib/rubocop/cop/mixin/configurable_naming.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_numbering.rb +3 -3
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +8 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +3 -1
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +12 -1
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +0 -2
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +3 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +31 -12
- data/lib/rubocop/cop/mixin/line_length_help.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +3 -1
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +13 -12
- data/lib/rubocop/cop/mixin/negative_conditional.rb +2 -2
- data/lib/rubocop/cop/mixin/percent_array.rb +16 -9
- data/lib/rubocop/cop/mixin/range_help.rb +18 -4
- data/lib/rubocop/cop/mixin/regexp_literal_help.rb +1 -1
- data/lib/rubocop/cop/mixin/rescue_node.rb +11 -1
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/statement_modifier.rb +12 -6
- data/lib/rubocop/cop/mixin/surrounding_space.rb +8 -4
- data/lib/rubocop/cop/mixin/trailing_comma.rb +9 -11
- data/lib/rubocop/cop/mixin/visibility_help.rb +4 -16
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/file_name.rb +1 -1
- data/lib/rubocop/cop/offense.rb +1 -0
- 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/severity.rb +0 -8
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +8 -19
- data/lib/rubocop/cop/style/accessor_grouping.rb +20 -20
- data/lib/rubocop/cop/style/alias.rb +36 -33
- data/lib/rubocop/cop/style/and_or.rb +9 -11
- data/lib/rubocop/cop/style/array_coercion.rb +4 -0
- data/lib/rubocop/cop/style/array_join.rb +7 -8
- data/lib/rubocop/cop/style/ascii_comments.rb +4 -4
- data/lib/rubocop/cop/style/attr.rb +12 -9
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +4 -5
- data/lib/rubocop/cop/style/bare_percent_literals.rb +10 -12
- data/lib/rubocop/cop/style/begin_block.rb +2 -2
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +9 -12
- data/lib/rubocop/cop/style/block_comments.rb +14 -18
- data/lib/rubocop/cop/style/block_delimiters.rb +23 -23
- data/lib/rubocop/cop/style/case_equality.rb +11 -3
- data/lib/rubocop/cop/style/case_like_if.rb +37 -18
- data/lib/rubocop/cop/style/class_and_module_children.rb +16 -11
- data/lib/rubocop/cop/style/class_check.rb +6 -11
- data/lib/rubocop/cop/style/class_methods.rb +7 -11
- data/lib/rubocop/cop/style/class_methods_definitions.rb +157 -0
- data/lib/rubocop/cop/style/class_vars.rb +7 -12
- data/lib/rubocop/cop/style/collection_methods.rb +11 -17
- data/lib/rubocop/cop/style/colon_method_call.rb +6 -7
- data/lib/rubocop/cop/style/colon_method_definition.rb +6 -6
- data/lib/rubocop/cop/style/combinable_loops.rb +84 -0
- data/lib/rubocop/cop/style/command_literal.rb +23 -24
- data/lib/rubocop/cop/style/comment_annotation.rb +15 -15
- data/lib/rubocop/cop/style/commented_keyword.rb +8 -9
- data/lib/rubocop/cop/style/conditional_assignment.rb +50 -61
- data/lib/rubocop/cop/style/constant_visibility.rb +3 -2
- data/lib/rubocop/cop/style/copyright.rb +12 -12
- data/lib/rubocop/cop/style/date_time.rb +13 -2
- data/lib/rubocop/cop/style/def_with_parentheses.rb +8 -10
- data/lib/rubocop/cop/style/dir.rb +8 -10
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +7 -9
- data/lib/rubocop/cop/style/documentation.rb +2 -4
- data/lib/rubocop/cop/style/documentation_method.rb +1 -1
- data/lib/rubocop/cop/style/double_cop_disable_directive.rb +12 -15
- data/lib/rubocop/cop/style/double_negation.rb +3 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +5 -8
- data/lib/rubocop/cop/style/each_with_object.rb +16 -17
- data/lib/rubocop/cop/style/empty_block_parameter.rb +9 -10
- data/lib/rubocop/cop/style/empty_case_condition.rb +19 -20
- data/lib/rubocop/cop/style/empty_else.rb +17 -19
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +9 -10
- data/lib/rubocop/cop/style/empty_literal.rb +18 -17
- data/lib/rubocop/cop/style/empty_method.rb +5 -8
- data/lib/rubocop/cop/style/encoding.rb +5 -9
- data/lib/rubocop/cop/style/end_block.rb +4 -6
- data/lib/rubocop/cop/style/eval_with_location.rb +6 -10
- data/lib/rubocop/cop/style/even_odd.rb +8 -11
- data/lib/rubocop/cop/style/expand_path_arguments.rb +23 -26
- 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/float_division.rb +3 -1
- data/lib/rubocop/cop/style/for.rb +11 -15
- data/lib/rubocop/cop/style/format_string.rb +18 -23
- data/lib/rubocop/cop/style/format_string_token.rb +4 -7
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +19 -41
- data/lib/rubocop/cop/style/global_vars.rb +2 -2
- data/lib/rubocop/cop/style/guard_clause.rb +4 -4
- data/lib/rubocop/cop/style/hash_as_last_array_item.rb +24 -5
- data/lib/rubocop/cop/style/hash_each_methods.rb +5 -8
- data/lib/rubocop/cop/style/hash_syntax.rb +6 -7
- data/lib/rubocop/cop/style/hash_transform_keys.rb +19 -11
- data/lib/rubocop/cop/style/hash_transform_values.rb +18 -10
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -1
- data/lib/rubocop/cop/style/if_inside_else.rb +2 -2
- data/lib/rubocop/cop/style/if_unless_modifier.rb +11 -17
- data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +3 -7
- data/lib/rubocop/cop/style/if_with_semicolon.rb +3 -6
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +2 -1
- data/lib/rubocop/cop/style/infinite_loop.rb +23 -23
- data/lib/rubocop/cop/style/inline_comment.rb +3 -3
- data/lib/rubocop/cop/style/inverse_methods.rb +20 -29
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +53 -0
- data/lib/rubocop/cop/style/lambda.rb +7 -12
- data/lib/rubocop/cop/style/lambda_call.rb +17 -14
- data/lib/rubocop/cop/style/line_end_concatenation.rb +19 -16
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +2 -1
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +11 -11
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +4 -8
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +7 -6
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +12 -3
- data/lib/rubocop/cop/style/method_def_parentheses.rb +11 -16
- data/lib/rubocop/cop/style/min_max.rb +8 -12
- data/lib/rubocop/cop/style/missing_else.rb +13 -13
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
- data/lib/rubocop/cop/style/mixin_grouping.rb +24 -27
- data/lib/rubocop/cop/style/mixin_usage.rb +9 -28
- data/lib/rubocop/cop/style/module_function.rb +10 -13
- data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -2
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +3 -10
- data/lib/rubocop/cop/style/multiline_if_then.rb +4 -10
- data/lib/rubocop/cop/style/multiline_memoization.rb +12 -10
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +17 -6
- data/lib/rubocop/cop/style/multiline_when_then.rb +10 -11
- data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +23 -20
- data/lib/rubocop/cop/style/negated_if.rb +6 -6
- data/lib/rubocop/cop/style/negated_unless.rb +6 -6
- data/lib/rubocop/cop/style/negated_while.rb +7 -15
- data/lib/rubocop/cop/style/nested_modifier.rb +10 -13
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +14 -12
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +14 -16
- data/lib/rubocop/cop/style/next.rb +10 -14
- data/lib/rubocop/cop/style/nil_comparison.rb +13 -11
- data/lib/rubocop/cop/style/non_nil_check.rb +34 -26
- data/lib/rubocop/cop/style/not.rb +20 -26
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +4 -9
- data/lib/rubocop/cop/style/numeric_predicate.rb +5 -14
- data/lib/rubocop/cop/style/one_line_conditional.rb +73 -23
- 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 +12 -1
- data/lib/rubocop/cop/style/or_assignment.rb +13 -10
- data/lib/rubocop/cop/style/parallel_assignment.rb +14 -14
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +6 -6
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +13 -19
- data/lib/rubocop/cop/style/percent_q_literals.rb +8 -10
- data/lib/rubocop/cop/style/perl_backrefs.rb +8 -10
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +11 -14
- data/lib/rubocop/cop/style/proc.rb +6 -6
- data/lib/rubocop/cop/style/raise_args.rb +15 -24
- data/lib/rubocop/cop/style/random_with_offset.rb +19 -19
- data/lib/rubocop/cop/style/redundant_assignment.rb +8 -18
- data/lib/rubocop/cop/style/redundant_begin.rb +7 -9
- data/lib/rubocop/cop/style/redundant_capital_w.rb +6 -9
- data/lib/rubocop/cop/style/redundant_condition.rb +5 -6
- data/lib/rubocop/cop/style/redundant_conditional.rb +4 -5
- data/lib/rubocop/cop/style/redundant_exception.rb +1 -3
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -12
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +9 -8
- data/lib/rubocop/cop/style/redundant_freeze.rb +5 -7
- data/lib/rubocop/cop/style/redundant_interpolation.rb +25 -24
- data/lib/rubocop/cop/style/redundant_parentheses.rb +21 -15
- data/lib/rubocop/cop/style/redundant_percent_q.rb +9 -11
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +6 -13
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +5 -14
- data/lib/rubocop/cop/style/redundant_return.rb +17 -17
- data/lib/rubocop/cop/style/redundant_self.rb +9 -11
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +116 -0
- data/lib/rubocop/cop/style/redundant_sort.rb +12 -31
- data/lib/rubocop/cop/style/redundant_sort_by.rb +5 -9
- data/lib/rubocop/cop/style/regexp_literal.rb +10 -21
- data/lib/rubocop/cop/style/rescue_modifier.rb +29 -9
- data/lib/rubocop/cop/style/rescue_standard_error.rb +20 -16
- data/lib/rubocop/cop/style/return_nil.rb +5 -5
- data/lib/rubocop/cop/style/safe_navigation.rb +22 -16
- data/lib/rubocop/cop/style/sample.rb +12 -14
- data/lib/rubocop/cop/style/self_assignment.rb +26 -22
- data/lib/rubocop/cop/style/semicolon.rb +6 -9
- data/lib/rubocop/cop/style/send.rb +4 -5
- data/lib/rubocop/cop/style/signal_exception.rb +23 -19
- data/lib/rubocop/cop/style/single_argument_dig.rb +1 -0
- data/lib/rubocop/cop/style/single_line_block_params.rb +4 -2
- data/lib/rubocop/cop/style/single_line_methods.rb +18 -17
- data/lib/rubocop/cop/style/slicing_with_range.rb +6 -8
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +66 -0
- data/lib/rubocop/cop/style/special_global_vars.rb +10 -15
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +17 -21
- data/lib/rubocop/cop/style/stderr_puts.rb +5 -6
- data/lib/rubocop/cop/style/string_concatenation.rb +16 -2
- data/lib/rubocop/cop/style/string_hash_keys.rb +6 -7
- data/lib/rubocop/cop/style/string_methods.rb +7 -17
- data/lib/rubocop/cop/style/strip.rb +9 -14
- data/lib/rubocop/cop/style/struct_inheritance.rb +3 -6
- data/lib/rubocop/cop/style/symbol_array.rb +5 -16
- data/lib/rubocop/cop/style/symbol_literal.rb +4 -6
- data/lib/rubocop/cop/style/symbol_proc.rb +14 -18
- data/lib/rubocop/cop/style/ternary_parentheses.rb +22 -22
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +3 -6
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +4 -7
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +3 -6
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +11 -9
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +8 -17
- data/lib/rubocop/cop/style/trivial_accessors.rb +26 -30
- data/lib/rubocop/cop/style/unless_else.rb +5 -8
- data/lib/rubocop/cop/style/unpack_first.rb +5 -8
- data/lib/rubocop/cop/style/variable_interpolation.rb +7 -10
- data/lib/rubocop/cop/style/when_then.rb +4 -6
- data/lib/rubocop/cop/style/while_until_do.rb +6 -16
- data/lib/rubocop/cop/style/while_until_modifier.rb +6 -20
- data/lib/rubocop/cop/style/word_array.rb +5 -23
- data/lib/rubocop/cop/style/yoda_condition.rb +4 -15
- data/lib/rubocop/cop/style/zero_length_predicate.rb +12 -18
- data/lib/rubocop/cop/team.rb +1 -0
- data/lib/rubocop/cop/util.rb +2 -1
- data/lib/rubocop/cop/utils/format_string.rb +3 -5
- data/lib/rubocop/cop/variable_force.rb +2 -0
- data/lib/rubocop/cops_documentation_generator.rb +5 -3
- data/lib/rubocop/core_ext/string.rb +2 -2
- data/lib/rubocop/directive_comment.rb +32 -0
- data/lib/rubocop/ext/regexp_node.rb +46 -0
- data/lib/rubocop/file_finder.rb +1 -0
- data/lib/rubocop/formatter/auto_gen_config_formatter.rb +2 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +13 -6
- data/lib/rubocop/formatter/html_formatter.rb +2 -0
- data/lib/rubocop/formatter/junit_formatter.rb +1 -1
- data/lib/rubocop/formatter/progress_formatter.rb +2 -1
- data/lib/rubocop/formatter/quiet_formatter.rb +1 -1
- data/lib/rubocop/formatter/simple_text_formatter.rb +36 -6
- data/lib/rubocop/name_similarity.rb +1 -0
- data/lib/rubocop/options.rb +43 -20
- data/lib/rubocop/remote_config.rb +1 -0
- data/lib/rubocop/result_cache.rb +31 -13
- data/lib/rubocop/rspec/cop_helper.rb +4 -1
- data/lib/rubocop/rspec/expect_offense.rb +14 -9
- data/lib/rubocop/rspec/shared_contexts.rb +13 -5
- data/lib/rubocop/runner.rb +35 -15
- data/lib/rubocop/string_interpreter.rb +3 -0
- data/lib/rubocop/target_finder.rb +5 -1
- data/lib/rubocop/target_ruby.rb +7 -1
- data/lib/rubocop/version.rb +7 -1
- data/lib/rubocop/yaml_duplication_checker.rb +1 -0
- metadata +26 -14
- data/lib/rubocop/cop/tokens_util.rb +0 -84
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# Extensions to the core String class
|
4
4
|
class String
|
5
|
-
unless method_defined?
|
5
|
+
unless method_defined?(:blank?) && ' '.blank?
|
6
6
|
# Checks whether a string is blank. A string is considered blank if it
|
7
7
|
# is either empty or contains only whitespace characters.
|
8
8
|
#
|
@@ -17,7 +17,7 @@ class String
|
|
17
17
|
# @example
|
18
18
|
# ' test'.blank? #=> false
|
19
19
|
def blank?
|
20
|
-
empty? ||
|
20
|
+
empty? || lstrip.empty?
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
# This class wraps the `Parser::Source::Comment` object that represents a
|
5
|
+
# special `rubocop:disable` and `rubocop:enable` comment and exposes what
|
6
|
+
# cops it contains.
|
7
|
+
class DirectiveComment
|
8
|
+
attr_reader :comment
|
9
|
+
|
10
|
+
def initialize(comment)
|
11
|
+
@comment = comment
|
12
|
+
end
|
13
|
+
|
14
|
+
# Return all the cops specified in the directive
|
15
|
+
def cops
|
16
|
+
match = comment.text.match(CommentConfig::COMMENT_DIRECTIVE_REGEXP)
|
17
|
+
return unless match
|
18
|
+
|
19
|
+
cops_string = match.captures[1]
|
20
|
+
cops_string.split(/,\s*/).uniq.sort
|
21
|
+
end
|
22
|
+
|
23
|
+
# Checks if this directive contains all the given cop names
|
24
|
+
def match?(cop_names)
|
25
|
+
cops == cop_names.uniq.sort
|
26
|
+
end
|
27
|
+
|
28
|
+
def range
|
29
|
+
comment.location.expression
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Ext
|
5
|
+
# Extensions to AST::RegexpNode for our cached parsed regexp info
|
6
|
+
module RegexpNode
|
7
|
+
ANY = Object.new
|
8
|
+
def ANY.==(_)
|
9
|
+
true
|
10
|
+
end
|
11
|
+
private_constant :ANY
|
12
|
+
|
13
|
+
class << self
|
14
|
+
attr_reader :parsed_cache
|
15
|
+
end
|
16
|
+
@parsed_cache = {}
|
17
|
+
|
18
|
+
# @return [Regexp::Expression::Root, nil]
|
19
|
+
def parsed_tree
|
20
|
+
return if interpolation?
|
21
|
+
|
22
|
+
str = content
|
23
|
+
Ext::RegexpNode.parsed_cache[str] ||= begin
|
24
|
+
Regexp::Parser.parse(str)
|
25
|
+
rescue StandardError
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def each_capture(named: ANY)
|
31
|
+
return enum_for(__method__, named: named) unless block_given?
|
32
|
+
|
33
|
+
parsed_tree&.traverse do |event, exp, _index|
|
34
|
+
yield(exp) if event == :enter &&
|
35
|
+
named == exp.respond_to?(:name) &&
|
36
|
+
exp.respond_to?(:capturing?) &&
|
37
|
+
exp.capturing?
|
38
|
+
end
|
39
|
+
|
40
|
+
self
|
41
|
+
end
|
42
|
+
|
43
|
+
AST::RegexpNode.include self
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/rubocop/file_finder.rb
CHANGED
@@ -32,7 +32,6 @@ module RuboCop
|
|
32
32
|
@exclude_limit_option = @options[:exclude_limit]
|
33
33
|
@exclude_limit = Integer(@exclude_limit_option ||
|
34
34
|
RuboCop::Options::DEFAULT_MAXIMUM_EXCLUSION_ITEMS)
|
35
|
-
@show_offense_counts = !@options[:no_offense_counts]
|
36
35
|
end
|
37
36
|
|
38
37
|
def file_finished(file, offenses)
|
@@ -56,6 +55,14 @@ module RuboCop
|
|
56
55
|
|
57
56
|
private
|
58
57
|
|
58
|
+
def show_timestamp?
|
59
|
+
@options.fetch(:auto_gen_timestamp, true)
|
60
|
+
end
|
61
|
+
|
62
|
+
def show_offense_counts?
|
63
|
+
@options.fetch(:offense_counts, true)
|
64
|
+
end
|
65
|
+
|
59
66
|
def command
|
60
67
|
command = 'rubocop --auto-gen-config'
|
61
68
|
|
@@ -66,15 +73,15 @@ module RuboCop
|
|
66
73
|
format(' --exclude-limit %<limit>d',
|
67
74
|
limit: Integer(@exclude_limit_option))
|
68
75
|
end
|
69
|
-
command += ' --no-offense-counts'
|
76
|
+
command += ' --no-offense-counts' unless show_offense_counts?
|
70
77
|
|
71
|
-
command += ' --no-auto-gen-timestamp'
|
78
|
+
command += ' --no-auto-gen-timestamp' unless show_timestamp?
|
72
79
|
|
73
80
|
command
|
74
81
|
end
|
75
82
|
|
76
83
|
def timestamp
|
77
|
-
|
84
|
+
show_timestamp? ? "on #{Time.now.utc} " : ''
|
78
85
|
end
|
79
86
|
|
80
87
|
def output_offenses
|
@@ -112,9 +119,9 @@ module RuboCop
|
|
112
119
|
end
|
113
120
|
|
114
121
|
def output_cop_comments(output_buffer, cfg, cop_name, offense_count)
|
115
|
-
output_buffer.puts "# Offense count: #{offense_count}" if
|
122
|
+
output_buffer.puts "# Offense count: #{offense_count}" if show_offense_counts?
|
116
123
|
|
117
|
-
cop_class = Cop::
|
124
|
+
cop_class = Cop::Registry.global.find_by_cop_name(cop_name)
|
118
125
|
output_buffer.puts '# Cop supports --auto-correct.' if cop_class&.support_autocorrect?
|
119
126
|
|
120
127
|
default_cfg = default_config(cop_name)
|
@@ -90,9 +90,11 @@ module RuboCop
|
|
90
90
|
end
|
91
91
|
|
92
92
|
# Make Kernel#binding public.
|
93
|
+
# rubocop:disable Lint/UselessMethodDefinition
|
93
94
|
def binding
|
94
95
|
super
|
95
96
|
end
|
97
|
+
# rubocop:enable Lint/UselessMethodDefinition
|
96
98
|
|
97
99
|
def decorated_message(offense)
|
98
100
|
offense.message.gsub(/`(.+?)`/) do
|
@@ -34,7 +34,7 @@ module RuboCop
|
|
34
34
|
# https://github.com/mikian/rubocop-junit-formatter/blob/v0.1.4/lib/rubocop/formatter/junit_formatter.rb#L9
|
35
35
|
#
|
36
36
|
# In the future, it would be preferable to return only enabled cops.
|
37
|
-
Cop::
|
37
|
+
Cop::Registry.all.each do |cop|
|
38
38
|
target_offenses = offenses_for_cop(offenses, cop)
|
39
39
|
|
40
40
|
next unless relevant_for_output?(options, target_offenses)
|
@@ -5,7 +5,7 @@ module RuboCop
|
|
5
5
|
# If no offenses are found, no output is displayed.
|
6
6
|
# Otherwise, SimpleTextFormatter's output is displayed.
|
7
7
|
class QuietFormatter < SimpleTextFormatter
|
8
|
-
def report_summary(file_count, offense_count, correction_count)
|
8
|
+
def report_summary(file_count, offense_count, correction_count, correctable_count)
|
9
9
|
super unless offense_count.zero?
|
10
10
|
end
|
11
11
|
end
|
@@ -23,6 +23,7 @@ module RuboCop
|
|
23
23
|
def started(_target_files)
|
24
24
|
@total_offense_count = 0
|
25
25
|
@total_correction_count = 0
|
26
|
+
@total_correctable_count = 0
|
26
27
|
end
|
27
28
|
|
28
29
|
def file_finished(file, offenses)
|
@@ -35,7 +36,8 @@ module RuboCop
|
|
35
36
|
def finished(inspected_files)
|
36
37
|
report_summary(inspected_files.count,
|
37
38
|
@total_offense_count,
|
38
|
-
@total_correction_count
|
39
|
+
@total_correction_count,
|
40
|
+
@total_correctable_count)
|
39
41
|
end
|
40
42
|
|
41
43
|
def report_file(file, offenses)
|
@@ -52,11 +54,13 @@ module RuboCop
|
|
52
54
|
end
|
53
55
|
end
|
54
56
|
|
55
|
-
def report_summary(file_count, offense_count, correction_count)
|
57
|
+
def report_summary(file_count, offense_count, correction_count, correctable_count)
|
56
58
|
report = Report.new(file_count,
|
57
59
|
offense_count,
|
58
60
|
correction_count,
|
59
|
-
|
61
|
+
correctable_count,
|
62
|
+
rainbow,
|
63
|
+
safe_auto_correct: @options[:safe_auto_correct])
|
60
64
|
|
61
65
|
output.puts
|
62
66
|
output.puts report.summary
|
@@ -66,7 +70,9 @@ module RuboCop
|
|
66
70
|
|
67
71
|
def count_stats(offenses)
|
68
72
|
@total_offense_count += offenses.count
|
69
|
-
|
73
|
+
corrected = offenses.count(&:corrected?)
|
74
|
+
@total_correction_count += corrected
|
75
|
+
@total_correctable_count += offenses.count(&:correctable?) - corrected
|
70
76
|
end
|
71
77
|
|
72
78
|
def colored_severity_code(offense)
|
@@ -96,16 +102,30 @@ module RuboCop
|
|
96
102
|
include Colorizable
|
97
103
|
include TextUtil
|
98
104
|
|
99
|
-
|
105
|
+
# rubocop:disable Metrics/ParameterLists
|
106
|
+
def initialize(
|
107
|
+
file_count, offense_count, correction_count, correctable_count, rainbow,
|
108
|
+
safe_auto_correct: false
|
109
|
+
)
|
100
110
|
@file_count = file_count
|
101
111
|
@offense_count = offense_count
|
102
112
|
@correction_count = correction_count
|
113
|
+
@correctable_count = correctable_count
|
103
114
|
@rainbow = rainbow
|
115
|
+
@safe_auto_correct = safe_auto_correct
|
104
116
|
end
|
117
|
+
# rubocop:enable Metrics/ParameterLists
|
105
118
|
|
106
119
|
def summary
|
107
120
|
if @correction_count.positive?
|
108
|
-
|
121
|
+
if @correctable_count.positive?
|
122
|
+
"#{files} inspected, #{offenses} detected, #{corrections} corrected,"\
|
123
|
+
" #{correctable}"
|
124
|
+
else
|
125
|
+
"#{files} inspected, #{offenses} detected, #{corrections} corrected"
|
126
|
+
end
|
127
|
+
elsif @correctable_count.positive?
|
128
|
+
"#{files} inspected, #{offenses} detected, #{correctable}"
|
109
129
|
else
|
110
130
|
"#{files} inspected, #{offenses} detected"
|
111
131
|
end
|
@@ -132,6 +152,16 @@ module RuboCop
|
|
132
152
|
|
133
153
|
colorize(text, color)
|
134
154
|
end
|
155
|
+
|
156
|
+
def correctable
|
157
|
+
if @safe_auto_correct
|
158
|
+
text = pluralize(@correctable_count, 'more offense')
|
159
|
+
"#{colorize(text, :yellow)} can be corrected with `rubocop -A`"
|
160
|
+
else
|
161
|
+
text = pluralize(@correctable_count, 'offense')
|
162
|
+
"#{colorize(text, :yellow)} auto-correctable"
|
163
|
+
end
|
164
|
+
end
|
135
165
|
end
|
136
166
|
end
|
137
167
|
end
|
data/lib/rubocop/options.rb
CHANGED
@@ -8,6 +8,7 @@ module RuboCop
|
|
8
8
|
class OptionArgumentError < StandardError; end
|
9
9
|
|
10
10
|
# This class handles command line options.
|
11
|
+
# @api private
|
11
12
|
class Options
|
12
13
|
E_STDIN_NO_PATH = '-s/--stdin requires exactly one path, relative to the ' \
|
13
14
|
'root of the project. RuboCop will use this path to determine which ' \
|
@@ -68,6 +69,7 @@ module RuboCop
|
|
68
69
|
|
69
70
|
add_severity_option(opts)
|
70
71
|
add_flags_with_optional_args(opts)
|
72
|
+
add_cache_options(opts)
|
71
73
|
add_boolean_flags(opts)
|
72
74
|
add_aliases(opts)
|
73
75
|
|
@@ -94,7 +96,7 @@ module RuboCop
|
|
94
96
|
['']
|
95
97
|
else
|
96
98
|
list.split(',').map do |c|
|
97
|
-
Cop::
|
99
|
+
Cop::Registry.qualified_cop_name(c, "--#{option} option")
|
98
100
|
end
|
99
101
|
end
|
100
102
|
end
|
@@ -112,20 +114,19 @@ module RuboCop
|
|
112
114
|
def add_auto_gen_options(opts)
|
113
115
|
option(opts, '--auto-gen-config')
|
114
116
|
|
117
|
+
option(opts, '--regenerate-todo') do
|
118
|
+
@options.replace(ConfigRegeneration.new.options.merge(@options))
|
119
|
+
end
|
120
|
+
|
115
121
|
option(opts, '--exclude-limit COUNT') do
|
116
122
|
@validator.validate_exclude_limit_option
|
117
123
|
end
|
118
124
|
|
119
125
|
option(opts, '--disable-uncorrectable')
|
120
126
|
|
121
|
-
option(opts, '--no-offense-counts')
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
option(opts, '--auto-gen-only-exclude')
|
126
|
-
option(opts, '--no-auto-gen-timestamp') do
|
127
|
-
@options[:no_auto_gen_timestamp] = true
|
128
|
-
end
|
127
|
+
option(opts, '--[no-]offense-counts')
|
128
|
+
option(opts, '--[no-]auto-gen-only-exclude')
|
129
|
+
option(opts, '--[no-]auto-gen-timestamp')
|
129
130
|
|
130
131
|
option(opts, '--init')
|
131
132
|
end
|
@@ -163,10 +164,16 @@ module RuboCop
|
|
163
164
|
end
|
164
165
|
end
|
165
166
|
|
167
|
+
def add_cache_options(opts)
|
168
|
+
option(opts, '-C', '--cache FLAG')
|
169
|
+
option(opts, '--cache-root DIR') do
|
170
|
+
@validator.validate_cache_enabled_for_cache_root
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
166
174
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
167
175
|
def add_boolean_flags(opts)
|
168
176
|
option(opts, '-F', '--fail-fast')
|
169
|
-
option(opts, '-C', '--cache FLAG')
|
170
177
|
option(opts, '-d', '--debug')
|
171
178
|
option(opts, '-D', '--[no-]display-cop-names')
|
172
179
|
option(opts, '-E', '--extra-details')
|
@@ -232,6 +239,7 @@ module RuboCop
|
|
232
239
|
end
|
233
240
|
|
234
241
|
# Validates option arguments and the options' compatibility with each other.
|
242
|
+
# @api private
|
235
243
|
class OptionsValidator
|
236
244
|
class << self
|
237
245
|
# Cop name validation must be done later than option parsing, so it's not
|
@@ -239,8 +247,8 @@ module RuboCop
|
|
239
247
|
def validate_cop_list(names)
|
240
248
|
return unless names
|
241
249
|
|
242
|
-
cop_names = Cop::
|
243
|
-
departments = Cop::
|
250
|
+
cop_names = Cop::Registry.global.names
|
251
|
+
departments = Cop::Registry.global.departments.map(&:to_s)
|
244
252
|
|
245
253
|
names.each do |name|
|
246
254
|
next if cop_names.include?(name)
|
@@ -309,7 +317,7 @@ module RuboCop
|
|
309
317
|
|
310
318
|
message = '--%<flag>s can only be used together with --auto-gen-config.'
|
311
319
|
|
312
|
-
%i[exclude_limit
|
320
|
+
%i[exclude_limit offense_counts auto_gen_timestamp
|
313
321
|
auto_gen_only_exclude].each do |option|
|
314
322
|
if @options.key?(option)
|
315
323
|
raise OptionArgumentError,
|
@@ -390,9 +398,17 @@ module RuboCop
|
|
390
398
|
# of option order.
|
391
399
|
raise OptionParser::MissingArgument
|
392
400
|
end
|
401
|
+
|
402
|
+
def validate_cache_enabled_for_cache_root
|
403
|
+
return unless @options[:cache] == 'false'
|
404
|
+
|
405
|
+
raise OptionArgumentError, '--cache-root can not be used with ' \
|
406
|
+
'--cache false'
|
407
|
+
end
|
393
408
|
end
|
394
409
|
|
395
410
|
# This module contains help texts for command line options.
|
411
|
+
# @api private
|
396
412
|
module OptionsHelp
|
397
413
|
MAX_EXCL = RuboCop::Options::DEFAULT_MAXIMUM_EXCLUSION_ITEMS.to_s
|
398
414
|
FORMATTER_OPTION_LIST = RuboCop::Formatter::FormatterSet::BUILTIN_FORMATTERS_FOR_KEYS.keys
|
@@ -406,17 +422,20 @@ module RuboCop
|
|
406
422
|
config: 'Specify configuration file.',
|
407
423
|
auto_gen_config: ['Generate a configuration file acting as a',
|
408
424
|
'TODO list.'],
|
409
|
-
|
410
|
-
'
|
411
|
-
|
412
|
-
|
413
|
-
'
|
414
|
-
'
|
425
|
+
regenerate_todo: ['Regenerate the TODO configuration file using',
|
426
|
+
'the last configuration. If there is no existing',
|
427
|
+
'TODO file, acts like --auto-gen-config.'],
|
428
|
+
offense_counts: ['Include offense counts in configuration',
|
429
|
+
'file generated by --auto-gen-config.',
|
430
|
+
'Default is true.'],
|
431
|
+
auto_gen_timestamp:
|
432
|
+
['Include the date and time when the --auto-gen-config',
|
433
|
+
'was run in the file it generates. Default is true.'],
|
415
434
|
auto_gen_only_exclude:
|
416
435
|
['Generate only Exclude parameters and not Max',
|
417
436
|
'when running --auto-gen-config, except if the',
|
418
437
|
'number of files with offenses is bigger than',
|
419
|
-
'exclude-limit.'],
|
438
|
+
'exclude-limit. Default is false.'],
|
420
439
|
exclude_limit: ['Used together with --auto-gen-config to',
|
421
440
|
'set the limit for how many Exclude',
|
422
441
|
"properties to generate. Default is #{MAX_EXCL}."],
|
@@ -461,6 +480,10 @@ module RuboCop
|
|
461
480
|
cache: ["Use result caching (FLAG=true) or don't",
|
462
481
|
'(FLAG=false), default determined by',
|
463
482
|
'configuration parameter AllCops: UseCache.'],
|
483
|
+
cache_root: ['Set the cache root directory.',
|
484
|
+
'Takes precedence over the configuration',
|
485
|
+
'parameter AllCops: CacheRootDirectory and',
|
486
|
+
'the $RUBOCOP_CACHE_ROOT environment variable.'],
|
464
487
|
debug: 'Display debug info.',
|
465
488
|
display_cop_names: ['Display cop names in offense messages.',
|
466
489
|
'Default is true.'],
|