rubocop 0.80.1 → 0.85.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 +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
|
[](https://badge.fury.io/rb/rubocop)
|
2
2
|
[](https://circleci.com/gh/rubocop-hq/rubocop/tree/master)
|
3
|
-
[](https://github.com/rubocop-hq/rubocop/actions?query=workflow%3ACI)
|
4
4
|
[](https://codeclimate.com/github/bbatsov/rubocop)
|
5
5
|
[](https://codeclimate.com/github/bbatsov/rubocop)
|
6
6
|
[](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
|