rubocop 1.26.0 → 1.36.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 +7 -5
- data/config/default.yml +254 -47
- data/config/obsoletion.yml +35 -2
- data/exe/rubocop +15 -7
- data/lib/rubocop/cache_config.rb +29 -0
- data/lib/rubocop/cli/command/{auto_genenerate_config.rb → auto_generate_config.rb} +20 -5
- data/lib/rubocop/cli/command/execute_runner.rb +1 -1
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -1
- data/lib/rubocop/cli/command/show_cops.rb +1 -1
- data/lib/rubocop/cli/command/suggest_extensions.rb +54 -16
- data/lib/rubocop/cli.rb +2 -0
- data/lib/rubocop/config.rb +6 -2
- data/lib/rubocop/config_finder.rb +68 -0
- data/lib/rubocop/config_loader.rb +15 -41
- data/lib/rubocop/config_loader_resolver.rb +2 -6
- data/lib/rubocop/config_obsoletion/changed_parameter.rb +5 -0
- data/lib/rubocop/config_obsoletion/extracted_cop.rb +3 -1
- data/lib/rubocop/config_obsoletion/parameter_rule.rb +4 -0
- data/lib/rubocop/config_obsoletion.rb +7 -2
- data/lib/rubocop/config_validator.rb +21 -4
- data/lib/rubocop/cop/autocorrect_logic.rb +8 -2
- data/lib/rubocop/cop/badge.rb +1 -1
- data/lib/rubocop/cop/base.rb +6 -2
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +3 -7
- data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
- data/lib/rubocop/cop/bundler/gem_filename.rb +5 -5
- data/lib/rubocop/cop/bundler/ordered_gems.rb +2 -2
- data/lib/rubocop/cop/cop.rb +1 -1
- data/lib/rubocop/cop/corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/condition_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +4 -2
- data/lib/rubocop/cop/correctors/if_then_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +7 -1
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +3 -3
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +59 -1
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/space_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/string_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +2 -2
- data/lib/rubocop/cop/gemspec/dependency_version.rb +156 -0
- data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +92 -0
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +5 -12
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
- data/lib/rubocop/cop/gemspec/require_mfa.rb +21 -21
- data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +1 -1
- data/lib/rubocop/cop/generator/require_file_injector.rb +2 -2
- data/lib/rubocop/cop/generator.rb +5 -1
- data/lib/rubocop/cop/internal_affairs/cop_description.rb +96 -0
- data/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +80 -0
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +1 -5
- data/lib/rubocop/cop/internal_affairs/numblock_handler.rb +69 -0
- data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +62 -0
- data/lib/rubocop/cop/internal_affairs/useless_restrict_on_send.rb +60 -0
- data/lib/rubocop/cop/internal_affairs.rb +5 -0
- data/lib/rubocop/cop/layout/argument_alignment.rb +22 -1
- data/lib/rubocop/cop/layout/assignment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/block_alignment.rb +17 -13
- data/lib/rubocop/cop/layout/block_end_newline.rb +36 -6
- data/lib/rubocop/cop/layout/case_indentation.rb +17 -1
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/comment_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/condition_position.rb +1 -1
- data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/dot_position.rb +1 -1
- data/lib/rubocop/cop/layout/else_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_comment.rb +2 -2
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +5 -2
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +25 -4
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +7 -5
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +10 -10
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +10 -10
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/end_of_line.rb +5 -5
- data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +34 -29
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +21 -14
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +52 -13
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/hash_alignment.rb +2 -0
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +1 -1
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_style.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_width.rb +16 -10
- data/lib/rubocop/cop/layout/initial_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
- data/lib/rubocop/cop/layout/leading_empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/line_continuation_leading_space.rb +112 -0
- data/lib/rubocop/cop/layout/line_continuation_spacing.rb +130 -0
- data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/line_length.rb +11 -6
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +2 -2
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +4 -2
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +5 -2
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +22 -5
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +45 -0
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +3 -3
- data/lib/rubocop/cop/layout/redundant_line_break.rb +5 -6
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +1 -1
- data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +3 -3
- data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_operators.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +5 -3
- data/lib/rubocop/cop/layout/space_before_brackets.rb +7 -0
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +1 -1
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +10 -10
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +33 -15
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +1 -1
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +9 -9
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +3 -3
- data/lib/rubocop/cop/legacy/corrections_proxy.rb +1 -1
- data/lib/rubocop/cop/legacy/corrector.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +28 -7
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +7 -7
- data/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_range.rb +5 -5
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -1
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
- data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -1
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
- data/lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +51 -0
- data/lib/rubocop/cop/lint/debugger.rb +27 -17
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +15 -9
- data/lib/rubocop/cop/lint/deprecated_constants.rb +1 -1
- data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_require.rb +11 -2
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
- data/lib/rubocop/cop/lint/else_layout.rb +3 -3
- data/lib/rubocop/cop/lint/empty_block.rb +2 -2
- data/lib/rubocop/cop/lint/empty_class.rb +1 -1
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +99 -3
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
- data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
- data/lib/rubocop/cop/lint/empty_file.rb +1 -1
- data/lib/rubocop/cop/lint/empty_in_pattern.rb +4 -2
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/empty_when.rb +4 -2
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +10 -10
- data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
- data/lib/rubocop/cop/lint/float_comparison.rb +1 -1
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -1
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
- data/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +11 -4
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -1
- data/lib/rubocop/cop/lint/interpolation_check.rb +2 -2
- data/lib/rubocop/cop/lint/lambda_without_literal_block.rb +10 -3
- data/lib/rubocop/cop/lint/literal_as_condition.rb +6 -1
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +5 -1
- data/lib/rubocop/cop/lint/loop.rb +2 -2
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +1 -1
- data/lib/rubocop/cop/lint/missing_super.rb +1 -1
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +25 -6
- data/lib/rubocop/cop/lint/non_atomic_file_operation.rb +157 -0
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +17 -5
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +32 -10
- data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +2 -3
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +2 -2
- data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
- data/lib/rubocop/cop/lint/raise_exception.rb +2 -2
- data/lib/rubocop/cop/lint/rand_one.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +6 -6
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_dir_glob_sort.rb +3 -3
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +4 -1
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +16 -3
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_with_index.rb +14 -11
- data/lib/rubocop/cop/lint/redundant_with_object.rb +13 -12
- data/lib/rubocop/cop/lint/refinement_import_methods.rb +51 -0
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +3 -3
- data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
- data/lib/rubocop/cop/lint/require_range_parentheses.rb +57 -0
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/return_in_void_context.rb +6 -18
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +38 -1
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +1 -1
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
- data/lib/rubocop/cop/lint/script_permission.rb +1 -1
- data/lib/rubocop/cop/lint/self_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -1
- data/lib/rubocop/cop/lint/shadowed_exception.rb +16 -1
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +32 -1
- data/lib/rubocop/cop/lint/struct_new_override.rb +3 -3
- data/lib/rubocop/cop/lint/suppressed_exception.rb +1 -1
- data/lib/rubocop/cop/lint/symbol_conversion.rb +4 -3
- data/lib/rubocop/cop/lint/syntax.rb +2 -3
- data/lib/rubocop/cop/lint/to_enum_arguments.rb +1 -1
- data/lib/rubocop/cop/lint/to_json.rb +1 -1
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +2 -2
- data/lib/rubocop/cop/lint/triple_quotes.rb +1 -1
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -1
- data/lib/rubocop/cop/lint/unexpected_block_arity.rb +1 -1
- data/lib/rubocop/cop/lint/unified_integer.rb +3 -1
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/unreachable_loop.rb +13 -7
- data/lib/rubocop/cop/lint/unused_block_argument.rb +1 -1
- data/lib/rubocop/cop/lint/unused_method_argument.rb +2 -2
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +1 -1
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +9 -7
- data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +2 -3
- data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +2 -2
- data/lib/rubocop/cop/lint/useless_setter_call.rb +2 -2
- data/lib/rubocop/cop/lint/useless_times.rb +2 -2
- data/lib/rubocop/cop/lint/void.rb +3 -1
- data/lib/rubocop/cop/metrics/abc_size.rb +4 -2
- data/lib/rubocop/cop/metrics/block_length.rb +7 -7
- data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
- data/lib/rubocop/cop/metrics/class_length.rb +1 -1
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/method_length.rb +9 -8
- data/lib/rubocop/cop/metrics/module_length.rb +1 -1
- data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +2 -3
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +22 -3
- data/lib/rubocop/cop/mixin/allowed_methods.rb +20 -1
- data/lib/rubocop/cop/mixin/allowed_pattern.rb +56 -0
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +5 -1
- data/lib/rubocop/cop/mixin/comments_help.rb +28 -2
- data/lib/rubocop/cop/mixin/def_node.rb +2 -7
- data/lib/rubocop/cop/mixin/duplication.rb +1 -1
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -1
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +83 -4
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +10 -6
- data/lib/rubocop/cop/mixin/line_length_help.rb +17 -6
- data/lib/rubocop/cop/mixin/method_complexity.rb +8 -13
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +34 -12
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +4 -3
- data/lib/rubocop/cop/mixin/percent_array.rb +60 -1
- data/lib/rubocop/cop/mixin/preferred_delimiters.rb +2 -2
- data/lib/rubocop/cop/mixin/range_help.rb +10 -7
- data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -1
- data/lib/rubocop/cop/mixin/string_help.rb +1 -1
- data/lib/rubocop/cop/mixin/surrounding_space.rb +4 -2
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -1
- data/lib/rubocop/cop/naming/accessor_method_name.rb +4 -2
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/block_forwarding.rb +4 -4
- data/lib/rubocop/cop/naming/block_parameter_name.rb +2 -2
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +3 -3
- data/lib/rubocop/cop/naming/file_name.rb +2 -2
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
- data/lib/rubocop/cop/naming/inclusive_language.rb +3 -2
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/method_name.rb +6 -6
- data/lib/rubocop/cop/naming/method_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/predicate_name.rb +32 -3
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/variable_name.rb +10 -1
- data/lib/rubocop/cop/naming/variable_number.rb +28 -18
- data/lib/rubocop/cop/offense.rb +1 -1
- data/lib/rubocop/cop/security/compound_hash.rb +105 -0
- data/lib/rubocop/cop/security/eval.rb +1 -1
- data/lib/rubocop/cop/security/json_load.rb +1 -1
- data/lib/rubocop/cop/security/marshal_load.rb +1 -1
- data/lib/rubocop/cop/security/open.rb +1 -1
- data/lib/rubocop/cop/security/yaml_load.rb +2 -2
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +77 -1
- data/lib/rubocop/cop/style/accessor_grouping.rb +4 -4
- data/lib/rubocop/cop/style/alias.rb +4 -4
- data/lib/rubocop/cop/style/and_or.rb +12 -12
- data/lib/rubocop/cop/style/arguments_forwarding.rb +3 -3
- data/lib/rubocop/cop/style/array_coercion.rb +1 -1
- data/lib/rubocop/cop/style/array_join.rb +1 -1
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/attr.rb +1 -1
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
- data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
- data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -1
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +1 -1
- data/lib/rubocop/cop/style/block_delimiters.rb +35 -9
- data/lib/rubocop/cop/style/case_equality.rb +41 -11
- data/lib/rubocop/cop/style/case_like_if.rb +2 -2
- data/lib/rubocop/cop/style/character_literal.rb +1 -1
- data/lib/rubocop/cop/style/class_and_module_children.rb +5 -5
- data/lib/rubocop/cop/style/class_check.rb +1 -1
- data/lib/rubocop/cop/style/class_equality_comparison.rb +51 -4
- data/lib/rubocop/cop/style/class_methods.rb +1 -1
- data/lib/rubocop/cop/style/class_methods_definitions.rb +3 -2
- data/lib/rubocop/cop/style/class_vars.rb +1 -1
- data/lib/rubocop/cop/style/collection_compact.rb +4 -4
- data/lib/rubocop/cop/style/collection_methods.rb +3 -1
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/combinable_loops.rb +4 -2
- data/lib/rubocop/cop/style/command_literal.rb +1 -1
- data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
- data/lib/rubocop/cop/style/commented_keyword.rb +4 -4
- data/lib/rubocop/cop/style/conditional_assignment.rb +2 -1
- data/lib/rubocop/cop/style/constant_visibility.rb +1 -1
- data/lib/rubocop/cop/style/date_time.rb +2 -2
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/dir.rb +4 -1
- data/lib/rubocop/cop/style/documentation.rb +1 -1
- data/lib/rubocop/cop/style/documentation_method.rb +1 -1
- data/lib/rubocop/cop/style/double_negation.rb +62 -3
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +42 -7
- data/lib/rubocop/cop/style/each_with_object.rb +40 -9
- data/lib/rubocop/cop/style/empty_block_parameter.rb +2 -2
- data/lib/rubocop/cop/style/empty_case_condition.rb +3 -4
- data/lib/rubocop/cop/style/empty_else.rb +40 -3
- data/lib/rubocop/cop/style/empty_heredoc.rb +73 -0
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +2 -2
- data/lib/rubocop/cop/style/empty_literal.rb +2 -2
- data/lib/rubocop/cop/style/empty_method.rb +17 -2
- data/lib/rubocop/cop/style/encoding.rb +2 -2
- data/lib/rubocop/cop/style/end_block.rb +1 -1
- data/lib/rubocop/cop/style/endless_method.rb +1 -1
- data/lib/rubocop/cop/style/env_home.rb +56 -0
- data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
- data/lib/rubocop/cop/style/even_odd.rb +1 -1
- data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -1
- data/lib/rubocop/cop/style/explicit_block_argument.rb +2 -2
- data/lib/rubocop/cop/style/exponential_notation.rb +1 -1
- data/lib/rubocop/cop/style/fetch_env_var.rb +132 -0
- data/lib/rubocop/cop/style/file_write.rb +12 -0
- data/lib/rubocop/cop/style/float_division.rb +1 -1
- data/lib/rubocop/cop/style/for.rb +3 -1
- data/lib/rubocop/cop/style/format_string.rb +1 -1
- data/lib/rubocop/cop/style/format_string_token.rb +73 -23
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +6 -3
- data/lib/rubocop/cop/style/global_std_stream.rb +1 -1
- data/lib/rubocop/cop/style/global_vars.rb +1 -1
- data/lib/rubocop/cop/style/guard_clause.rb +62 -4
- data/lib/rubocop/cop/style/hash_as_last_array_item.rb +1 -1
- data/lib/rubocop/cop/style/hash_conversion.rb +1 -1
- data/lib/rubocop/cop/style/hash_each_methods.rb +4 -2
- data/lib/rubocop/cop/style/hash_except.rb +85 -9
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -1
- data/lib/rubocop/cop/style/hash_syntax.rb +20 -3
- data/lib/rubocop/cop/style/hash_transform_keys.rb +6 -1
- data/lib/rubocop/cop/style/hash_transform_values.rb +4 -1
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +4 -4
- data/lib/rubocop/cop/style/if_unless_modifier.rb +6 -5
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +4 -2
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +3 -3
- data/lib/rubocop/cop/style/in_pattern_then.rb +1 -1
- data/lib/rubocop/cop/style/inline_comment.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +10 -8
- data/lib/rubocop/cop/style/ip_addresses.rb +1 -1
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +2 -2
- data/lib/rubocop/cop/style/lambda.rb +1 -1
- data/lib/rubocop/cop/style/lambda_call.rb +1 -1
- data/lib/rubocop/cop/style/line_end_concatenation.rb +2 -2
- data/lib/rubocop/cop/style/magic_comment_format.rb +307 -0
- data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +136 -0
- data/lib/rubocop/cop/style/map_to_hash.rb +3 -3
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +4 -4
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +6 -2
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +12 -12
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +20 -3
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +5 -2
- data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/min_max.rb +1 -1
- data/lib/rubocop/cop/style/missing_else.rb +24 -24
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
- data/lib/rubocop/cop/style/mixin_grouping.rb +2 -2
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
- data/lib/rubocop/cop/style/module_function.rb +3 -3
- data/lib/rubocop/cop/style/multiline_block_chain.rb +4 -2
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +2 -2
- data/lib/rubocop/cop/style/multiline_if_then.rb +1 -1
- data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +3 -5
- data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
- data/lib/rubocop/cop/style/multiline_method_signature.rb +2 -2
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +37 -11
- data/lib/rubocop/cop/style/multiline_when_then.rb +2 -4
- data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +1 -1
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -1
- data/lib/rubocop/cop/style/nested_file_dirname.rb +1 -1
- data/lib/rubocop/cop/style/nested_modifier.rb +1 -1
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +11 -2
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +20 -8
- data/lib/rubocop/cop/style/next.rb +4 -6
- data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
- data/lib/rubocop/cop/style/nil_lambda.rb +3 -3
- data/lib/rubocop/cop/style/non_nil_check.rb +1 -1
- data/lib/rubocop/cop/style/not.rb +2 -2
- data/lib/rubocop/cop/style/numbered_parameters.rb +1 -1
- data/lib/rubocop/cop/style/numbered_parameters_limit.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literals.rb +16 -1
- data/lib/rubocop/cop/style/numeric_predicate.rb +53 -11
- data/lib/rubocop/cop/style/object_then.rb +71 -0
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -1
- data/lib/rubocop/cop/style/open_struct_use.rb +1 -1
- data/lib/rubocop/cop/style/option_hash.rb +1 -1
- data/lib/rubocop/cop/style/optional_arguments.rb +2 -2
- data/lib/rubocop/cop/style/optional_boolean_parameter.rb +2 -2
- data/lib/rubocop/cop/style/or_assignment.rb +1 -1
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +1 -1
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
- data/lib/rubocop/cop/style/perl_backrefs.rb +23 -2
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -1
- data/lib/rubocop/cop/style/proc.rb +5 -2
- data/lib/rubocop/cop/style/quoted_symbols.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +10 -4
- data/lib/rubocop/cop/style/random_with_offset.rb +1 -1
- data/lib/rubocop/cop/style/redundant_argument.rb +2 -2
- data/lib/rubocop/cop/style/redundant_assignment.rb +1 -1
- data/lib/rubocop/cop/style/redundant_begin.rb +19 -6
- data/lib/rubocop/cop/style/redundant_capital_w.rb +2 -3
- data/lib/rubocop/cop/style/redundant_condition.rb +129 -13
- data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
- data/lib/rubocop/cop/style/redundant_exception.rb +1 -1
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +2 -2
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
- data/lib/rubocop/cop/style/redundant_initialize.rb +154 -0
- data/lib/rubocop/cop/style/redundant_interpolation.rb +22 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +22 -24
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -1
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +8 -3
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +2 -2
- data/lib/rubocop/cop/style/redundant_return.rb +2 -2
- data/lib/rubocop/cop/style/redundant_self.rb +3 -1
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +3 -4
- data/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +1 -1
- data/lib/rubocop/cop/style/redundant_sort.rb +22 -7
- data/lib/rubocop/cop/style/redundant_sort_by.rb +25 -9
- data/lib/rubocop/cop/style/regexp_literal.rb +1 -1
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
- data/lib/rubocop/cop/style/rescue_standard_error.rb +13 -13
- data/lib/rubocop/cop/style/return_nil.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +21 -11
- data/lib/rubocop/cop/style/sample.rb +1 -1
- data/lib/rubocop/cop/style/select_by_regexp.rb +7 -2
- data/lib/rubocop/cop/style/self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/semicolon.rb +28 -4
- data/lib/rubocop/cop/style/send.rb +1 -1
- data/lib/rubocop/cop/style/signal_exception.rb +1 -1
- data/lib/rubocop/cop/style/single_argument_dig.rb +5 -0
- data/lib/rubocop/cop/style/single_line_block_params.rb +2 -2
- data/lib/rubocop/cop/style/single_line_methods.rb +2 -2
- data/lib/rubocop/cop/style/slicing_with_range.rb +1 -1
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +96 -30
- data/lib/rubocop/cop/style/special_global_vars.rb +66 -8
- data/lib/rubocop/cop/style/static_class.rb +1 -1
- data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
- data/lib/rubocop/cop/style/string_chars.rb +1 -1
- data/lib/rubocop/cop/style/string_concatenation.rb +6 -7
- data/lib/rubocop/cop/style/string_hash_keys.rb +1 -1
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/string_methods.rb +1 -1
- data/lib/rubocop/cop/style/strip.rb +1 -1
- data/lib/rubocop/cop/style/struct_inheritance.rb +4 -4
- data/lib/rubocop/cop/style/swap_values.rb +2 -2
- data/lib/rubocop/cop/style/symbol_array.rb +9 -6
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
- data/lib/rubocop/cop/style/symbol_proc.rb +70 -12
- data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -16
- data/lib/rubocop/cop/style/top_level_method_definition.rb +3 -1
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -2
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +1 -1
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +1 -1
- data/lib/rubocop/cop/style/trivial_accessors.rb +11 -9
- data/lib/rubocop/cop/style/unless_else.rb +5 -1
- data/lib/rubocop/cop/style/unless_logical_operators.rb +1 -1
- data/lib/rubocop/cop/style/unpack_first.rb +5 -2
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +1 -1
- data/lib/rubocop/cop/style/word_array.rb +4 -5
- data/lib/rubocop/cop/style/yoda_condition.rb +1 -1
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -1
- data/lib/rubocop/cop/team.rb +2 -2
- data/lib/rubocop/cop/util.rb +3 -3
- data/lib/rubocop/cop/variable_force/branch.rb +1 -1
- data/lib/rubocop/cops_documentation_generator.rb +19 -2
- data/lib/rubocop/ext/range.rb +15 -0
- data/lib/rubocop/feature_loader.rb +94 -0
- data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +11 -8
- data/lib/rubocop/formatter/formatter_set.rb +20 -18
- data/lib/rubocop/formatter/git_hub_actions_formatter.rb +15 -2
- data/lib/rubocop/formatter/html_formatter.rb +5 -13
- data/lib/rubocop/formatter/markdown_formatter.rb +78 -0
- data/lib/rubocop/formatter/offense_count_formatter.rb +8 -2
- data/lib/rubocop/formatter/simple_text_formatter.rb +9 -8
- data/lib/rubocop/formatter/tap_formatter.rb +1 -1
- data/lib/rubocop/formatter/worst_offenders_formatter.rb +1 -2
- data/lib/rubocop/formatter.rb +31 -0
- data/lib/rubocop/magic_comment.rb +31 -5
- data/lib/rubocop/options.rb +103 -34
- data/lib/rubocop/rake_task.rb +34 -9
- data/lib/rubocop/result_cache.rb +24 -13
- data/lib/rubocop/rspec/cop_helper.rb +2 -2
- data/lib/rubocop/rspec/expect_offense.rb +3 -3
- data/lib/rubocop/rspec/parallel_formatter.rb +1 -1
- data/lib/rubocop/rspec/shared_contexts.rb +31 -11
- data/lib/rubocop/rspec/support.rb +14 -0
- data/lib/rubocop/runner.rb +41 -7
- data/lib/rubocop/server/cache.rb +144 -0
- data/lib/rubocop/server/cli.rb +121 -0
- data/lib/rubocop/server/client_command/base.rb +44 -0
- data/lib/rubocop/server/client_command/exec.rb +59 -0
- data/lib/rubocop/server/client_command/restart.rb +25 -0
- data/lib/rubocop/server/client_command/start.rb +43 -0
- data/lib/rubocop/server/client_command/status.rb +28 -0
- data/lib/rubocop/server/client_command/stop.rb +31 -0
- data/lib/rubocop/server/client_command.rb +26 -0
- data/lib/rubocop/server/core.rb +79 -0
- data/lib/rubocop/server/errors.rb +23 -0
- data/lib/rubocop/server/helper.rb +34 -0
- data/lib/rubocop/server/server_command/base.rb +50 -0
- data/lib/rubocop/server/server_command/exec.rb +34 -0
- data/lib/rubocop/server/server_command/stop.rb +24 -0
- data/lib/rubocop/server/server_command.rb +21 -0
- data/lib/rubocop/server/socket_reader.rb +65 -0
- data/lib/rubocop/server.rb +53 -0
- data/lib/rubocop/string_interpreter.rb +4 -4
- data/lib/rubocop/target_ruby.rb +14 -6
- data/lib/rubocop/version.rb +17 -9
- data/lib/rubocop.rb +25 -30
- metadata +78 -14
- data/lib/rubocop/cop/gemspec/date_assignment.rb +0 -49
- data/lib/rubocop/cop/mixin/ignored_methods.rb +0 -52
- data/lib/rubocop/cop/mixin/ignored_pattern.rb +0 -29
data/config/default.yml
CHANGED
@@ -140,7 +140,7 @@ AllCops:
|
|
140
140
|
# or gems.locked file. (Although the Ruby version is specified in the Gemfile
|
141
141
|
# or gems.rb file, RuboCop reads the final value from the lock file.) If the
|
142
142
|
# Ruby version is still unresolved, RuboCop will use the oldest officially
|
143
|
-
# supported Ruby version (currently Ruby 2.
|
143
|
+
# supported Ruby version (currently Ruby 2.6).
|
144
144
|
TargetRubyVersion: ~
|
145
145
|
# Determines if a notification for extension libraries should be shown when
|
146
146
|
# rubocop is run. Keys are the name of the extension, and values are an array
|
@@ -153,6 +153,8 @@ AllCops:
|
|
153
153
|
rubocop-sequel: [sequel]
|
154
154
|
rubocop-rake: [rake]
|
155
155
|
rubocop-graphql: [graphql]
|
156
|
+
# Enable/Disable checking the methods extended by Active Support.
|
157
|
+
ActiveSupportExtensionsEnabled: false
|
156
158
|
|
157
159
|
#################### Bundler ###############################
|
158
160
|
|
@@ -235,10 +237,22 @@ Bundler/OrderedGems:
|
|
235
237
|
|
236
238
|
#################### Gemspec ###############################
|
237
239
|
|
238
|
-
Gemspec/
|
239
|
-
Description: '
|
240
|
+
Gemspec/DependencyVersion:
|
241
|
+
Description: 'Requires or forbids specifying gem dependency versions.'
|
242
|
+
Enabled: false
|
243
|
+
VersionAdded: '1.29'
|
244
|
+
EnforcedStyle: 'required'
|
245
|
+
SupportedStyles:
|
246
|
+
- 'required'
|
247
|
+
- 'forbidden'
|
248
|
+
Include:
|
249
|
+
- '**/*.gemspec'
|
250
|
+
AllowedGems: []
|
251
|
+
|
252
|
+
Gemspec/DeprecatedAttributeAssignment:
|
253
|
+
Description: Checks that deprecated attribute assignments are not set in a gemspec file.
|
240
254
|
Enabled: pending
|
241
|
-
VersionAdded: '1.
|
255
|
+
VersionAdded: '1.30'
|
242
256
|
Include:
|
243
257
|
- '**/*.gemspec'
|
244
258
|
|
@@ -883,7 +897,7 @@ Layout/HeredocArgumentClosingParenthesis:
|
|
883
897
|
VersionAdded: '0.68'
|
884
898
|
|
885
899
|
Layout/HeredocIndentation:
|
886
|
-
Description: '
|
900
|
+
Description: 'Checks the indentation of the here document bodies.'
|
887
901
|
StyleGuide: '#squiggly-heredocs'
|
888
902
|
Enabled: true
|
889
903
|
VersionAdded: '0.49'
|
@@ -916,7 +930,7 @@ Layout/IndentationStyle:
|
|
916
930
|
VersionChanged: '0.82'
|
917
931
|
# By default the indentation width from `Layout/IndentationWidth` is used,
|
918
932
|
# but it can be overridden by setting this parameter.
|
919
|
-
# It is used during
|
933
|
+
# It is used during autocorrection to determine how many spaces should
|
920
934
|
# replace each tab.
|
921
935
|
IndentationWidth: ~
|
922
936
|
EnforcedStyle: spaces
|
@@ -931,7 +945,8 @@ Layout/IndentationWidth:
|
|
931
945
|
VersionAdded: '0.49'
|
932
946
|
# Number of spaces for each indentation level.
|
933
947
|
Width: 2
|
934
|
-
|
948
|
+
AllowedPatterns: []
|
949
|
+
IgnoredPatterns: [] # deprecated
|
935
950
|
|
936
951
|
Layout/InitialIndentation:
|
937
952
|
Description: >-
|
@@ -954,6 +969,31 @@ Layout/LeadingEmptyLines:
|
|
954
969
|
VersionAdded: '0.57'
|
955
970
|
VersionChanged: '0.77'
|
956
971
|
|
972
|
+
Layout/LineContinuationLeadingSpace:
|
973
|
+
Description: >-
|
974
|
+
Use trailing spaces instead of leading spaces in strings
|
975
|
+
broken over multiple lines (by a backslash).
|
976
|
+
Enabled: pending
|
977
|
+
AutoCorrect: false
|
978
|
+
SafeAutoCorrect: false
|
979
|
+
VersionAdded: '1.31'
|
980
|
+
VersionChanged: '1.32'
|
981
|
+
EnforcedStyle: trailing
|
982
|
+
SupportedStyles:
|
983
|
+
- leading
|
984
|
+
- trailing
|
985
|
+
|
986
|
+
Layout/LineContinuationSpacing:
|
987
|
+
Description: 'Checks the spacing in front of backslash in line continuations.'
|
988
|
+
Enabled: pending
|
989
|
+
AutoCorrect: true
|
990
|
+
SafeAutoCorrect: true
|
991
|
+
VersionAdded: '1.31'
|
992
|
+
EnforcedStyle: space
|
993
|
+
SupportedStyles:
|
994
|
+
- space
|
995
|
+
- no_space
|
996
|
+
|
957
997
|
Layout/LineEndStringConcatenationIndentation:
|
958
998
|
Description: >-
|
959
999
|
Checks the indentation of the next line after a line that
|
@@ -985,10 +1025,11 @@ Layout/LineLength:
|
|
985
1025
|
# The IgnoreCopDirectives option causes the LineLength rule to ignore cop
|
986
1026
|
# directives like '# rubocop: enable ...' when calculating a line's length.
|
987
1027
|
IgnoreCopDirectives: true
|
988
|
-
# The
|
1028
|
+
# The AllowedPatterns option is a list of !ruby/regexp and/or string
|
989
1029
|
# elements. Strings will be converted to Regexp objects. A line that matches
|
990
1030
|
# any regular expression listed in this option will be ignored by LineLength.
|
991
|
-
|
1031
|
+
AllowedPatterns: []
|
1032
|
+
IgnoredPatterns: [] # deprecated
|
992
1033
|
|
993
1034
|
Layout/MultilineArrayBraceLayout:
|
994
1035
|
Description: >-
|
@@ -1117,6 +1158,13 @@ Layout/MultilineMethodDefinitionBraceLayout:
|
|
1117
1158
|
- new_line
|
1118
1159
|
- same_line
|
1119
1160
|
|
1161
|
+
Layout/MultilineMethodParameterLineBreaks:
|
1162
|
+
Description: >-
|
1163
|
+
Checks that each parameter in a multi-line method definition
|
1164
|
+
starts on a separate line.
|
1165
|
+
Enabled: false
|
1166
|
+
VersionAdded: '1.32'
|
1167
|
+
|
1120
1168
|
Layout/MultilineOperationIndentation:
|
1121
1169
|
Description: >-
|
1122
1170
|
Checks indentation of binary operations that span more than
|
@@ -1454,7 +1502,9 @@ Lint/AmbiguousBlockAssociation:
|
|
1454
1502
|
Enabled: true
|
1455
1503
|
VersionAdded: '0.48'
|
1456
1504
|
VersionChanged: '1.13'
|
1457
|
-
|
1505
|
+
AllowedMethods: []
|
1506
|
+
AllowedPatterns: []
|
1507
|
+
IgnoredMethods: [] # deprecated
|
1458
1508
|
|
1459
1509
|
Lint/AmbiguousOperator:
|
1460
1510
|
Description: >-
|
@@ -1500,7 +1550,7 @@ Lint/BigDecimalNew:
|
|
1500
1550
|
VersionAdded: '0.53'
|
1501
1551
|
|
1502
1552
|
Lint/BinaryOperatorWithIdenticalOperands:
|
1503
|
-
Description: '
|
1553
|
+
Description: 'Checks for places where binary operator has identical operands.'
|
1504
1554
|
Enabled: true
|
1505
1555
|
Safe: false
|
1506
1556
|
VersionAdded: '0.89'
|
@@ -1529,6 +1579,11 @@ Lint/ConstantDefinitionInBlock:
|
|
1529
1579
|
AllowedMethods:
|
1530
1580
|
- enums
|
1531
1581
|
|
1582
|
+
Lint/ConstantOverwrittenInRescue:
|
1583
|
+
Description: 'Checks for overwriting an exception with an exception result by use `rescue =>`.'
|
1584
|
+
Enabled: pending
|
1585
|
+
VersionAdded: '1.31'
|
1586
|
+
|
1532
1587
|
Lint/ConstantResolution:
|
1533
1588
|
Description: 'Check that constants are fully qualified with `::`.'
|
1534
1589
|
Enabled: false
|
@@ -1549,6 +1604,7 @@ Lint/Debugger:
|
|
1549
1604
|
# a user's configuration, but are otherwise not significant.
|
1550
1605
|
Kernel:
|
1551
1606
|
- binding.irb
|
1607
|
+
- Kernel.binding.irb
|
1552
1608
|
Byebug:
|
1553
1609
|
- byebug
|
1554
1610
|
- remote_byebug
|
@@ -1566,6 +1622,9 @@ Lint/Debugger:
|
|
1566
1622
|
- binding.pry
|
1567
1623
|
- binding.remote_pry
|
1568
1624
|
- binding.pry_remote
|
1625
|
+
- Kernel.binding.pry
|
1626
|
+
- Kernel.binding.remote_pry
|
1627
|
+
- Kernel.binding.pry_remote
|
1569
1628
|
- Pry.rescue
|
1570
1629
|
Rails:
|
1571
1630
|
- debugger
|
@@ -1661,7 +1720,9 @@ Lint/DuplicateRegexpCharacterClassElement:
|
|
1661
1720
|
Lint/DuplicateRequire:
|
1662
1721
|
Description: 'Check for duplicate `require`s and `require_relative`s.'
|
1663
1722
|
Enabled: true
|
1723
|
+
SafeAutoCorrect: false
|
1664
1724
|
VersionAdded: '0.90'
|
1725
|
+
VersionChanged: '1.28'
|
1665
1726
|
|
1666
1727
|
Lint/DuplicateRescueException:
|
1667
1728
|
Description: 'Checks that there are no repeated exceptions used in `rescue` expressions.'
|
@@ -1680,7 +1741,7 @@ Lint/ElseLayout:
|
|
1680
1741
|
VersionChanged: '1.2'
|
1681
1742
|
|
1682
1743
|
Lint/EmptyBlock:
|
1683
|
-
Description: '
|
1744
|
+
Description: 'Checks for blocks without a body.'
|
1684
1745
|
Enabled: pending
|
1685
1746
|
VersionAdded: '1.1'
|
1686
1747
|
VersionChanged: '1.15'
|
@@ -1694,10 +1755,12 @@ Lint/EmptyClass:
|
|
1694
1755
|
AllowComments: false
|
1695
1756
|
|
1696
1757
|
Lint/EmptyConditionalBody:
|
1697
|
-
Description: '
|
1758
|
+
Description: 'Checks for the presence of `if`, `elsif` and `unless` branches without a body.'
|
1698
1759
|
Enabled: true
|
1760
|
+
SafeAutoCorrect: false
|
1699
1761
|
AllowComments: true
|
1700
1762
|
VersionAdded: '0.89'
|
1763
|
+
VersionChanged: '1.34'
|
1701
1764
|
|
1702
1765
|
Lint/EmptyEnsure:
|
1703
1766
|
Description: 'Checks for empty ensure block.'
|
@@ -1873,7 +1936,7 @@ Lint/MissingCopEnableDirective:
|
|
1873
1936
|
|
1874
1937
|
Lint/MissingSuper:
|
1875
1938
|
Description: >-
|
1876
|
-
|
1939
|
+
Checks for the presence of constructors and lifecycle callbacks
|
1877
1940
|
without calls to `super`.
|
1878
1941
|
Enabled: true
|
1879
1942
|
VersionAdded: '0.89'
|
@@ -1913,6 +1976,13 @@ Lint/NoReturnInBeginEndBlocks:
|
|
1913
1976
|
Enabled: pending
|
1914
1977
|
VersionAdded: '1.2'
|
1915
1978
|
|
1979
|
+
Lint/NonAtomicFileOperation:
|
1980
|
+
Description: Checks for non-atomic file operations.
|
1981
|
+
StyleGuide: '#atomic-file-operations'
|
1982
|
+
Enabled: pending
|
1983
|
+
VersionAdded: '1.31'
|
1984
|
+
SafeAutoCorrect: false
|
1985
|
+
|
1916
1986
|
Lint/NonDeterministicRequireOrder:
|
1917
1987
|
Description: 'Always sort arrays returned by Dir.glob when requiring files.'
|
1918
1988
|
Enabled: true
|
@@ -1930,7 +2000,9 @@ Lint/NumberConversion:
|
|
1930
2000
|
VersionAdded: '0.53'
|
1931
2001
|
VersionChanged: '1.1'
|
1932
2002
|
SafeAutoCorrect: false
|
1933
|
-
|
2003
|
+
AllowedMethods: []
|
2004
|
+
AllowedPatterns: []
|
2005
|
+
IgnoredMethods: [] # deprecated
|
1934
2006
|
IgnoredClasses:
|
1935
2007
|
- Time
|
1936
2008
|
- DateTime
|
@@ -2058,6 +2130,12 @@ Lint/RedundantWithObject:
|
|
2058
2130
|
Enabled: true
|
2059
2131
|
VersionAdded: '0.51'
|
2060
2132
|
|
2133
|
+
Lint/RefinementImportMethods:
|
2134
|
+
Description: 'Use `Refinement#import_methods` when using `include` or `prepend` in `refine` block.'
|
2135
|
+
Enabled: pending
|
2136
|
+
SafeAutoCorrect: false
|
2137
|
+
VersionAdded: '1.27'
|
2138
|
+
|
2061
2139
|
Lint/RegexpAsCondition:
|
2062
2140
|
Description: >-
|
2063
2141
|
Do not use regexp literal as a condition.
|
@@ -2073,6 +2151,11 @@ Lint/RequireParentheses:
|
|
2073
2151
|
Enabled: true
|
2074
2152
|
VersionAdded: '0.18'
|
2075
2153
|
|
2154
|
+
Lint/RequireRangeParentheses:
|
2155
|
+
Description: 'Checks that a range literal is enclosed in parentheses when the end of the range is at a line break.'
|
2156
|
+
Enabled: pending
|
2157
|
+
VersionAdded: '1.32'
|
2158
|
+
|
2076
2159
|
Lint/RequireRelativeSelfPath:
|
2077
2160
|
Description: 'Checks for uses a file requiring itself with `require_relative`.'
|
2078
2161
|
Enabled: pending
|
@@ -2196,7 +2279,7 @@ Lint/Syntax:
|
|
2196
2279
|
VersionAdded: '0.9'
|
2197
2280
|
|
2198
2281
|
Lint/ToEnumArguments:
|
2199
|
-
Description: '
|
2282
|
+
Description: 'Ensures that `to_enum`/`enum_for`, called for the current method, has correct arguments.'
|
2200
2283
|
Enabled: pending
|
2201
2284
|
VersionAdded: '1.1'
|
2202
2285
|
|
@@ -2206,12 +2289,12 @@ Lint/ToJSON:
|
|
2206
2289
|
VersionAdded: '0.66'
|
2207
2290
|
|
2208
2291
|
Lint/TopLevelReturnWithArgument:
|
2209
|
-
Description: '
|
2292
|
+
Description: 'Detects top level return statements with argument.'
|
2210
2293
|
Enabled: true
|
2211
2294
|
VersionAdded: '0.89'
|
2212
2295
|
|
2213
2296
|
Lint/TrailingCommaInAttributeDeclaration:
|
2214
|
-
Description: '
|
2297
|
+
Description: 'Checks for trailing commas in attribute declarations.'
|
2215
2298
|
Enabled: true
|
2216
2299
|
VersionAdded: '0.90'
|
2217
2300
|
|
@@ -2260,14 +2343,15 @@ Lint/UnreachableCode:
|
|
2260
2343
|
VersionAdded: '0.9'
|
2261
2344
|
|
2262
2345
|
Lint/UnreachableLoop:
|
2263
|
-
Description: '
|
2346
|
+
Description: 'Checks for loops that will have at most one iteration.'
|
2264
2347
|
Enabled: true
|
2265
2348
|
VersionAdded: '0.89'
|
2266
2349
|
VersionChanged: '1.7'
|
2267
|
-
|
2350
|
+
AllowedPatterns:
|
2268
2351
|
# RSpec uses `times` in its message expectations
|
2269
2352
|
# eg. `exactly(2).times`
|
2270
2353
|
- !ruby/regexp /(exactly|at_least|at_most)\(\d+\)\.times/
|
2354
|
+
IgnoredPatterns: [] # deprecated
|
2271
2355
|
|
2272
2356
|
Lint/UnusedBlockArgument:
|
2273
2357
|
Description: 'Checks for unused block arguments.'
|
@@ -2322,13 +2406,14 @@ Lint/UselessElseWithoutRescue:
|
|
2322
2406
|
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
|
2323
2407
|
Enabled: true
|
2324
2408
|
VersionAdded: '0.17'
|
2409
|
+
VersionChanged: '1.31'
|
2325
2410
|
|
2326
2411
|
Lint/UselessMethodDefinition:
|
2327
2412
|
Description: 'Checks for useless method definitions.'
|
2328
2413
|
Enabled: true
|
2329
2414
|
VersionAdded: '0.90'
|
2415
|
+
VersionChanged: '0.91'
|
2330
2416
|
Safe: false
|
2331
|
-
AllowComments: true
|
2332
2417
|
|
2333
2418
|
Lint/UselessRuby2Keywords:
|
2334
2419
|
Description: 'Finds unnecessary uses of `ruby2_keywords`.'
|
@@ -2369,7 +2454,9 @@ Metrics/AbcSize:
|
|
2369
2454
|
VersionChanged: '1.5'
|
2370
2455
|
# The ABC size is a calculated magnitude, so this number can be an Integer or
|
2371
2456
|
# a Float.
|
2372
|
-
|
2457
|
+
AllowedMethods: []
|
2458
|
+
AllowedPatterns: []
|
2459
|
+
IgnoredMethods: [] # deprecated
|
2373
2460
|
CountRepeatedAttributes: true
|
2374
2461
|
Max: 17
|
2375
2462
|
|
@@ -2382,10 +2469,12 @@ Metrics/BlockLength:
|
|
2382
2469
|
Max: 25
|
2383
2470
|
CountAsOne: []
|
2384
2471
|
ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2385
|
-
|
2472
|
+
AllowedMethods:
|
2386
2473
|
# By default, exclude the `#refine` method, as it tends to have larger
|
2387
2474
|
# associated blocks.
|
2388
2475
|
- refine
|
2476
|
+
AllowedPatterns: []
|
2477
|
+
IgnoredMethods: [] # deprecated
|
2389
2478
|
Exclude:
|
2390
2479
|
- '**/*.gemspec'
|
2391
2480
|
|
@@ -2415,7 +2504,9 @@ Metrics/CyclomaticComplexity:
|
|
2415
2504
|
Enabled: true
|
2416
2505
|
VersionAdded: '0.25'
|
2417
2506
|
VersionChanged: '0.81'
|
2418
|
-
|
2507
|
+
AllowedMethods: []
|
2508
|
+
AllowedPatterns: []
|
2509
|
+
IgnoredMethods: [] # deprecated
|
2419
2510
|
Max: 7
|
2420
2511
|
|
2421
2512
|
Metrics/MethodLength:
|
@@ -2428,7 +2519,9 @@ Metrics/MethodLength:
|
|
2428
2519
|
Max: 10
|
2429
2520
|
CountAsOne: []
|
2430
2521
|
ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2431
|
-
|
2522
|
+
AllowedMethods: []
|
2523
|
+
AllowedPatterns: []
|
2524
|
+
IgnoredMethods: [] # deprecated
|
2432
2525
|
|
2433
2526
|
Metrics/ModuleLength:
|
2434
2527
|
Description: 'Avoid modules longer than 100 lines of code.'
|
@@ -2456,7 +2549,9 @@ Metrics/PerceivedComplexity:
|
|
2456
2549
|
Enabled: true
|
2457
2550
|
VersionAdded: '0.25'
|
2458
2551
|
VersionChanged: '0.81'
|
2459
|
-
|
2552
|
+
AllowedMethods: []
|
2553
|
+
AllowedPatterns: []
|
2554
|
+
IgnoredMethods: [] # deprecated
|
2460
2555
|
Max: 8
|
2461
2556
|
|
2462
2557
|
################## Migration #############################
|
@@ -2680,11 +2775,12 @@ Naming/MethodName:
|
|
2680
2775
|
- camelCase
|
2681
2776
|
# Method names matching patterns are always allowed.
|
2682
2777
|
#
|
2683
|
-
#
|
2778
|
+
# AllowedPatterns:
|
2684
2779
|
# - '\A\s*onSelectionBulkChange\s*'
|
2685
2780
|
# - '\A\s*onSelectionCleared\s*'
|
2686
2781
|
#
|
2687
|
-
|
2782
|
+
AllowedPatterns: []
|
2783
|
+
IgnoredPatterns: [] # deprecated
|
2688
2784
|
|
2689
2785
|
Naming/MethodParameterName:
|
2690
2786
|
Description: >-
|
@@ -2698,6 +2794,7 @@ Naming/MethodParameterName:
|
|
2698
2794
|
AllowNamesEndingInNumbers: true
|
2699
2795
|
# Allowed names that will not register an offense
|
2700
2796
|
AllowedNames:
|
2797
|
+
- as
|
2701
2798
|
- at
|
2702
2799
|
- by
|
2703
2800
|
- db
|
@@ -2760,6 +2857,7 @@ Naming/VariableName:
|
|
2760
2857
|
- snake_case
|
2761
2858
|
- camelCase
|
2762
2859
|
AllowedIdentifiers: []
|
2860
|
+
AllowedPatterns: []
|
2763
2861
|
|
2764
2862
|
Naming/VariableNumber:
|
2765
2863
|
Description: 'Use the configured style when numbering symbols, methods and variables.'
|
@@ -2781,9 +2879,15 @@ Naming/VariableNumber:
|
|
2781
2879
|
- rfc822 # Time#rfc822
|
2782
2880
|
- rfc2822 # Time#rfc2822
|
2783
2881
|
- rfc3339 # DateTime.rfc3339
|
2882
|
+
AllowedPatterns: []
|
2784
2883
|
|
2785
2884
|
#################### Security ##############################
|
2786
2885
|
|
2886
|
+
Security/CompoundHash:
|
2887
|
+
Description: 'When overwriting Object#hash to combine values, prefer delegating to Array#hash over writing a custom implementation.'
|
2888
|
+
Enabled: pending
|
2889
|
+
VersionAdded: '1.28'
|
2890
|
+
|
2787
2891
|
Security/Eval:
|
2788
2892
|
Description: 'The use of eval represents a serious security risk.'
|
2789
2893
|
Enabled: true
|
@@ -2845,6 +2949,7 @@ Style/AccessModifierDeclarations:
|
|
2845
2949
|
- inline
|
2846
2950
|
- group
|
2847
2951
|
AllowModifiersOnSymbols: true
|
2952
|
+
SafeAutoCorrect: false
|
2848
2953
|
|
2849
2954
|
Style/AccessorGrouping:
|
2850
2955
|
Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
|
@@ -2979,7 +3084,7 @@ Style/BlockDelimiters:
|
|
2979
3084
|
# This looks at the usage of a block's method to determine its type (e.g. is
|
2980
3085
|
# the result of a `map` assigned to a variable or passed to another
|
2981
3086
|
# method) but exceptions are permitted in the `ProceduralMethods`,
|
2982
|
-
# `FunctionalMethods` and `
|
3087
|
+
# `FunctionalMethods` and `AllowedMethods` sections below.
|
2983
3088
|
- semantic
|
2984
3089
|
# The `braces_for_chaining` style enforces braces around single line blocks
|
2985
3090
|
# and do..end around multi-line blocks, except for multi-line blocks whose
|
@@ -3020,7 +3125,7 @@ Style/BlockDelimiters:
|
|
3020
3125
|
- let!
|
3021
3126
|
- subject
|
3022
3127
|
- watch
|
3023
|
-
|
3128
|
+
AllowedMethods:
|
3024
3129
|
# Methods that can be either procedural or functional and cannot be
|
3025
3130
|
# categorised from their usage alone, e.g.
|
3026
3131
|
#
|
@@ -3037,6 +3142,8 @@ Style/BlockDelimiters:
|
|
3037
3142
|
- lambda
|
3038
3143
|
- proc
|
3039
3144
|
- it
|
3145
|
+
AllowedPatterns: []
|
3146
|
+
IgnoredMethods: [] # deprecated
|
3040
3147
|
# The AllowBracesOnProceduralOneLiners option is ignored unless the
|
3041
3148
|
# EnforcedStyle is set to `semantic`. If so:
|
3042
3149
|
#
|
@@ -3081,9 +3188,18 @@ Style/CaseEquality:
|
|
3081
3188
|
# # good
|
3082
3189
|
# String === "string"
|
3083
3190
|
AllowOnConstant: false
|
3191
|
+
# If `AllowOnSelfClass` option is enabled, the cop will ignore violations when the receiver of
|
3192
|
+
# the case equality operator is `self.class`.
|
3193
|
+
#
|
3194
|
+
# # bad
|
3195
|
+
# some_class === object
|
3196
|
+
#
|
3197
|
+
# # good
|
3198
|
+
# self.class === object
|
3199
|
+
AllowOnSelfClass: false
|
3084
3200
|
|
3085
3201
|
Style/CaseLikeIf:
|
3086
|
-
Description: '
|
3202
|
+
Description: 'Identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
3087
3203
|
StyleGuide: '#case-vs-if-else'
|
3088
3204
|
Enabled: true
|
3089
3205
|
Safe: false
|
@@ -3140,10 +3256,12 @@ Style/ClassEqualityComparison:
|
|
3140
3256
|
StyleGuide: '#instance-of-vs-class-comparison'
|
3141
3257
|
Enabled: true
|
3142
3258
|
VersionAdded: '0.93'
|
3143
|
-
|
3259
|
+
AllowedMethods:
|
3144
3260
|
- ==
|
3145
3261
|
- equal?
|
3146
3262
|
- eql?
|
3263
|
+
AllowedPatterns: []
|
3264
|
+
IgnoredMethods: [] # deprecated
|
3147
3265
|
|
3148
3266
|
Style/ClassMethods:
|
3149
3267
|
Description: 'Use self when defining module/class methods.'
|
@@ -3430,6 +3548,12 @@ Style/EmptyElse:
|
|
3430
3548
|
- empty
|
3431
3549
|
- nil
|
3432
3550
|
- both
|
3551
|
+
AllowComments: false
|
3552
|
+
|
3553
|
+
Style/EmptyHeredoc:
|
3554
|
+
Description: 'Checks for using empty heredoc to reduce redundancy.'
|
3555
|
+
Enabled: pending
|
3556
|
+
VersionAdded: '1.32'
|
3433
3557
|
|
3434
3558
|
Style/EmptyLambdaParameter:
|
3435
3559
|
Description: 'Omit parens for empty lambda parameters.'
|
@@ -3478,6 +3602,12 @@ Style/EndlessMethod:
|
|
3478
3602
|
- allow_always
|
3479
3603
|
- disallow
|
3480
3604
|
|
3605
|
+
Style/EnvHome:
|
3606
|
+
Description: "Checks for consistent usage of `ENV['HOME']`."
|
3607
|
+
Enabled: pending
|
3608
|
+
Safe: false
|
3609
|
+
VersionAdded: '1.29'
|
3610
|
+
|
3481
3611
|
Style/EvalWithLocation:
|
3482
3612
|
Description: 'Pass `__FILE__` and `__LINE__` to `eval` method, as they are used by backtraces.'
|
3483
3613
|
Enabled: true
|
@@ -3515,6 +3645,16 @@ Style/ExponentialNotation:
|
|
3515
3645
|
- engineering
|
3516
3646
|
- integral
|
3517
3647
|
|
3648
|
+
Style/FetchEnvVar:
|
3649
|
+
Description: >-
|
3650
|
+
Suggests `ENV.fetch` for the replacement of `ENV[]`.
|
3651
|
+
Reference:
|
3652
|
+
- https://rubystyle.guide/#hash-fetch-defaults
|
3653
|
+
Enabled: pending
|
3654
|
+
VersionAdded: '1.28'
|
3655
|
+
# Environment variables to be excluded from the inspection.
|
3656
|
+
AllowedVars: []
|
3657
|
+
|
3518
3658
|
Style/FileRead:
|
3519
3659
|
Description: 'Favor `File.(bin)read` convenience methods.'
|
3520
3660
|
StyleGuide: '#file-read'
|
@@ -3583,7 +3723,9 @@ Style/FormatStringToken:
|
|
3583
3723
|
MaxUnannotatedPlaceholdersAllowed: 1
|
3584
3724
|
VersionAdded: '0.49'
|
3585
3725
|
VersionChanged: '1.0'
|
3586
|
-
|
3726
|
+
AllowedMethods: []
|
3727
|
+
AllowedPatterns: []
|
3728
|
+
IgnoredMethods: [] # deprecated
|
3587
3729
|
|
3588
3730
|
Style/FrozenStringLiteralComment:
|
3589
3731
|
Description: >-
|
@@ -3628,10 +3770,11 @@ Style/GuardClause:
|
|
3628
3770
|
StyleGuide: '#no-nested-conditionals'
|
3629
3771
|
Enabled: true
|
3630
3772
|
VersionAdded: '0.20'
|
3631
|
-
VersionChanged: '
|
3773
|
+
VersionChanged: '1.31'
|
3632
3774
|
# `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
|
3633
3775
|
# needs to have to trigger this cop
|
3634
3776
|
MinBodyLength: 1
|
3777
|
+
AllowConsecutiveConditionals: false
|
3635
3778
|
|
3636
3779
|
Style/HashAsLastArrayItem:
|
3637
3780
|
Description: >-
|
@@ -3668,6 +3811,7 @@ Style/HashExcept:
|
|
3668
3811
|
that can be replaced with `Hash#except` method.
|
3669
3812
|
Enabled: pending
|
3670
3813
|
VersionAdded: '1.7'
|
3814
|
+
VersionChanged: '1.31'
|
3671
3815
|
|
3672
3816
|
Style/HashLikeCase:
|
3673
3817
|
Description: >-
|
@@ -3706,6 +3850,8 @@ Style/HashSyntax:
|
|
3706
3850
|
- never
|
3707
3851
|
# accepts both shorthand and explicit use of hash literal value.
|
3708
3852
|
- either
|
3853
|
+
# like "always", but will avoid mixing styles in a single hash
|
3854
|
+
- consistent
|
3709
3855
|
# Force hashes that have a symbol value to use hash rockets
|
3710
3856
|
UseHashRocketsWithSymbolValues: false
|
3711
3857
|
# Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
|
@@ -3882,6 +4028,31 @@ Style/LineEndConcatenation:
|
|
3882
4028
|
VersionAdded: '0.18'
|
3883
4029
|
VersionChanged: '0.64'
|
3884
4030
|
|
4031
|
+
Style/MagicCommentFormat:
|
4032
|
+
Description: 'Use a consistent style for magic comments.'
|
4033
|
+
Enabled: pending
|
4034
|
+
VersionAdded: '1.35'
|
4035
|
+
EnforcedStyle: snake_case
|
4036
|
+
SupportedStyles:
|
4037
|
+
# `snake` will enforce the magic comment is written
|
4038
|
+
# in snake case (words separated by underscores).
|
4039
|
+
# Eg: froze_string_literal: true
|
4040
|
+
- snake_case
|
4041
|
+
# `kebab` will enforce the magic comment is written
|
4042
|
+
# in kebab case (words separated by hyphens).
|
4043
|
+
# Eg: froze-string-literal: true
|
4044
|
+
- kebab_case
|
4045
|
+
DirectiveCapitalization: lowercase
|
4046
|
+
ValueCapitalization: ~
|
4047
|
+
SupportedCapitalizations:
|
4048
|
+
- lowercase
|
4049
|
+
- uppercase
|
4050
|
+
|
4051
|
+
Style/MapCompactWithConditionalBlock:
|
4052
|
+
Description: 'Prefer `select` or `reject` over `map { ... }.compact`.'
|
4053
|
+
Enabled: pending
|
4054
|
+
VersionAdded: '1.30'
|
4055
|
+
|
3885
4056
|
Style/MapToHash:
|
3886
4057
|
Description: 'Prefer `to_h` with a block over `map.to_h`.'
|
3887
4058
|
Enabled: pending
|
@@ -3895,8 +4066,10 @@ Style/MethodCallWithArgsParentheses:
|
|
3895
4066
|
VersionAdded: '0.47'
|
3896
4067
|
VersionChanged: '1.7'
|
3897
4068
|
IgnoreMacros: true
|
3898
|
-
|
3899
|
-
|
4069
|
+
AllowedMethods: []
|
4070
|
+
IgnoredMethods: [] # deprecated
|
4071
|
+
AllowedPatterns: []
|
4072
|
+
IgnoredPatterns: [] # deprecated
|
3900
4073
|
IncludedMacros: []
|
3901
4074
|
AllowParenthesesInMultilineCall: false
|
3902
4075
|
AllowParenthesesInChaining: false
|
@@ -3911,7 +4084,9 @@ Style/MethodCallWithoutArgsParentheses:
|
|
3911
4084
|
Description: 'Do not use parentheses for method calls with no arguments.'
|
3912
4085
|
StyleGuide: '#method-invocation-parens'
|
3913
4086
|
Enabled: true
|
3914
|
-
|
4087
|
+
AllowedMethods: []
|
4088
|
+
AllowedPatterns: []
|
4089
|
+
IgnoredMethods: [] # deprecated
|
3915
4090
|
VersionAdded: '0.47'
|
3916
4091
|
VersionChanged: '0.55'
|
3917
4092
|
|
@@ -4102,7 +4277,7 @@ Style/NegatedIf:
|
|
4102
4277
|
|
4103
4278
|
Style/NegatedIfElseCondition:
|
4104
4279
|
Description: >-
|
4105
|
-
|
4280
|
+
Checks for uses of `if-else` and ternary operators with a negated condition
|
4106
4281
|
which can be simplified by inverting condition and swapping branches.
|
4107
4282
|
Enabled: pending
|
4108
4283
|
VersionAdded: '1.2'
|
@@ -4263,6 +4438,7 @@ Style/NumericLiterals:
|
|
4263
4438
|
Strict: false
|
4264
4439
|
# You can specify allowed numbers. (e.g. port number 3000, 8080, and etc)
|
4265
4440
|
AllowedNumbers: []
|
4441
|
+
AllowedPatterns: []
|
4266
4442
|
|
4267
4443
|
Style/NumericPredicate:
|
4268
4444
|
Description: >-
|
@@ -4281,12 +4457,27 @@ Style/NumericPredicate:
|
|
4281
4457
|
SupportedStyles:
|
4282
4458
|
- predicate
|
4283
4459
|
- comparison
|
4284
|
-
|
4460
|
+
AllowedMethods: []
|
4461
|
+
AllowedPatterns: []
|
4462
|
+
IgnoredMethods: [] # deprecated
|
4285
4463
|
# Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
|
4286
4464
|
# false positives.
|
4287
4465
|
Exclude:
|
4288
4466
|
- 'spec/**/*'
|
4289
4467
|
|
4468
|
+
Style/ObjectThen:
|
4469
|
+
Description: 'Enforces the use of consistent method names `Object#yield_self` or `Object#then`.'
|
4470
|
+
StyleGuide: '#object-yield-self-vs-object-then'
|
4471
|
+
Enabled: pending
|
4472
|
+
VersionAdded: '1.28'
|
4473
|
+
# Use `Object#yield_self` or `Object#then`?
|
4474
|
+
# Prefer `Object#yield_self` to `Object#then` (yield_self)
|
4475
|
+
# Prefer `Object#then` to `Object#yield_self` (then)
|
4476
|
+
EnforcedStyle: 'then'
|
4477
|
+
SupportedStyles:
|
4478
|
+
- then
|
4479
|
+
- yield_self
|
4480
|
+
|
4290
4481
|
Style/OneLineConditional:
|
4291
4482
|
Description: >-
|
4292
4483
|
Favor the ternary operator (?:) or multi-line constructs over
|
@@ -4524,10 +4715,20 @@ Style/RedundantFreeze:
|
|
4524
4715
|
VersionAdded: '0.34'
|
4525
4716
|
VersionChanged: '0.66'
|
4526
4717
|
|
4718
|
+
Style/RedundantInitialize:
|
4719
|
+
Description: 'Checks for redundant `initialize` methods.'
|
4720
|
+
Enabled: pending
|
4721
|
+
Safe: false
|
4722
|
+
AllowComments: true
|
4723
|
+
VersionAdded: '1.27'
|
4724
|
+
VersionChanged: '1.28'
|
4725
|
+
|
4527
4726
|
Style/RedundantInterpolation:
|
4528
4727
|
Description: 'Checks for strings that are just an interpolated expression.'
|
4529
4728
|
Enabled: true
|
4729
|
+
SafeAutoCorrect: false
|
4530
4730
|
VersionAdded: '0.76'
|
4731
|
+
VersionChanged: '1.30'
|
4531
4732
|
|
4532
4733
|
Style/RedundantParentheses:
|
4533
4734
|
Description: "Checks for parentheses that seem not to serve any purpose."
|
@@ -4638,14 +4839,14 @@ Style/ReturnNil:
|
|
4638
4839
|
|
4639
4840
|
Style/SafeNavigation:
|
4640
4841
|
Description: >-
|
4641
|
-
|
4842
|
+
Transforms usages of a method call safeguarded by
|
4642
4843
|
a check for the existence of the object to
|
4643
4844
|
safe navigation (`&.`).
|
4644
|
-
|
4845
|
+
Autocorrection is unsafe as it assumes the object will
|
4645
4846
|
be `nil` or truthy, but never `false`.
|
4646
4847
|
Enabled: true
|
4647
4848
|
VersionAdded: '0.43'
|
4648
|
-
VersionChanged: '
|
4849
|
+
VersionChanged: '1.27'
|
4649
4850
|
# Safe navigation may cause a statement to start returning `nil` in addition
|
4650
4851
|
# to whatever it used to return.
|
4651
4852
|
ConvertCodeThatCanStartToReturnNil: false
|
@@ -4656,6 +4857,8 @@ Style/SafeNavigation:
|
|
4656
4857
|
- try
|
4657
4858
|
- try!
|
4658
4859
|
SafeAutoCorrect: false
|
4860
|
+
# Maximum length of method chains for register an offense.
|
4861
|
+
MaxChainLength: 2
|
4659
4862
|
|
4660
4863
|
Style/Sample:
|
4661
4864
|
Description: >-
|
@@ -4761,6 +4964,7 @@ Style/SpecialGlobalVars:
|
|
4761
4964
|
SupportedStyles:
|
4762
4965
|
- use_perl_names
|
4763
4966
|
- use_english_names
|
4967
|
+
- use_builtin_english_names
|
4764
4968
|
|
4765
4969
|
Style/StabbyLambdaParentheses:
|
4766
4970
|
Description: 'Check for the usage of parentheses around stabby lambda arguments.'
|
@@ -4862,7 +5066,7 @@ Style/StructInheritance:
|
|
4862
5066
|
VersionChanged: '1.20'
|
4863
5067
|
|
4864
5068
|
Style/SwapValues:
|
4865
|
-
Description: '
|
5069
|
+
Description: 'Enforces the use of shorthand-style swapping of 2 variables.'
|
4866
5070
|
StyleGuide: '#values-swapping'
|
4867
5071
|
Enabled: pending
|
4868
5072
|
VersionAdded: '1.1'
|
@@ -4890,13 +5094,16 @@ Style/SymbolProc:
|
|
4890
5094
|
Enabled: true
|
4891
5095
|
Safe: false
|
4892
5096
|
VersionAdded: '0.26'
|
4893
|
-
VersionChanged: '1.
|
5097
|
+
VersionChanged: '1.28'
|
4894
5098
|
AllowMethodsWithArguments: false
|
4895
|
-
# A list of method names to be
|
5099
|
+
# A list of method names to be always allowed by the check.
|
4896
5100
|
# The names should be fairly unique, otherwise you'll end up ignoring lots of code.
|
4897
|
-
|
5101
|
+
AllowedMethods:
|
4898
5102
|
- respond_to
|
4899
5103
|
- define_method
|
5104
|
+
AllowedPatterns: []
|
5105
|
+
IgnoredMethods: [] # deprecated
|
5106
|
+
AllowComments: false
|
4900
5107
|
|
4901
5108
|
Style/TernaryParentheses:
|
4902
5109
|
Description: 'Checks for use of parentheses around ternary conditions.'
|
@@ -4911,7 +5118,7 @@ Style/TernaryParentheses:
|
|
4911
5118
|
AllowSafeAssignment: true
|
4912
5119
|
|
4913
5120
|
Style/TopLevelMethodDefinition:
|
4914
|
-
Description: '
|
5121
|
+
Description: 'Looks for top-level method definitions.'
|
4915
5122
|
StyleGuide: '#top-level-methods'
|
4916
5123
|
Enabled: false
|
4917
5124
|
VersionAdded: '1.15'
|