rubocop 0.80.1 → 0.85.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/config/default.yml +202 -49
- data/lib/rubocop.rb +20 -61
- data/lib/rubocop/ast_aliases.rb +8 -0
- data/lib/rubocop/cli.rb +13 -7
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +2 -2
- data/lib/rubocop/cli/command/show_cops.rb +2 -6
- data/lib/rubocop/comment_config.rb +1 -1
- data/lib/rubocop/config.rb +14 -2
- data/lib/rubocop/config_loader.rb +37 -33
- data/lib/rubocop/config_loader_resolver.rb +45 -6
- data/lib/rubocop/config_obsoletion.rb +2 -0
- data/lib/rubocop/config_store.rb +12 -2
- data/lib/rubocop/config_validator.rb +18 -1
- data/lib/rubocop/cop/autocorrect_logic.rb +1 -2
- data/lib/rubocop/cop/badge.rb +5 -5
- data/lib/rubocop/cop/bundler/gem_comment.rb +70 -1
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -1
- data/lib/rubocop/cop/commissioner.rb +0 -21
- data/lib/rubocop/cop/cop.rb +14 -6
- data/lib/rubocop/cop/corrector.rb +48 -24
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +4 -8
- data/lib/rubocop/cop/correctors/condition_corrector.rb +1 -2
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/space_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/string_literal_corrector.rb +2 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -3
- data/lib/rubocop/cop/generator.rb +4 -3
- data/lib/rubocop/cop/ignored_node.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -1
- data/lib/rubocop/cop/layout/array_alignment.rb +53 -10
- data/lib/rubocop/cop/layout/block_end_newline.rb +5 -3
- data/lib/rubocop/cop/layout/case_indentation.rb +3 -3
- data/lib/rubocop/cop/layout/class_structure.rb +19 -16
- data/lib/rubocop/cop/layout/condition_position.rb +12 -2
- data/lib/rubocop/cop/layout/dot_position.rb +1 -1
- data/lib/rubocop/cop/layout/else_alignment.rb +8 -0
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +2 -6
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +126 -0
- data/lib/rubocop/cop/layout/end_of_line.rb +2 -2
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +1 -3
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +14 -10
- 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_method_argument_line_break.rb +1 -3
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/hash_alignment.rb +6 -6
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +5 -9
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +20 -103
- data/lib/rubocop/cop/layout/{tab.rb → indentation_style.rb} +48 -6
- data/lib/rubocop/cop/layout/indentation_width.rb +1 -3
- data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
- data/lib/rubocop/cop/layout/line_length.rb +23 -20
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -3
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +13 -4
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +3 -3
- data/lib/rubocop/cop/layout/space_around_keyword.rb +2 -2
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +131 -0
- data/lib/rubocop/cop/layout/space_around_operators.rb +19 -2
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +1 -3
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -3
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +2 -2
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +41 -0
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +14 -0
- data/lib/rubocop/cop/lint/boolean_symbol.rb +12 -0
- data/lib/rubocop/cop/lint/debugger.rb +1 -1
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +137 -0
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -5
- data/lib/rubocop/cop/lint/empty_when.rb +29 -6
- data/lib/rubocop/cop/lint/ensure_return.rb +19 -2
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +2 -4
- data/lib/rubocop/cop/lint/implicit_string_concatenation.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/literal_as_condition.rb +10 -13
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/loop.rb +7 -5
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +62 -0
- data/lib/rubocop/cop/lint/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/lint/nested_method_definition.rb +2 -2
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +2 -2
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +7 -7
- data/lib/rubocop/cop/lint/number_conversion.rb +1 -1
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +33 -11
- data/lib/rubocop/cop/lint/percent_string_array.rb +2 -4
- data/lib/rubocop/cop/lint/raise_exception.rb +75 -0
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +1 -6
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +3 -3
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -1
- data/lib/rubocop/cop/lint/struct_new_override.rb +58 -0
- data/lib/rubocop/cop/lint/suppressed_exception.rb +23 -26
- data/lib/rubocop/cop/lint/syntax.rb +1 -3
- data/lib/rubocop/cop/lint/unified_integer.rb +0 -2
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/unused_method_argument.rb +32 -6
- data/lib/rubocop/cop/lint/uri_regexp.rb +4 -4
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +13 -3
- data/lib/rubocop/cop/lint/useless_assignment.rb +3 -2
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +6 -1
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
- data/lib/rubocop/cop/migration/department_name.rb +22 -9
- data/lib/rubocop/cop/mixin/alignment.rb +1 -3
- data/lib/rubocop/cop/mixin/array_min_size.rb +1 -3
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +3 -9
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +1 -3
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +2 -4
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +6 -1
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +10 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +9 -2
- data/lib/rubocop/cop/mixin/ignored_pattern.rb +1 -1
- data/lib/rubocop/cop/mixin/line_length_help.rb +3 -2
- data/lib/rubocop/cop/mixin/method_complexity.rb +5 -0
- data/lib/rubocop/cop/mixin/parser_diagnostic.rb +1 -1
- data/lib/rubocop/cop/mixin/regexp_literal_help.rb +16 -0
- data/lib/rubocop/cop/mixin/statement_modifier.rb +7 -22
- data/lib/rubocop/cop/mixin/target_ruby_version.rb +5 -1
- data/lib/rubocop/cop/mixin/trailing_comma.rb +2 -4
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +1 -1
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +11 -1
- data/lib/rubocop/cop/naming/constant_name.rb +2 -1
- data/lib/rubocop/cop/naming/file_name.rb +27 -14
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
- data/lib/rubocop/cop/naming/method_name.rb +26 -0
- 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/registry.rb +12 -7
- data/lib/rubocop/cop/severity.rb +1 -3
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +26 -6
- data/lib/rubocop/cop/style/alias.rb +4 -4
- data/lib/rubocop/cop/style/and_or.rb +7 -8
- data/lib/rubocop/cop/style/array_join.rb +2 -2
- data/lib/rubocop/cop/style/attr.rb +1 -3
- data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
- data/lib/rubocop/cop/style/block_delimiters.rb +2 -8
- data/lib/rubocop/cop/style/case_equality.rb +24 -1
- data/lib/rubocop/cop/style/character_literal.rb +2 -2
- data/lib/rubocop/cop/style/collection_methods.rb +2 -0
- data/lib/rubocop/cop/style/conditional_assignment.rb +9 -11
- data/lib/rubocop/cop/style/copyright.rb +3 -3
- data/lib/rubocop/cop/style/dir.rb +1 -1
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +49 -0
- data/lib/rubocop/cop/style/documentation.rb +43 -5
- data/lib/rubocop/cop/style/double_cop_disable_directive.rb +1 -1
- data/lib/rubocop/cop/style/double_negation.rb +41 -4
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
- data/lib/rubocop/cop/style/each_with_object.rb +3 -3
- data/lib/rubocop/cop/style/empty_literal.rb +1 -3
- data/lib/rubocop/cop/style/empty_method.rb +2 -6
- data/lib/rubocop/cop/style/end_block.rb +6 -0
- data/lib/rubocop/cop/style/even_odd.rb +1 -1
- data/lib/rubocop/cop/style/expand_path_arguments.rb +3 -3
- data/lib/rubocop/cop/style/exponential_notation.rb +119 -0
- data/lib/rubocop/cop/style/format_string.rb +2 -2
- data/lib/rubocop/cop/style/format_string_token.rb +2 -3
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -6
- data/lib/rubocop/cop/style/guard_clause.rb +25 -2
- data/lib/rubocop/cop/style/hash_each_methods.rb +6 -4
- data/lib/rubocop/cop/style/hash_syntax.rb +19 -12
- data/lib/rubocop/cop/style/hash_transform_keys.rb +6 -2
- data/lib/rubocop/cop/style/hash_transform_values.rb +6 -5
- data/lib/rubocop/cop/style/if_unless_modifier.rb +23 -3
- data/lib/rubocop/cop/style/if_with_semicolon.rb +16 -0
- data/lib/rubocop/cop/style/inline_comment.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +1 -1
- data/lib/rubocop/cop/style/lambda.rb +3 -2
- data/lib/rubocop/cop/style/lambda_call.rb +1 -21
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +1 -3
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -3
- data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
- data/lib/rubocop/cop/style/module_function.rb +58 -12
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +1 -1
- data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
- data/lib/rubocop/cop/style/multiline_when_then.rb +16 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +2 -4
- data/lib/rubocop/cop/style/negated_if.rb +3 -3
- data/lib/rubocop/cop/style/negated_unless.rb +3 -3
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +2 -2
- data/lib/rubocop/cop/style/next.rb +2 -2
- data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
- data/lib/rubocop/cop/style/non_nil_check.rb +5 -5
- data/lib/rubocop/cop/style/not.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 +1 -1
- data/lib/rubocop/cop/style/one_line_conditional.rb +6 -9
- data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
- data/lib/rubocop/cop/style/or_assignment.rb +1 -1
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
- data/lib/rubocop/cop/style/perl_backrefs.rb +2 -2
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +1 -1
- data/lib/rubocop/cop/style/random_with_offset.rb +3 -3
- data/lib/rubocop/cop/style/redundant_condition.rb +3 -4
- data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
- data/lib/rubocop/cop/style/redundant_exception.rb +3 -3
- data/lib/rubocop/cop/style/redundant_interpolation.rb +2 -2
- data/lib/rubocop/cop/style/redundant_parentheses.rb +2 -6
- data/lib/rubocop/cop/style/redundant_percent_q.rb +3 -3
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +89 -0
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +130 -0
- data/lib/rubocop/cop/style/redundant_return.rb +5 -7
- data/lib/rubocop/cop/style/redundant_self.rb +1 -1
- data/lib/rubocop/cop/style/redundant_sort.rb +2 -2
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
- data/lib/rubocop/cop/style/return_nil.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +3 -7
- data/lib/rubocop/cop/style/self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/slicing_with_range.rb +39 -0
- data/lib/rubocop/cop/style/special_global_vars.rb +3 -7
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -4
- data/lib/rubocop/cop/style/string_hash_keys.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +2 -2
- data/lib/rubocop/cop/style/symbol_literal.rb +2 -2
- data/lib/rubocop/cop/style/ternary_parentheses.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +35 -0
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +41 -0
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +88 -0
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +44 -0
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +1 -3
- 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/unpack_first.rb +0 -4
- 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/while_until_modifier.rb +1 -1
- data/lib/rubocop/cop/style/word_array.rb +1 -1
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -1
- data/lib/rubocop/cop/team.rb +61 -25
- data/lib/rubocop/cop/util.rb +25 -1
- data/lib/rubocop/cop/variable_force.rb +3 -9
- data/lib/rubocop/cop/variable_force/assignment.rb +1 -0
- data/lib/rubocop/cop/variable_force/branch.rb +1 -3
- data/lib/rubocop/cop/variable_force/scope.rb +1 -0
- data/lib/rubocop/cop/variable_force/variable.rb +3 -6
- data/lib/rubocop/ext/processed_source.rb +18 -0
- data/lib/rubocop/formatter/base_formatter.rb +0 -4
- data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +4 -12
- data/lib/rubocop/formatter/formatter_set.rb +1 -4
- data/lib/rubocop/formatter/junit_formatter.rb +27 -6
- data/lib/rubocop/formatter/pacman_formatter.rb +1 -1
- data/lib/rubocop/formatter/tap_formatter.rb +1 -1
- data/lib/rubocop/magic_comment.rb +1 -1
- data/lib/rubocop/name_similarity.rb +12 -9
- data/lib/rubocop/options.rb +33 -12
- data/lib/rubocop/remote_config.rb +1 -3
- data/lib/rubocop/result_cache.rb +5 -7
- data/lib/rubocop/rspec/cop_helper.rb +3 -26
- data/lib/rubocop/rspec/expect_offense.rb +46 -16
- data/lib/rubocop/rspec/shared_contexts.rb +54 -20
- data/lib/rubocop/runner.rb +21 -14
- data/lib/rubocop/target_finder.rb +7 -7
- data/lib/rubocop/target_ruby.rb +5 -2
- data/lib/rubocop/version.rb +5 -3
- metadata +50 -77
- data/lib/rubocop/ast/builder.rb +0 -83
- data/lib/rubocop/ast/node.rb +0 -632
- data/lib/rubocop/ast/node/alias_node.rb +0 -24
- data/lib/rubocop/ast/node/and_node.rb +0 -29
- data/lib/rubocop/ast/node/args_node.rb +0 -29
- data/lib/rubocop/ast/node/array_node.rb +0 -57
- data/lib/rubocop/ast/node/block_node.rb +0 -117
- data/lib/rubocop/ast/node/break_node.rb +0 -17
- data/lib/rubocop/ast/node/case_node.rb +0 -56
- data/lib/rubocop/ast/node/class_node.rb +0 -31
- data/lib/rubocop/ast/node/def_node.rb +0 -82
- data/lib/rubocop/ast/node/defined_node.rb +0 -17
- data/lib/rubocop/ast/node/ensure_node.rb +0 -17
- data/lib/rubocop/ast/node/float_node.rb +0 -12
- data/lib/rubocop/ast/node/for_node.rb +0 -53
- data/lib/rubocop/ast/node/forward_args_node.rb +0 -18
- data/lib/rubocop/ast/node/hash_node.rb +0 -109
- data/lib/rubocop/ast/node/if_node.rb +0 -175
- data/lib/rubocop/ast/node/int_node.rb +0 -12
- data/lib/rubocop/ast/node/keyword_splat_node.rb +0 -45
- data/lib/rubocop/ast/node/mixin/basic_literal_node.rb +0 -16
- data/lib/rubocop/ast/node/mixin/binary_operator_node.rb +0 -43
- data/lib/rubocop/ast/node/mixin/collection_node.rb +0 -15
- data/lib/rubocop/ast/node/mixin/conditional_node.rb +0 -45
- data/lib/rubocop/ast/node/mixin/hash_element_node.rb +0 -125
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +0 -261
- data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +0 -114
- data/lib/rubocop/ast/node/mixin/modifier_node.rb +0 -17
- data/lib/rubocop/ast/node/mixin/numeric_node.rb +0 -21
- data/lib/rubocop/ast/node/mixin/parameterized_node.rb +0 -61
- data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +0 -35
- data/lib/rubocop/ast/node/module_node.rb +0 -24
- data/lib/rubocop/ast/node/or_node.rb +0 -29
- data/lib/rubocop/ast/node/pair_node.rb +0 -63
- data/lib/rubocop/ast/node/range_node.rb +0 -18
- data/lib/rubocop/ast/node/regexp_node.rb +0 -33
- data/lib/rubocop/ast/node/resbody_node.rb +0 -24
- data/lib/rubocop/ast/node/retry_node.rb +0 -17
- data/lib/rubocop/ast/node/return_node.rb +0 -24
- data/lib/rubocop/ast/node/self_class_node.rb +0 -24
- data/lib/rubocop/ast/node/send_node.rb +0 -13
- data/lib/rubocop/ast/node/str_node.rb +0 -16
- data/lib/rubocop/ast/node/super_node.rb +0 -21
- data/lib/rubocop/ast/node/symbol_node.rb +0 -12
- data/lib/rubocop/ast/node/until_node.rb +0 -35
- data/lib/rubocop/ast/node/when_node.rb +0 -53
- data/lib/rubocop/ast/node/while_node.rb +0 -35
- data/lib/rubocop/ast/node/yield_node.rb +0 -21
- data/lib/rubocop/ast/sexp.rb +0 -16
- data/lib/rubocop/ast/traversal.rb +0 -200
- data/lib/rubocop/cop/lint/end_in_method.rb +0 -40
- data/lib/rubocop/formatter/disabled_lines_formatter.rb +0 -57
- data/lib/rubocop/node_pattern.rb +0 -887
- data/lib/rubocop/processed_source.rb +0 -216
- data/lib/rubocop/string_util.rb +0 -14
- data/lib/rubocop/token.rb +0 -114
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: edfaa1a180e5c318e672651ae7e4c75625a41a4c247d3ce378f6e25e809a4277
|
4
|
+
data.tar.gz: 8ce15a32ddd8181b7b5117214d00a795f8824cbd13282120545fc7dd58548137
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57f80040236ae265d1478fecbbe20ebfd27905d52cd2c06d83202d2a8d7fe426feb774d63788fd38942872a12c18c247896e89f21c7010259ab1902cb5034177
|
7
|
+
data.tar.gz: b86dcfcaa1839b9f3a7d532d87c1574e712df8018bfb3f85f06e4d2ecc1bb174018458fd2ee5f853def55f2312da8ab8b3037ea3be0defff4c16f4bbbeb6cf5d
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
[![Gem Version](https://badge.fury.io/rb/rubocop.svg)](https://badge.fury.io/rb/rubocop)
|
2
2
|
[![CircleCI Status](https://circleci.com/gh/rubocop-hq/rubocop/tree/master.svg?style=svg)](https://circleci.com/gh/rubocop-hq/rubocop/tree/master)
|
3
|
-
[![
|
3
|
+
[![Actions Status](https://github.com/rubocop-hq/rubocop/workflows/CI/badge.svg?branch=master)](https://github.com/rubocop-hq/rubocop/actions?query=workflow%3ACI)
|
4
4
|
[![Coverage Status](https://api.codeclimate.com/v1/badges/ad6e76460499c8c99697/test_coverage)](https://codeclimate.com/github/bbatsov/rubocop)
|
5
5
|
[![Code Climate](https://codeclimate.com/github/bbatsov/rubocop/badges/gpa.svg)](https://codeclimate.com/github/bbatsov/rubocop)
|
6
6
|
[![Inline docs](https://inch-ci.org/github/bbatsov/rubocop.svg)](https://inch-ci.org/github/bbatsov/rubocop)
|
@@ -53,7 +53,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
|
|
53
53
|
might want to use a conservative version lock in your `Gemfile`:
|
54
54
|
|
55
55
|
```rb
|
56
|
-
gem 'rubocop', '~> 0.
|
56
|
+
gem 'rubocop', '~> 0.85.0', require: false
|
57
57
|
```
|
58
58
|
|
59
59
|
## Quickstart
|
@@ -73,7 +73,7 @@ You can read a lot more about RuboCop in its [official docs](https://docs.ruboco
|
|
73
73
|
|
74
74
|
RuboCop supports the following Ruby implementations:
|
75
75
|
|
76
|
-
* MRI 2.
|
76
|
+
* MRI 2.4+
|
77
77
|
* JRuby 9.2+
|
78
78
|
|
79
79
|
## Team
|
@@ -132,7 +132,7 @@ If you're working in a company that's making significant use of RuboCop we'd app
|
|
132
132
|
to become a RuboCop sponsor.
|
133
133
|
|
134
134
|
You can support the development of RuboCop via
|
135
|
-
[
|
135
|
+
[GitHub Sponsors](https://github.com/sponsors/bbatsov),
|
136
136
|
[Patreon](https://www.patreon.com/bbatsov),
|
137
137
|
[PayPal](https://paypal.me/bbatsov)
|
138
138
|
and [Open Collective](https://opencollective.com/rubocop).
|
data/config/default.yml
CHANGED
@@ -35,6 +35,7 @@ AllCops:
|
|
35
35
|
- '**/*.watchr'
|
36
36
|
- '**/.irbrc'
|
37
37
|
- '**/.pryrc'
|
38
|
+
- '**/.simplecov'
|
38
39
|
- '**/buildfile'
|
39
40
|
- '**/Appraisals'
|
40
41
|
- '**/Berksfile'
|
@@ -53,6 +54,7 @@ AllCops:
|
|
53
54
|
- '**/Podfile'
|
54
55
|
- '**/Puppetfile'
|
55
56
|
- '**/Rakefile'
|
57
|
+
- '**/rakefile'
|
56
58
|
- '**/Snapfile'
|
57
59
|
- '**/Steepfile'
|
58
60
|
- '**/Thorfile'
|
@@ -97,6 +99,14 @@ AllCops:
|
|
97
99
|
# to true in the same configuration.
|
98
100
|
EnabledByDefault: false
|
99
101
|
DisabledByDefault: false
|
102
|
+
# New cops introduced between major versions are set to a special pending status
|
103
|
+
# and are not enabled by default with warning message.
|
104
|
+
# Change this behavior by overriding either `NewCops: enable` or `NewCops: disable`.
|
105
|
+
# When `NewCops` is `enable`, pending cops are enabled in bulk. Can be overridden by
|
106
|
+
# the `--enable-pending-cops` command-line option.
|
107
|
+
# When `NewCops` is `disable`, pending cops are disabled in bulk. Can be overridden by
|
108
|
+
# the `--disable-pending-cops` command-line option.
|
109
|
+
NewCops: pending
|
100
110
|
# Enables the result cache if `true`. Can be overridden by the `--cache` command
|
101
111
|
# line option.
|
102
112
|
UseCache: true
|
@@ -125,7 +135,7 @@ AllCops:
|
|
125
135
|
# followed by the Gemfile.lock or gems.locked file. (Although the Ruby version
|
126
136
|
# is specified in the Gemfile or gems.rb file, RuboCop reads the final value
|
127
137
|
# from the lock file.) If the Ruby version is still unresolved, RuboCop will
|
128
|
-
# use the oldest officially supported Ruby version (currently Ruby 2.
|
138
|
+
# use the oldest officially supported Ruby version (currently Ruby 2.4).
|
129
139
|
TargetRubyVersion: ~
|
130
140
|
|
131
141
|
#################### Bundler ###############################
|
@@ -143,12 +153,13 @@ Bundler/GemComment:
|
|
143
153
|
Description: 'Add a comment describing each gem.'
|
144
154
|
Enabled: false
|
145
155
|
VersionAdded: '0.59'
|
146
|
-
VersionChanged: '0.
|
156
|
+
VersionChanged: '0.85'
|
147
157
|
Include:
|
148
158
|
- '**/*.gemfile'
|
149
159
|
- '**/Gemfile'
|
150
160
|
- '**/gems.rb'
|
151
161
|
IgnoredGems: []
|
162
|
+
OnlyFor: []
|
152
163
|
|
153
164
|
Bundler/InsecureProtocolSource:
|
154
165
|
Description: >-
|
@@ -255,10 +266,30 @@ Layout/ArrayAlignment:
|
|
255
266
|
Description: >-
|
256
267
|
Align the elements of an array literal if they span more than
|
257
268
|
one line.
|
258
|
-
StyleGuide: '#
|
269
|
+
StyleGuide: '#no-double-indent'
|
259
270
|
Enabled: true
|
260
271
|
VersionAdded: '0.49'
|
261
272
|
VersionChanged: '0.77'
|
273
|
+
# Alignment of elements of a multi-line array.
|
274
|
+
#
|
275
|
+
# The `with_first_parameter` style aligns the following lines along the same
|
276
|
+
# column as the first element.
|
277
|
+
#
|
278
|
+
# array = [1, 2, 3,
|
279
|
+
# 4, 5, 6]
|
280
|
+
#
|
281
|
+
# The `with_fixed_indentation` style aligns the following lines with one
|
282
|
+
# level of indentation relative to the start of the line with start of array.
|
283
|
+
#
|
284
|
+
# array = [1, 2, 3,
|
285
|
+
# 4, 5, 6]
|
286
|
+
EnforcedStyle: with_first_element
|
287
|
+
SupportedStyles:
|
288
|
+
- with_first_element
|
289
|
+
- with_fixed_indentation
|
290
|
+
# By default, the indentation width from Layout/IndentationWidth is used
|
291
|
+
# But it can be overridden by setting this parameter
|
292
|
+
IndentationWidth: ~
|
262
293
|
|
263
294
|
Layout/AssignmentIndentation:
|
264
295
|
Description: >-
|
@@ -347,6 +378,7 @@ Layout/ConditionPosition:
|
|
347
378
|
StyleGuide: '#same-line-condition'
|
348
379
|
Enabled: true
|
349
380
|
VersionAdded: '0.53'
|
381
|
+
VersionChanged: '0.83'
|
350
382
|
|
351
383
|
Layout/DefEndAlignment:
|
352
384
|
Description: 'Align ends corresponding to defs correctly.'
|
@@ -432,6 +464,19 @@ Layout/EmptyLinesAroundArguments:
|
|
432
464
|
Enabled: true
|
433
465
|
VersionAdded: '0.52'
|
434
466
|
|
467
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
468
|
+
Description: "Keep blank lines around attribute accessors."
|
469
|
+
StyleGuide: '#empty-lines-around-attribute-accessor'
|
470
|
+
Enabled: pending
|
471
|
+
VersionAdded: '0.83'
|
472
|
+
VersionChanged: '0.84'
|
473
|
+
AllowAliasSyntax: true
|
474
|
+
AllowedMethods:
|
475
|
+
- alias_method
|
476
|
+
- public
|
477
|
+
- protected
|
478
|
+
- private
|
479
|
+
|
435
480
|
Layout/EmptyLinesAroundBeginBody:
|
436
481
|
Description: "Keeps track of empty lines around begin-end bodies."
|
437
482
|
StyleGuide: '#empty-lines-around-bodies'
|
@@ -746,13 +791,7 @@ Layout/HeredocIndentation:
|
|
746
791
|
StyleGuide: '#squiggly-heredocs'
|
747
792
|
Enabled: true
|
748
793
|
VersionAdded: '0.49'
|
749
|
-
VersionChanged: '0.
|
750
|
-
EnforcedStyle: squiggly
|
751
|
-
SupportedStyles:
|
752
|
-
- squiggly
|
753
|
-
- active_support
|
754
|
-
- powerpack
|
755
|
-
- unindent
|
794
|
+
VersionChanged: '0.85'
|
756
795
|
|
757
796
|
Layout/IndentationConsistency:
|
758
797
|
Description: 'Keep indentation straight.'
|
@@ -773,6 +812,22 @@ Layout/IndentationConsistency:
|
|
773
812
|
# A reference to `EnforcedStyle: indented_internal_methods`.
|
774
813
|
- https://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#follow-the-coding-conventions
|
775
814
|
|
815
|
+
Layout/IndentationStyle:
|
816
|
+
Description: 'Consistent indentation either with tabs only or spaces only.'
|
817
|
+
StyleGuide: '#spaces-indentation'
|
818
|
+
Enabled: true
|
819
|
+
VersionAdded: '0.49'
|
820
|
+
VersionChanged: '0.82'
|
821
|
+
# By default, the indentation width from Layout/IndentationWidth is used
|
822
|
+
# But it can be overridden by setting this parameter
|
823
|
+
# It is used during auto-correction to determine how many spaces should
|
824
|
+
# replace each tab.
|
825
|
+
IndentationWidth: ~
|
826
|
+
EnforcedStyle: spaces
|
827
|
+
SupportedStyles:
|
828
|
+
- spaces
|
829
|
+
- tabs
|
830
|
+
|
776
831
|
Layout/IndentationWidth:
|
777
832
|
Description: 'Use 2 spaces for indentation.'
|
778
833
|
StyleGuide: '#spaces-indentation'
|
@@ -804,13 +859,13 @@ Layout/LeadingEmptyLines:
|
|
804
859
|
VersionChanged: '0.77'
|
805
860
|
|
806
861
|
Layout/LineLength:
|
807
|
-
Description: '
|
808
|
-
StyleGuide: '#
|
862
|
+
Description: 'Checks that line length does not exceed the configured limit.'
|
863
|
+
StyleGuide: '#max-line-length'
|
809
864
|
Enabled: true
|
810
865
|
VersionAdded: '0.25'
|
811
|
-
VersionChanged: '0.
|
866
|
+
VersionChanged: '0.84'
|
812
867
|
AutoCorrect: false
|
813
|
-
Max:
|
868
|
+
Max: 120
|
814
869
|
# To make it possible to copy or click on URIs in the code, we allow lines
|
815
870
|
# containing a URI to be longer than Max.
|
816
871
|
AllowHeredoc: true
|
@@ -1060,6 +1115,11 @@ Layout/SpaceAroundKeyword:
|
|
1060
1115
|
Enabled: true
|
1061
1116
|
VersionAdded: '0.49'
|
1062
1117
|
|
1118
|
+
Layout/SpaceAroundMethodCallOperator:
|
1119
|
+
Description: 'Checks method call operators to not have spaces around them.'
|
1120
|
+
Enabled: pending
|
1121
|
+
VersionAdded: '0.82'
|
1122
|
+
|
1063
1123
|
Layout/SpaceAroundOperators:
|
1064
1124
|
Description: 'Use a single space around operators.'
|
1065
1125
|
StyleGuide: '#spaces-operators'
|
@@ -1230,18 +1290,6 @@ Layout/SpaceInsideStringInterpolation:
|
|
1230
1290
|
- space
|
1231
1291
|
- no_space
|
1232
1292
|
|
1233
|
-
Layout/Tab:
|
1234
|
-
Description: 'No hard tabs.'
|
1235
|
-
StyleGuide: '#spaces-indentation'
|
1236
|
-
Enabled: true
|
1237
|
-
VersionAdded: '0.49'
|
1238
|
-
VersionChanged: '0.51'
|
1239
|
-
# By default, the indentation width from Layout/IndentationWidth is used
|
1240
|
-
# But it can be overridden by setting this parameter
|
1241
|
-
# It is used during auto-correction to determine how many spaces should
|
1242
|
-
# replace each tab.
|
1243
|
-
IndentationWidth: ~
|
1244
|
-
|
1245
1293
|
Layout/TrailingEmptyLines:
|
1246
1294
|
Description: 'Checks trailing blank lines and final newline.'
|
1247
1295
|
StyleGuide: '#newline-eof'
|
@@ -1258,8 +1306,8 @@ Layout/TrailingWhitespace:
|
|
1258
1306
|
StyleGuide: '#no-trailing-whitespace'
|
1259
1307
|
Enabled: true
|
1260
1308
|
VersionAdded: '0.49'
|
1261
|
-
VersionChanged: '0.
|
1262
|
-
AllowInHeredoc:
|
1309
|
+
VersionChanged: '0.83'
|
1310
|
+
AllowInHeredoc: true
|
1263
1311
|
|
1264
1312
|
#################### Lint ##################################
|
1265
1313
|
### Warnings
|
@@ -1279,6 +1327,7 @@ Lint/AmbiguousOperator:
|
|
1279
1327
|
StyleGuide: '#method-invocation-parens'
|
1280
1328
|
Enabled: true
|
1281
1329
|
VersionAdded: '0.17'
|
1330
|
+
VersionChanged: '0.83'
|
1282
1331
|
|
1283
1332
|
Lint/AmbiguousRegexpLiteral:
|
1284
1333
|
Description: >-
|
@@ -1286,6 +1335,7 @@ Lint/AmbiguousRegexpLiteral:
|
|
1286
1335
|
a method invocation without parentheses.
|
1287
1336
|
Enabled: true
|
1288
1337
|
VersionAdded: '0.17'
|
1338
|
+
VersionChanged: '0.83'
|
1289
1339
|
|
1290
1340
|
Lint/AssignmentInCondition:
|
1291
1341
|
Description: "Don't use assignment in conditions."
|
@@ -1302,7 +1352,9 @@ Lint/BigDecimalNew:
|
|
1302
1352
|
Lint/BooleanSymbol:
|
1303
1353
|
Description: 'Check for `:true` and `:false` symbols.'
|
1304
1354
|
Enabled: true
|
1355
|
+
Safe: false
|
1305
1356
|
VersionAdded: '0.50'
|
1357
|
+
VersionChanged: '0.83'
|
1306
1358
|
|
1307
1359
|
Lint/CircularArgumentReference:
|
1308
1360
|
Description: "Default values in optional keyword arguments and optional ordinal arguments should not refer back to the name of the argument."
|
@@ -1320,6 +1372,11 @@ Lint/DeprecatedClassMethods:
|
|
1320
1372
|
Enabled: true
|
1321
1373
|
VersionAdded: '0.19'
|
1322
1374
|
|
1375
|
+
Lint/DeprecatedOpenSSLConstant:
|
1376
|
+
Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
|
1377
|
+
Enabled: pending
|
1378
|
+
VersionAdded: '0.84'
|
1379
|
+
|
1323
1380
|
Lint/DisjunctiveAssignmentInConstructor:
|
1324
1381
|
Description: 'In constructor, plain assignment is preferred over disjunctive.'
|
1325
1382
|
Enabled: true
|
@@ -1373,18 +1430,16 @@ Lint/EmptyInterpolation:
|
|
1373
1430
|
Lint/EmptyWhen:
|
1374
1431
|
Description: 'Checks for `when` branches with empty bodies.'
|
1375
1432
|
Enabled: true
|
1433
|
+
AllowComments: true
|
1376
1434
|
VersionAdded: '0.45'
|
1377
|
-
|
1378
|
-
Lint/EndInMethod:
|
1379
|
-
Description: 'END blocks should not be placed inside method definitions.'
|
1380
|
-
Enabled: true
|
1381
|
-
VersionAdded: '0.9'
|
1435
|
+
VersionChanged: '0.83'
|
1382
1436
|
|
1383
1437
|
Lint/EnsureReturn:
|
1384
1438
|
Description: 'Do not use return in an ensure block.'
|
1385
1439
|
StyleGuide: '#no-return-ensure'
|
1386
1440
|
Enabled: true
|
1387
1441
|
VersionAdded: '0.9'
|
1442
|
+
VersionChanged: '0.83'
|
1388
1443
|
|
1389
1444
|
Lint/ErbNewArguments:
|
1390
1445
|
Description: 'Use `:trim_mode` and `:eoutvar` keyword arguments to `ERB.new`.'
|
@@ -1478,6 +1533,11 @@ Lint/MissingCopEnableDirective:
|
|
1478
1533
|
# .inf for any size
|
1479
1534
|
MaximumRangeSize: .inf
|
1480
1535
|
|
1536
|
+
Lint/MixedRegexpCaptureTypes:
|
1537
|
+
Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
|
1538
|
+
Enabled: pending
|
1539
|
+
VersionAdded: '0.85'
|
1540
|
+
|
1481
1541
|
Lint/MultipleComparison:
|
1482
1542
|
Description: "Use `&&` operator to compare multiple values."
|
1483
1543
|
Enabled: true
|
@@ -1532,6 +1592,7 @@ Lint/ParenthesesAsGroupedExpression:
|
|
1532
1592
|
StyleGuide: '#parens-no-spaces'
|
1533
1593
|
Enabled: true
|
1534
1594
|
VersionAdded: '0.12'
|
1595
|
+
VersionChanged: '0.83'
|
1535
1596
|
|
1536
1597
|
Lint/PercentStringArray:
|
1537
1598
|
Description: >-
|
@@ -1546,6 +1607,14 @@ Lint/PercentSymbolArray:
|
|
1546
1607
|
Enabled: true
|
1547
1608
|
VersionAdded: '0.41'
|
1548
1609
|
|
1610
|
+
Lint/RaiseException:
|
1611
|
+
Description: Checks for `raise` or `fail` statements which are raising `Exception` class.
|
1612
|
+
StyleGuide: '#raise-exception'
|
1613
|
+
Enabled: pending
|
1614
|
+
VersionAdded: '0.81'
|
1615
|
+
AllowedImplicitNamespaces:
|
1616
|
+
- 'Gem'
|
1617
|
+
|
1549
1618
|
Lint/RandOne:
|
1550
1619
|
Description: >-
|
1551
1620
|
Checks for `rand(1)` calls. Such calls always return `0`
|
@@ -1574,7 +1643,7 @@ Lint/RedundantRequireStatement:
|
|
1574
1643
|
Lint/RedundantSplatExpansion:
|
1575
1644
|
Description: 'Checks for splat unnecessarily being called on literals.'
|
1576
1645
|
Enabled: true
|
1577
|
-
|
1646
|
+
VersionAdded: '0.76'
|
1578
1647
|
|
1579
1648
|
Lint/RedundantStringCoercion:
|
1580
1649
|
Description: 'Checks for Object#to_s usage in string interpolation.'
|
@@ -1688,13 +1757,18 @@ Lint/ShadowingOuterLocalVariable:
|
|
1688
1757
|
Enabled: true
|
1689
1758
|
VersionAdded: '0.9'
|
1690
1759
|
|
1760
|
+
Lint/StructNewOverride:
|
1761
|
+
Description: 'Disallow overriding the `Struct` built-in methods via `Struct.new`.'
|
1762
|
+
Enabled: pending
|
1763
|
+
VersionAdded: '0.81'
|
1764
|
+
|
1691
1765
|
Lint/SuppressedException:
|
1692
1766
|
Description: "Don't suppress exceptions."
|
1693
1767
|
StyleGuide: '#dont-hide-exceptions'
|
1694
1768
|
Enabled: true
|
1695
|
-
AllowComments:
|
1769
|
+
AllowComments: true
|
1696
1770
|
VersionAdded: '0.9'
|
1697
|
-
VersionChanged: '0.
|
1771
|
+
VersionChanged: '0.81'
|
1698
1772
|
|
1699
1773
|
Lint/Syntax:
|
1700
1774
|
Description: 'Checks syntax error.'
|
@@ -1705,6 +1779,7 @@ Lint/Syntax:
|
|
1705
1779
|
Lint/ToJSON:
|
1706
1780
|
Description: 'Ensure #to_json includes an optional argument.'
|
1707
1781
|
Enabled: true
|
1782
|
+
VersionAdded: '0.66'
|
1708
1783
|
|
1709
1784
|
Lint/UnderscorePrefixedVariableName:
|
1710
1785
|
Description: 'Do not use prefix `_` for a variable that is used.'
|
@@ -1736,9 +1811,10 @@ Lint/UnusedMethodArgument:
|
|
1736
1811
|
StyleGuide: '#underscore-unused-vars'
|
1737
1812
|
Enabled: true
|
1738
1813
|
VersionAdded: '0.21'
|
1739
|
-
VersionChanged: '0.
|
1814
|
+
VersionChanged: '0.81'
|
1740
1815
|
AllowUnusedKeywordArguments: false
|
1741
1816
|
IgnoreEmptyMethods: true
|
1817
|
+
IgnoreNotImplementedMethods: true
|
1742
1818
|
|
1743
1819
|
Lint/UriEscapeUnescape:
|
1744
1820
|
Description: >-
|
@@ -1760,7 +1836,7 @@ Lint/UselessAccessModifier:
|
|
1760
1836
|
Description: 'Checks for useless access modifiers.'
|
1761
1837
|
Enabled: true
|
1762
1838
|
VersionAdded: '0.20'
|
1763
|
-
VersionChanged: '0.
|
1839
|
+
VersionChanged: '0.83'
|
1764
1840
|
ContextCreatingMethods: []
|
1765
1841
|
MethodCreatingMethods: []
|
1766
1842
|
|
@@ -1804,9 +1880,10 @@ Metrics/AbcSize:
|
|
1804
1880
|
- https://en.wikipedia.org/wiki/ABC_Software_Metric
|
1805
1881
|
Enabled: true
|
1806
1882
|
VersionAdded: '0.27'
|
1807
|
-
VersionChanged: '0.
|
1883
|
+
VersionChanged: '0.81'
|
1808
1884
|
# The ABC size is a calculated magnitude, so this number can be an Integer or
|
1809
1885
|
# a Float.
|
1886
|
+
IgnoredMethods: []
|
1810
1887
|
Max: 15
|
1811
1888
|
|
1812
1889
|
Metrics/BlockLength:
|
@@ -1846,6 +1923,8 @@ Metrics/CyclomaticComplexity:
|
|
1846
1923
|
of test cases needed to validate a method.
|
1847
1924
|
Enabled: true
|
1848
1925
|
VersionAdded: '0.25'
|
1926
|
+
VersionChanged: '0.81'
|
1927
|
+
IgnoredMethods: []
|
1849
1928
|
Max: 6
|
1850
1929
|
|
1851
1930
|
Metrics/MethodLength:
|
@@ -1879,6 +1958,8 @@ Metrics/PerceivedComplexity:
|
|
1879
1958
|
human reader.
|
1880
1959
|
Enabled: true
|
1881
1960
|
VersionAdded: '0.25'
|
1961
|
+
VersionChanged: '0.81'
|
1962
|
+
IgnoredMethods: []
|
1882
1963
|
Max: 7
|
1883
1964
|
|
1884
1965
|
################## Migration #############################
|
@@ -1888,6 +1969,7 @@ Migration/DepartmentName:
|
|
1888
1969
|
Check that cop names in rubocop:disable (etc) comments are
|
1889
1970
|
given with department name.
|
1890
1971
|
Enabled: true
|
1972
|
+
VersionAdded: '0.75'
|
1891
1973
|
|
1892
1974
|
#################### Naming ##############################
|
1893
1975
|
|
@@ -1929,6 +2011,11 @@ Naming/ClassAndModuleCamelCase:
|
|
1929
2011
|
StyleGuide: '#camelcase-classes'
|
1930
2012
|
Enabled: true
|
1931
2013
|
VersionAdded: '0.50'
|
2014
|
+
VersionChanged: '0.85'
|
2015
|
+
# Allowed class/module names can be specified here.
|
2016
|
+
# These can be full or part of the name.
|
2017
|
+
AllowedNames:
|
2018
|
+
- module_parent
|
1932
2019
|
|
1933
2020
|
Naming/ConstantName:
|
1934
2021
|
Description: 'Constants should use SCREAMING_SNAKE_CASE.'
|
@@ -1949,6 +2036,10 @@ Naming/FileName:
|
|
1949
2036
|
# It further expects it to be nested inside modules which match the names
|
1950
2037
|
# of subdirectories in its path.
|
1951
2038
|
ExpectMatchingDefinition: false
|
2039
|
+
# When `false`, changes the behavior of ExpectMatchingDefinition to match only
|
2040
|
+
# whether each source file's class or module name matches the file name --
|
2041
|
+
# not whether the nested module hierarchy matches the subdirectory path.
|
2042
|
+
CheckDefinitionPathHierarchy: true
|
1952
2043
|
# If non-`nil`, expect all source file names to match the following regex.
|
1953
2044
|
# Only the file name itself is matched, not the entire file path.
|
1954
2045
|
# Use anchors as necessary if you want to match the entire name rather than
|
@@ -2140,7 +2231,7 @@ Security/JSONLoad:
|
|
2140
2231
|
Description: >-
|
2141
2232
|
Prefer usage of `JSON.parse` over `JSON.load` due to potential
|
2142
2233
|
security issues. See reference for more information.
|
2143
|
-
Reference: 'https://ruby-doc.org/stdlib-2.
|
2234
|
+
Reference: 'https://ruby-doc.org/stdlib-2.7.0/libdoc/json/rdoc/JSON.html#method-i-load'
|
2144
2235
|
Enabled: true
|
2145
2236
|
VersionAdded: '0.43'
|
2146
2237
|
VersionChanged: '0.44'
|
@@ -2153,7 +2244,7 @@ Security/MarshalLoad:
|
|
2153
2244
|
Description: >-
|
2154
2245
|
Avoid using of `Marshal.load` or `Marshal.restore` due to potential
|
2155
2246
|
security issues. See reference for more information.
|
2156
|
-
Reference: 'https://ruby-doc.org/core-2.
|
2247
|
+
Reference: 'https://ruby-doc.org/core-2.7.0/Marshal.html#module-Marshal-label-Security+considerations'
|
2157
2248
|
Enabled: true
|
2158
2249
|
VersionAdded: '0.47'
|
2159
2250
|
|
@@ -2167,7 +2258,7 @@ Security/YAMLLoad:
|
|
2167
2258
|
Description: >-
|
2168
2259
|
Prefer usage of `YAML.safe_load` over `YAML.load` due to potential
|
2169
2260
|
security issues. See reference for more information.
|
2170
|
-
Reference: 'https://ruby-doc.org/stdlib-2.
|
2261
|
+
Reference: 'https://ruby-doc.org/stdlib-2.7.0/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security'
|
2171
2262
|
Enabled: true
|
2172
2263
|
VersionAdded: '0.47'
|
2173
2264
|
SafeAutoCorrect: false
|
@@ -2178,10 +2269,12 @@ Style/AccessModifierDeclarations:
|
|
2178
2269
|
Description: 'Checks style of how access modifiers are used.'
|
2179
2270
|
Enabled: true
|
2180
2271
|
VersionAdded: '0.57'
|
2272
|
+
VersionChanged: '0.81'
|
2181
2273
|
EnforcedStyle: group
|
2182
2274
|
SupportedStyles:
|
2183
2275
|
- inline
|
2184
2276
|
- group
|
2277
|
+
AllowModifiersOnSymbols: true
|
2185
2278
|
|
2186
2279
|
Style/Alias:
|
2187
2280
|
Description: 'Use alias instead of alias_method.'
|
@@ -2202,7 +2295,7 @@ Style/AndOr:
|
|
2202
2295
|
VersionChanged: '0.25'
|
2203
2296
|
# Whether `and` and `or` are banned only in conditionals (conditionals)
|
2204
2297
|
# or completely (always).
|
2205
|
-
EnforcedStyle:
|
2298
|
+
EnforcedStyle: conditionals
|
2206
2299
|
SupportedStyles:
|
2207
2300
|
- always
|
2208
2301
|
- conditionals
|
@@ -2372,6 +2465,15 @@ Style/CaseEquality:
|
|
2372
2465
|
StyleGuide: '#no-case-equality'
|
2373
2466
|
Enabled: true
|
2374
2467
|
VersionAdded: '0.9'
|
2468
|
+
# If AllowOnConstant is enabled, the cop will ignore violations when the receiver of
|
2469
|
+
# the case equality operator is a constant.
|
2470
|
+
#
|
2471
|
+
# # bad
|
2472
|
+
# /string/ === "string"
|
2473
|
+
#
|
2474
|
+
# # good
|
2475
|
+
# String === "string"
|
2476
|
+
AllowOnConstant: false
|
2375
2477
|
|
2376
2478
|
Style/CharacterLiteral:
|
2377
2479
|
Description: 'Checks for uses of character literals.'
|
@@ -2412,6 +2514,7 @@ Style/ClassAndModuleChildren:
|
|
2412
2514
|
|
2413
2515
|
Style/ClassCheck:
|
2414
2516
|
Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
|
2517
|
+
StyleGuide: '#is-a-vs-kind-of'
|
2415
2518
|
Enabled: true
|
2416
2519
|
VersionAdded: '0.24'
|
2417
2520
|
EnforcedStyle: is_a?
|
@@ -2435,7 +2538,7 @@ Style/ClassVars:
|
|
2435
2538
|
# Align with the style guide.
|
2436
2539
|
Style/CollectionMethods:
|
2437
2540
|
Description: 'Preferred collection methods.'
|
2438
|
-
StyleGuide: '#map-find-select-reduce-size'
|
2541
|
+
StyleGuide: '#map-find-select-reduce-include-size'
|
2439
2542
|
Enabled: false
|
2440
2543
|
VersionAdded: '0.9'
|
2441
2544
|
VersionChanged: '0.27'
|
@@ -2452,6 +2555,7 @@ Style/CollectionMethods:
|
|
2452
2555
|
inject: 'reduce'
|
2453
2556
|
detect: 'find'
|
2454
2557
|
find_all: 'select'
|
2558
|
+
member?: 'include?'
|
2455
2559
|
|
2456
2560
|
Style/ColonMethodCall:
|
2457
2561
|
Description: 'Do not use :: for method call.'
|
@@ -2578,6 +2682,12 @@ Style/Dir:
|
|
2578
2682
|
Enabled: true
|
2579
2683
|
VersionAdded: '0.50'
|
2580
2684
|
|
2685
|
+
Style/DisableCopsWithinSourceCodeDirective:
|
2686
|
+
Description: >-
|
2687
|
+
Forbids disabling/enabling cops within source code.
|
2688
|
+
Enabled: false
|
2689
|
+
VersionAdded: '0.82'
|
2690
|
+
|
2581
2691
|
Style/Documentation:
|
2582
2692
|
Description: 'Document classes and non-namespace modules.'
|
2583
2693
|
Enabled: true
|
@@ -2605,6 +2715,11 @@ Style/DoubleNegation:
|
|
2605
2715
|
StyleGuide: '#no-bang-bang'
|
2606
2716
|
Enabled: true
|
2607
2717
|
VersionAdded: '0.19'
|
2718
|
+
VersionChanged: '0.84'
|
2719
|
+
EnforcedStyle: allowed_in_returns
|
2720
|
+
SupportedStyles:
|
2721
|
+
- allowed_in_returns
|
2722
|
+
- forbidden
|
2608
2723
|
|
2609
2724
|
Style/EachForSimpleLoop:
|
2610
2725
|
Description: >-
|
@@ -2677,6 +2792,7 @@ Style/EndBlock:
|
|
2677
2792
|
StyleGuide: '#no-END-blocks'
|
2678
2793
|
Enabled: true
|
2679
2794
|
VersionAdded: '0.9'
|
2795
|
+
VersionChanged: '0.81'
|
2680
2796
|
|
2681
2797
|
Style/EvalWithLocation:
|
2682
2798
|
Description: 'Pass `__FILE__` and `__LINE__` to `eval` method, as they are used by backtraces.'
|
@@ -2695,6 +2811,17 @@ Style/ExpandPathArguments:
|
|
2695
2811
|
Enabled: true
|
2696
2812
|
VersionAdded: '0.53'
|
2697
2813
|
|
2814
|
+
Style/ExponentialNotation:
|
2815
|
+
Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
|
2816
|
+
StyleGuide: '#exponential-notation'
|
2817
|
+
Enabled: pending
|
2818
|
+
VersionAdded: '0.82'
|
2819
|
+
EnforcedStyle: scientific
|
2820
|
+
SupportedStyles:
|
2821
|
+
- scientific
|
2822
|
+
- engineering
|
2823
|
+
- integral
|
2824
|
+
|
2698
2825
|
Style/FloatDivision:
|
2699
2826
|
Description: 'For performing float division, coerce one side only.'
|
2700
2827
|
StyleGuide: '#float-division'
|
@@ -2756,8 +2883,7 @@ Style/FrozenStringLiteralComment:
|
|
2756
2883
|
SupportedStyles:
|
2757
2884
|
# `always` will always add the frozen string literal comment to a file
|
2758
2885
|
# regardless of the Ruby version or if `freeze` or `<<` are called on a
|
2759
|
-
# string literal.
|
2760
|
-
# possible that this will create errors in Ruby 2.3.0+.
|
2886
|
+
# string literal. It is possible that this will create errors.
|
2761
2887
|
- always
|
2762
2888
|
# `always_true` will add the frozen string literal comment to a file,
|
2763
2889
|
# similarly to the `always` style, but will also change any disabled
|
@@ -2863,6 +2989,7 @@ Style/IfWithSemicolon:
|
|
2863
2989
|
StyleGuide: '#no-semicolon-ifs'
|
2864
2990
|
Enabled: true
|
2865
2991
|
VersionAdded: '0.9'
|
2992
|
+
VersionChanged: '0.83'
|
2866
2993
|
|
2867
2994
|
Style/ImplicitRuntimeError:
|
2868
2995
|
Description: >-
|
@@ -2937,7 +3064,7 @@ Style/LambdaCall:
|
|
2937
3064
|
Description: 'Use lambda.call(...) instead of lambda.(...).'
|
2938
3065
|
StyleGuide: '#proc-call'
|
2939
3066
|
Enabled: true
|
2940
|
-
VersionAdded: '0.13
|
3067
|
+
VersionAdded: '0.13'
|
2941
3068
|
VersionChanged: '0.14'
|
2942
3069
|
EnforcedStyle: call
|
2943
3070
|
SupportedStyles:
|
@@ -3067,6 +3194,7 @@ Style/ModuleFunction:
|
|
3067
3194
|
SupportedStyles:
|
3068
3195
|
- module_function
|
3069
3196
|
- extend_self
|
3197
|
+
- forbidden
|
3070
3198
|
Autocorrect: false
|
3071
3199
|
SafeAutoCorrect: false
|
3072
3200
|
|
@@ -3339,7 +3467,9 @@ Style/OptionalArguments:
|
|
3339
3467
|
of the argument list.
|
3340
3468
|
StyleGuide: '#optional-arguments'
|
3341
3469
|
Enabled: true
|
3470
|
+
Safe: false
|
3342
3471
|
VersionAdded: '0.33'
|
3472
|
+
VersionChanged: '0.83'
|
3343
3473
|
|
3344
3474
|
Style/OrAssignment:
|
3345
3475
|
Description: 'Recommend usage of double pipe equals (||=) where applicable.'
|
@@ -3488,6 +3618,16 @@ Style/RedundantPercentQ:
|
|
3488
3618
|
Enabled: true
|
3489
3619
|
VersionAdded: '0.76'
|
3490
3620
|
|
3621
|
+
Style/RedundantRegexpCharacterClass:
|
3622
|
+
Description: 'Checks for unnecessary single-element Regexp character classes.'
|
3623
|
+
Enabled: pending
|
3624
|
+
VersionAdded: '0.85'
|
3625
|
+
|
3626
|
+
Style/RedundantRegexpEscape:
|
3627
|
+
Description: 'Checks for redundant escapes in Regexps.'
|
3628
|
+
Enabled: pending
|
3629
|
+
VersionAdded: '0.85'
|
3630
|
+
|
3491
3631
|
Style/RedundantReturn:
|
3492
3632
|
Description: "Don't use return where it's not required."
|
3493
3633
|
StyleGuide: '#no-explicit-return'
|
@@ -3644,6 +3784,12 @@ Style/SingleLineMethods:
|
|
3644
3784
|
VersionChanged: '0.19'
|
3645
3785
|
AllowIfMethodIsEmpty: true
|
3646
3786
|
|
3787
|
+
Style/SlicingWithRange:
|
3788
|
+
Description: 'Checks array slicing is done with endless ranges when suitable.'
|
3789
|
+
Enabled: pending
|
3790
|
+
VersionAdded: '0.83'
|
3791
|
+
Safe: false
|
3792
|
+
|
3647
3793
|
Style/SpecialGlobalVars:
|
3648
3794
|
Description: 'Avoid Perl-style global variables.'
|
3649
3795
|
StyleGuide: '#no-cryptic-perlisms'
|
@@ -3806,22 +3952,29 @@ Style/TrailingCommaInArrayLiteral:
|
|
3806
3952
|
StyleGuide: '#no-trailing-array-commas'
|
3807
3953
|
Enabled: true
|
3808
3954
|
VersionAdded: '0.53'
|
3955
|
+
# If `comma`, the cop requires a comma after the last item in an array,
|
3809
3956
|
# but only when each item is on its own line.
|
3810
3957
|
# If `consistent_comma`, the cop requires a comma after the last item of all
|
3811
|
-
# non-empty array literals.
|
3958
|
+
# non-empty, multiline array literals.
|
3812
3959
|
EnforcedStyleForMultiline: no_comma
|
3813
3960
|
SupportedStylesForMultiline:
|
3814
3961
|
- comma
|
3815
3962
|
- consistent_comma
|
3816
3963
|
- no_comma
|
3817
3964
|
|
3965
|
+
Style/TrailingCommaInBlockArgs:
|
3966
|
+
Description: 'Checks for useless trailing commas in block arguments.'
|
3967
|
+
Enabled: false
|
3968
|
+
Safe: false
|
3969
|
+
VersionAdded: '0.81'
|
3970
|
+
|
3818
3971
|
Style/TrailingCommaInHashLiteral:
|
3819
3972
|
Description: 'Checks for trailing comma in hash literals.'
|
3820
3973
|
Enabled: true
|
3821
3974
|
# If `comma`, the cop requires a comma after the last item in a hash,
|
3822
3975
|
# but only when each item is on its own line.
|
3823
3976
|
# If `consistent_comma`, the cop requires a comma after the last item of all
|
3824
|
-
# non-empty hash literals.
|
3977
|
+
# non-empty, multiline hash literals.
|
3825
3978
|
EnforcedStyleForMultiline: no_comma
|
3826
3979
|
SupportedStylesForMultiline:
|
3827
3980
|
- comma
|