rubocop 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/config/default.yml +10 -0
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +1 -1
- data/lib/rubocop/cached_data.rb +1 -3
- data/lib/rubocop/cli.rb +4 -6
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +9 -19
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -3
- data/lib/rubocop/cli/command/show_cops.rb +1 -4
- data/lib/rubocop/comment_config.rb +2 -7
- data/lib/rubocop/config.rb +11 -26
- data/lib/rubocop/config_loader.rb +5 -11
- data/lib/rubocop/config_loader_resolver.rb +22 -14
- data/lib/rubocop/config_obsoletion/cop_rule.rb +1 -2
- data/lib/rubocop/config_store.rb +1 -2
- data/lib/rubocop/config_validator.rb +5 -10
- data/lib/rubocop/cop/autocorrect_logic.rb +3 -8
- data/lib/rubocop/cop/badge.rb +1 -2
- data/lib/rubocop/cop/base.rb +8 -6
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -2
- data/lib/rubocop/cop/bundler/gem_comment.rb +42 -8
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -4
- data/lib/rubocop/cop/commissioner.rb +2 -8
- data/lib/rubocop/cop/cop.rb +4 -18
- data/lib/rubocop/cop/corrector.rb +1 -4
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -8
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -4
- data/lib/rubocop/cop/generator.rb +1 -4
- data/lib/rubocop/cop/generator/configuration_injector.rb +1 -2
- data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/example_description.rb +6 -4
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -3
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -2
- data/lib/rubocop/cop/layout/argument_alignment.rb +2 -4
- data/lib/rubocop/cop/layout/assignment_indentation.rb +2 -4
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
- data/lib/rubocop/cop/layout/block_alignment.rb +7 -19
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -3
- data/lib/rubocop/cop/layout/class_structure.rb +4 -10
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -15
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -5
- data/lib/rubocop/cop/layout/def_end_alignment.rb +2 -6
- data/lib/rubocop/cop/layout/dot_position.rb +1 -3
- data/lib/rubocop/cop/layout/else_alignment.rb +1 -3
- data/lib/rubocop/cop/layout/empty_comment.rb +5 -12
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +22 -8
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -6
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -3
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +8 -18
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -8
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
- data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +3 -7
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -2
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +2 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/hash_alignment.rb +3 -6
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -9
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +2 -6
- data/lib/rubocop/cop/layout/indentation_style.rb +1 -3
- data/lib/rubocop/cop/layout/indentation_width.rb +1 -2
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -4
- data/lib/rubocop/cop/layout/line_length.rb +4 -15
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +7 -15
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +16 -10
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +4 -0
- data/lib/rubocop/cop/layout/redundant_line_break.rb +125 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
- data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
- data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
- data/lib/rubocop/cop/layout/space_around_keyword.rb +3 -6
- data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
- data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
- data/lib/rubocop/cop/legacy/corrector.rb +1 -3
- data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
- data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +2 -4
- data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
- data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
- data/lib/rubocop/cop/lint/else_layout.rb +1 -3
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
- data/lib/rubocop/cop/lint/empty_file.rb +1 -3
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
- data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
- data/lib/rubocop/cop/lint/loop.rb +1 -2
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
- data/lib/rubocop/cop/lint/missing_super.rb +1 -2
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
- data/lib/rubocop/cop/lint/number_conversion.rb +3 -4
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rand_one.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +8 -20
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
- data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
- data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
- data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
- data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
- data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
- data/lib/rubocop/cop/lint/symbol_conversion.rb +2 -4
- data/lib/rubocop/cop/lint/syntax.rb +1 -3
- data/lib/rubocop/cop/lint/to_json.rb +1 -2
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
- data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
- data/lib/rubocop/cop/lint/unreachable_loop.rb +2 -5
- data/lib/rubocop/cop/lint/unused_block_argument.rb +4 -8
- data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
- data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
- data/lib/rubocop/cop/lint/void.rb +4 -11
- data/lib/rubocop/cop/message_annotator.rb +1 -3
- data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
- data/lib/rubocop/cop/metrics/class_length.rb +1 -3
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/module_length.rb +2 -6
- data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
- data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
- data/lib/rubocop/cop/migration/department_name.rb +3 -7
- data/lib/rubocop/cop/mixin/alignment.rb +2 -4
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
- data/lib/rubocop/cop/mixin/code_length.rb +1 -3
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
- data/lib/rubocop/cop/mixin/def_node.rb +2 -5
- data/lib/rubocop/cop/mixin/documentation_comment.rb +2 -5
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -9
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +3 -6
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
- data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
- data/lib/rubocop/cop/mixin/line_length_help.rb +2 -4
- data/lib/rubocop/cop/mixin/match_range.rb +2 -5
- data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
- data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -37
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
- data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
- data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
- data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
- data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -6
- data/lib/rubocop/cop/mixin/range_help.rb +10 -13
- data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
- data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
- data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
- data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +3 -7
- data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
- data/lib/rubocop/cop/naming/file_name.rb +7 -16
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -3
- data/lib/rubocop/cop/naming/method_name.rb +1 -2
- data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
- data/lib/rubocop/cop/offense.rb +3 -8
- data/lib/rubocop/cop/registry.rb +3 -11
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -4
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
- data/lib/rubocop/cop/style/alias.rb +5 -12
- data/lib/rubocop/cop/style/and_or.rb +3 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
- data/lib/rubocop/cop/style/attr.rb +1 -3
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
- data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -3
- data/lib/rubocop/cop/style/case_like_if.rb +1 -2
- data/lib/rubocop/cop/style/character_literal.rb +2 -4
- data/lib/rubocop/cop/style/class_and_module_children.rb +3 -6
- data/lib/rubocop/cop/style/class_methods.rb +1 -3
- data/lib/rubocop/cop/style/collection_compact.rb +1 -3
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
- data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
- data/lib/rubocop/cop/style/command_literal.rb +3 -8
- data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
- data/lib/rubocop/cop/style/commented_keyword.rb +7 -13
- data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
- data/lib/rubocop/cop/style/copyright.rb +3 -6
- data/lib/rubocop/cop/style/date_time.rb +2 -5
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
- data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
- data/lib/rubocop/cop/style/empty_else.rb +3 -9
- data/lib/rubocop/cop/style/empty_literal.rb +4 -8
- data/lib/rubocop/cop/style/empty_method.rb +3 -7
- data/lib/rubocop/cop/style/end_block.rb +1 -2
- data/lib/rubocop/cop/style/endless_method.rb +1 -3
- data/lib/rubocop/cop/style/eval_with_location.rb +2 -4
- data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
- data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
- data/lib/rubocop/cop/style/format_string_token.rb +1 -4
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -11
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +31 -3
- data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +41 -13
- data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
- data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
- data/lib/rubocop/cop/style/lambda.rb +2 -4
- data/lib/rubocop/cop/style/lambda_call.rb +1 -2
- data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +7 -3
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +10 -18
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
- data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
- data/lib/rubocop/cop/style/min_max.rb +1 -2
- data/lib/rubocop/cop/style/missing_else.rb +2 -4
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
- data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
- data/lib/rubocop/cop/style/module_function.rb +3 -6
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
- data/lib/rubocop/cop/style/multiline_method_signature.rb +11 -6
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
- data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
- data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
- data/lib/rubocop/cop/style/negated_if.rb +1 -2
- data/lib/rubocop/cop/style/negated_unless.rb +1 -2
- data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
- data/lib/rubocop/cop/style/next.rb +4 -9
- data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
- data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
- data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
- data/lib/rubocop/cop/style/option_hash.rb +1 -3
- data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
- data/lib/rubocop/cop/style/or_assignment.rb +2 -6
- data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
- data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
- data/lib/rubocop/cop/style/proc.rb +1 -2
- data/lib/rubocop/cop/style/raise_args.rb +4 -8
- data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
- data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
- data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
- data/lib/rubocop/cop/style/redundant_begin.rb +15 -4
- data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
- data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
- data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
- data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
- data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
- data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
- data/lib/rubocop/cop/style/redundant_return.rb +3 -5
- data/lib/rubocop/cop/style/redundant_self.rb +2 -6
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
- data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
- data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
- data/lib/rubocop/cop/style/rescue_modifier.rb +4 -0
- data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
- data/lib/rubocop/cop/style/return_nil.rb +1 -2
- data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
- data/lib/rubocop/cop/style/send.rb +1 -2
- data/lib/rubocop/cop/style/signal_exception.rb +3 -7
- data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
- data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
- data/lib/rubocop/cop/style/single_line_methods.rb +16 -4
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +1 -2
- data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
- data/lib/rubocop/cop/style/string_chars.rb +2 -1
- data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
- data/lib/rubocop/cop/style/string_literals.rb +2 -5
- data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
- data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
- data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
- data/lib/rubocop/cop/style/trivial_accessors.rb +2 -4
- data/lib/rubocop/cop/style/unless_else.rb +1 -2
- data/lib/rubocop/cop/style/unless_logical_operators.rb +2 -2
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +1 -3
- data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
- data/lib/rubocop/cop/style/word_array.rb +1 -2
- data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
- data/lib/rubocop/cop/team.rb +2 -5
- data/lib/rubocop/cop/util.rb +8 -11
- data/lib/rubocop/cop/utils/format_string.rb +1 -3
- data/lib/rubocop/cop/variable_force.rb +6 -15
- data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
- data/lib/rubocop/cop/variable_force/branch.rb +1 -2
- data/lib/rubocop/cop/variable_force/reference.rb +1 -3
- data/lib/rubocop/cop/variable_force/scope.rb +4 -8
- data/lib/rubocop/cop/variable_force/variable.rb +2 -4
- data/lib/rubocop/cops_documentation_generator.rb +7 -21
- data/lib/rubocop/directive_comment.rb +5 -0
- data/lib/rubocop/file_finder.rb +1 -3
- data/lib/rubocop/formatter/clang_style_formatter.rb +4 -2
- data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
- data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
- data/lib/rubocop/formatter/html_formatter.rb +4 -10
- data/lib/rubocop/formatter/json_formatter.rb +1 -5
- data/lib/rubocop/formatter/junit_formatter.rb +3 -9
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/formatter/tap_formatter.rb +4 -2
- data/lib/rubocop/options.rb +27 -41
- data/lib/rubocop/path_util.rb +1 -3
- data/lib/rubocop/rake_task.rb +3 -0
- data/lib/rubocop/remote_config.rb +4 -7
- data/lib/rubocop/result_cache.rb +5 -12
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +4 -9
- data/lib/rubocop/rspec/shared_contexts.rb +4 -15
- data/lib/rubocop/runner.rb +7 -14
- data/lib/rubocop/target_finder.rb +11 -16
- data/lib/rubocop/target_ruby.rb +4 -8
- data/lib/rubocop/version.rb +1 -1
- metadata +5 -5
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -15,8 +15,7 @@ module RuboCop
|
|
15
15
|
include IgnoredMethods
|
16
16
|
extend AutoCorrector
|
17
17
|
|
18
|
-
MSG = 'Do not use parentheses for method calls with '
|
19
|
-
'no arguments.'
|
18
|
+
MSG = 'Do not use parentheses for method calls with no arguments.'
|
20
19
|
|
21
20
|
def on_send(node)
|
22
21
|
return unless !node.arguments? && node.parenthesized?
|
@@ -40,11 +40,9 @@ module RuboCop
|
|
40
40
|
|
41
41
|
receiver = node.receiver
|
42
42
|
|
43
|
-
return unless receiver&.block_type? &&
|
44
|
-
receiver.loc.end.is?('end')
|
43
|
+
return unless receiver&.block_type? && receiver.loc.end.is?('end')
|
45
44
|
|
46
|
-
range = range_between(receiver.loc.end.begin_pos,
|
47
|
-
node.source_range.end_pos)
|
45
|
+
range = range_between(receiver.loc.end.begin_pos, node.source_range.end_pos)
|
48
46
|
|
49
47
|
add_offense(range)
|
50
48
|
end
|
@@ -93,8 +93,7 @@ module RuboCop
|
|
93
93
|
extend AutoCorrector
|
94
94
|
|
95
95
|
MSG_PRESENT = 'Use def without parentheses.'
|
96
|
-
MSG_MISSING = 'Use def with parentheses when there are '
|
97
|
-
'parameters.'
|
96
|
+
MSG_MISSING = 'Use def with parentheses when there are parameters.'
|
98
97
|
|
99
98
|
def on_def(node)
|
100
99
|
return if node.endless?
|
@@ -124,18 +123,15 @@ module RuboCop
|
|
124
123
|
|
125
124
|
def correct_definition(def_node, corrector)
|
126
125
|
arguments_range = def_node.arguments.source_range
|
127
|
-
args_with_space = range_with_surrounding_space(range: arguments_range,
|
128
|
-
|
129
|
-
leading_space = range_between(args_with_space.begin_pos,
|
130
|
-
arguments_range.begin_pos)
|
126
|
+
args_with_space = range_with_surrounding_space(range: arguments_range, side: :left)
|
127
|
+
leading_space = range_between(args_with_space.begin_pos, arguments_range.begin_pos)
|
131
128
|
corrector.replace(leading_space, '(')
|
132
129
|
corrector.insert_after(arguments_range, ')')
|
133
130
|
end
|
134
131
|
|
135
132
|
def require_parentheses?(args)
|
136
133
|
style == :require_parentheses ||
|
137
|
-
(style == :require_no_parentheses_except_multiline &&
|
138
|
-
args.multiline?)
|
134
|
+
(style == :require_no_parentheses_except_multiline && args.multiline?)
|
139
135
|
end
|
140
136
|
|
141
137
|
def arguments_without_parentheses?(node)
|
@@ -98,10 +98,8 @@ module RuboCop
|
|
98
98
|
include ConfigurableEnforcedStyle
|
99
99
|
|
100
100
|
MSG = '`%<type>s` condition requires an `else`-clause.'
|
101
|
-
MSG_NIL = '`%<type>s` condition requires an `else`-clause with '
|
102
|
-
|
103
|
-
MSG_EMPTY = '`%<type>s` condition requires an empty ' \
|
104
|
-
'`else`-clause.'
|
101
|
+
MSG_NIL = '`%<type>s` condition requires an `else`-clause with `nil` in it.'
|
102
|
+
MSG_EMPTY = '`%<type>s` condition requires an empty `else`-clause.'
|
105
103
|
|
106
104
|
def on_normal_if_unless(node)
|
107
105
|
return if case_style?
|
@@ -22,8 +22,7 @@ module RuboCop
|
|
22
22
|
# end
|
23
23
|
#
|
24
24
|
class MissingRespondToMissing < Base
|
25
|
-
MSG =
|
26
|
-
'When using `method_missing`, define `respond_to_missing?`.'
|
25
|
+
MSG = 'When using `method_missing`, define `respond_to_missing?`.'
|
27
26
|
|
28
27
|
def on_def(node)
|
29
28
|
return unless node.method?(:method_missing)
|
@@ -53,8 +53,7 @@ module RuboCop
|
|
53
53
|
def range_to_remove_for_subsequent_mixin(mixins, node)
|
54
54
|
range = node.loc.expression
|
55
55
|
prev_mixin = mixins.each_cons(2) { |m, n| break m if n == node }
|
56
|
-
between = prev_mixin.loc.expression.end
|
57
|
-
.join(range.begin)
|
56
|
+
between = prev_mixin.loc.expression.end.join(range.begin)
|
58
57
|
# if separated from previous mixin with only whitespace?
|
59
58
|
unless /\S/.match?(between.source)
|
60
59
|
range = range.join(between) # then remove that too
|
@@ -103,12 +102,9 @@ module RuboCop
|
|
103
102
|
end
|
104
103
|
|
105
104
|
def sibling_mixins(send_node)
|
106
|
-
siblings = send_node.parent.each_child_node(:send)
|
107
|
-
.select(&:macro?)
|
105
|
+
siblings = send_node.parent.each_child_node(:send).select(&:macro?)
|
108
106
|
|
109
|
-
siblings.select
|
110
|
-
sibling_node.method?(send_node.method_name)
|
111
|
-
end
|
107
|
+
siblings.select { |sibling_node| sibling_node.method?(send_node.method_name) }
|
112
108
|
end
|
113
109
|
|
114
110
|
def grouped_style?
|
@@ -129,9 +125,7 @@ module RuboCop
|
|
129
125
|
end
|
130
126
|
|
131
127
|
def group_mixins(node, mixins)
|
132
|
-
mixin_names = mixins.reverse.flat_map
|
133
|
-
mixin.arguments.map(&:source)
|
134
|
-
end
|
128
|
+
mixin_names = mixins.reverse.flat_map { |mixin| mixin.arguments.map(&:source) }
|
135
129
|
|
136
130
|
"#{node.method_name} #{mixin_names.join(', ')}"
|
137
131
|
end
|
@@ -41,8 +41,7 @@ module RuboCop
|
|
41
41
|
# prepend M
|
42
42
|
# end
|
43
43
|
class MixinUsage < Base
|
44
|
-
MSG = '`%<statement>s` is used at the top level. Use inside `class` '
|
45
|
-
'or `module`.'
|
44
|
+
MSG = '`%<statement>s` is used at the top level. Use inside `class` or `module`.'
|
46
45
|
RESTRICT_ON_SEND = %i[include extend prepend].freeze
|
47
46
|
|
48
47
|
# @!method include_statement(node)
|
@@ -75,12 +75,9 @@ module RuboCop
|
|
75
75
|
include ConfigurableEnforcedStyle
|
76
76
|
extend AutoCorrector
|
77
77
|
|
78
|
-
MODULE_FUNCTION_MSG =
|
79
|
-
|
80
|
-
|
81
|
-
'Use `extend self` instead of `module_function`.'
|
82
|
-
FORBIDDEN_MSG =
|
83
|
-
'Do not use `module_function` or `extend self`.'
|
78
|
+
MODULE_FUNCTION_MSG = 'Use `module_function` instead of `extend self`.'
|
79
|
+
EXTEND_SELF_MSG = 'Use `extend self` instead of `module_function`.'
|
80
|
+
FORBIDDEN_MSG = 'Do not use `module_function` or `extend self`.'
|
84
81
|
|
85
82
|
# @!method module_function_node?(node)
|
86
83
|
def_node_matcher :module_function_node?, '(send nil? :module_function)'
|
@@ -33,8 +33,7 @@ module RuboCop
|
|
33
33
|
|
34
34
|
next unless receiver&.block_type? && receiver&.multiline?
|
35
35
|
|
36
|
-
range = range_between(receiver.loc.end.begin_pos,
|
37
|
-
node.send_node.source_range.end_pos)
|
36
|
+
range = range_between(receiver.loc.end.begin_pos, node.send_node.source_range.end_pos)
|
38
37
|
|
39
38
|
add_offense(range)
|
40
39
|
|
@@ -29,9 +29,7 @@ module RuboCop
|
|
29
29
|
return if opening_line(node) == closing_line(node)
|
30
30
|
return if correction_exceeds_max_line_length?(node)
|
31
31
|
|
32
|
-
add_offense(node)
|
33
|
-
autocorrect(corrector, node)
|
34
|
-
end
|
32
|
+
add_offense(node) { |corrector| autocorrect(corrector, node) }
|
35
33
|
end
|
36
34
|
alias on_defs on_def
|
37
35
|
|
@@ -40,7 +38,7 @@ module RuboCop
|
|
40
38
|
def autocorrect(corrector, node)
|
41
39
|
arguments = node.arguments
|
42
40
|
joined_arguments = arguments.map(&:source).join(', ')
|
43
|
-
last_line_source_of_arguments =
|
41
|
+
last_line_source_of_arguments = last_line_source_of_arguments(arguments)
|
44
42
|
|
45
43
|
if last_line_source_of_arguments.start_with?(')')
|
46
44
|
joined_arguments = "#{joined_arguments}#{last_line_source_of_arguments}"
|
@@ -48,13 +46,20 @@ module RuboCop
|
|
48
46
|
corrector.remove(range_by_whole_lines(arguments.loc.end, include_final_newline: true))
|
49
47
|
end
|
50
48
|
|
51
|
-
corrector.
|
49
|
+
corrector.remove(arguments_range(node))
|
50
|
+
corrector.insert_after(arguments.loc.begin, joined_arguments)
|
51
|
+
end
|
52
|
+
|
53
|
+
def last_line_source_of_arguments(arguments)
|
54
|
+
processed_source[arguments.last_line - 1].strip
|
52
55
|
end
|
53
56
|
|
54
57
|
def arguments_range(node)
|
55
|
-
range_between(
|
58
|
+
range = range_between(
|
56
59
|
node.first_argument.source_range.begin_pos, node.last_argument.source_range.end_pos
|
57
60
|
)
|
61
|
+
|
62
|
+
range_with_surrounding_space(range: range, side: :left)
|
58
63
|
end
|
59
64
|
|
60
65
|
def opening_line(node)
|
@@ -28,8 +28,7 @@ module RuboCop
|
|
28
28
|
class MultilineTernaryOperator < Base
|
29
29
|
extend AutoCorrector
|
30
30
|
|
31
|
-
MSG = 'Avoid multi-line ternary operators, '
|
32
|
-
'use `if` or `unless` instead.'
|
31
|
+
MSG = 'Avoid multi-line ternary operators, use `if` or `unless` instead.'
|
33
32
|
|
34
33
|
def on_if(node)
|
35
34
|
return unless offense?(node)
|
@@ -92,9 +92,7 @@ module RuboCop
|
|
92
92
|
|
93
93
|
def variables_in_node(node)
|
94
94
|
if node.or_type?
|
95
|
-
node.node_parts
|
96
|
-
.flat_map { |node_part| variables_in_node(node_part) }
|
97
|
-
.uniq
|
95
|
+
node.node_parts.flat_map { |node_part| variables_in_node(node_part) }.uniq
|
98
96
|
else
|
99
97
|
variables_in_simple_node(node)
|
100
98
|
end
|
@@ -142,7 +140,7 @@ module RuboCop
|
|
142
140
|
def switch_comparison?(node)
|
143
141
|
return true if @last_comparison.nil?
|
144
142
|
|
145
|
-
@last_comparison.descendants.none?
|
143
|
+
@last_comparison.descendants.none?(node)
|
146
144
|
end
|
147
145
|
|
148
146
|
def reset_comparison
|
@@ -87,9 +87,7 @@ module RuboCop
|
|
87
87
|
return if operation_produces_immutable_object?(value)
|
88
88
|
return if frozen_string_literal?(value)
|
89
89
|
|
90
|
-
add_offense(value)
|
91
|
-
autocorrect(corrector, value)
|
92
|
-
end
|
90
|
+
add_offense(value) { |corrector| autocorrect(corrector, value) }
|
93
91
|
end
|
94
92
|
|
95
93
|
def check(value)
|
@@ -101,9 +99,7 @@ module RuboCop
|
|
101
99
|
return if FROZEN_STRING_LITERAL_TYPES.include?(value.type) &&
|
102
100
|
frozen_string_literals_enabled?
|
103
101
|
|
104
|
-
add_offense(value)
|
105
|
-
autocorrect(corrector, value)
|
106
|
-
end
|
102
|
+
add_offense(value) { |corrector| autocorrect(corrector, value) }
|
107
103
|
end
|
108
104
|
|
109
105
|
def autocorrect(corrector, node)
|
@@ -133,8 +129,7 @@ module RuboCop
|
|
133
129
|
end
|
134
130
|
|
135
131
|
def frozen_string_literal?(node)
|
136
|
-
FROZEN_STRING_LITERAL_TYPES.include?(node.type) &&
|
137
|
-
frozen_string_literals_enabled?
|
132
|
+
FROZEN_STRING_LITERAL_TYPES.include?(node.type) && frozen_string_literals_enabled?
|
138
133
|
end
|
139
134
|
|
140
135
|
def frozen_regexp_or_range_literals?(node)
|
@@ -142,8 +137,7 @@ module RuboCop
|
|
142
137
|
end
|
143
138
|
|
144
139
|
def requires_parentheses?(node)
|
145
|
-
node.range_type? ||
|
146
|
-
(node.send_type? && node.loc.dot.nil?)
|
140
|
+
node.range_type? || (node.send_type? && node.loc.dot.nil?)
|
147
141
|
end
|
148
142
|
|
149
143
|
def correct_splat_expansion(corrector, expr, splat_value)
|
@@ -31,9 +31,7 @@ module RuboCop
|
|
31
31
|
return if part_of_ignored_node?(node)
|
32
32
|
return unless modifier?(node) && modifier?(node.parent)
|
33
33
|
|
34
|
-
add_offense(node.loc.keyword)
|
35
|
-
autocorrect(corrector, node)
|
36
|
-
end
|
34
|
+
add_offense(node.loc.keyword) { |corrector| autocorrect(corrector, node) }
|
37
35
|
ignore_node(node)
|
38
36
|
end
|
39
37
|
|
@@ -66,8 +64,7 @@ module RuboCop
|
|
66
64
|
|
67
65
|
def left_hand_operand(node, operator)
|
68
66
|
expr = node.condition.source
|
69
|
-
expr = "(#{expr})" if node.condition.or_type? &&
|
70
|
-
operator == '&&'
|
67
|
+
expr = "(#{expr})" if node.condition.or_type? && operator == '&&'
|
71
68
|
expr
|
72
69
|
end
|
73
70
|
|
@@ -95,8 +92,7 @@ module RuboCop
|
|
95
92
|
end
|
96
93
|
|
97
94
|
def requires_parens?(node)
|
98
|
-
node.or_type? ||
|
99
|
-
!(RuboCop::AST::Node::COMPARISON_OPERATORS & node.children).empty?
|
95
|
+
node.or_type? || !(RuboCop::AST::Node::COMPARISON_OPERATORS & node.children).empty?
|
100
96
|
end
|
101
97
|
end
|
102
98
|
end
|
@@ -18,8 +18,7 @@ module RuboCop
|
|
18
18
|
class NestedTernaryOperator < Base
|
19
19
|
extend AutoCorrector
|
20
20
|
|
21
|
-
MSG = 'Ternary operators must not be nested. Prefer `if` or `else` '
|
22
|
-
'constructs instead.'
|
21
|
+
MSG = 'Ternary operators must not be nested. Prefer `if` or `else` constructs instead.'
|
23
22
|
|
24
23
|
def on_if(node)
|
25
24
|
return unless node.ternary?
|
@@ -51,7 +50,7 @@ module RuboCop
|
|
51
50
|
def remove_parentheses(source)
|
52
51
|
return source unless source.start_with?('(')
|
53
52
|
|
54
|
-
source.
|
53
|
+
source.delete_prefix('(').delete_suffix(')')
|
55
54
|
end
|
56
55
|
end
|
57
56
|
end
|
@@ -66,8 +66,7 @@ module RuboCop
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def on_block(node)
|
69
|
-
return unless node.send_node.send_type? &&
|
70
|
-
node.send_node.enumerator_method?
|
69
|
+
return unless node.send_node.send_type? && node.send_node.enumerator_method?
|
71
70
|
|
72
71
|
check(node)
|
73
72
|
end
|
@@ -180,8 +179,7 @@ module RuboCop
|
|
180
179
|
source_buffer = node.source_range.source_buffer
|
181
180
|
end_pos = node.loc.end.end_pos
|
182
181
|
begin_pos = node.loc.end.begin_pos - node.loc.end.column
|
183
|
-
begin_pos -= 1 if end_followed_by_whitespace_only?(source_buffer,
|
184
|
-
end_pos)
|
182
|
+
begin_pos -= 1 if end_followed_by_whitespace_only?(source_buffer, end_pos)
|
185
183
|
|
186
184
|
range_between(begin_pos, end_pos)
|
187
185
|
end
|
@@ -207,9 +205,7 @@ module RuboCop
|
|
207
205
|
|
208
206
|
target_indent = range.source_line =~ /\S/
|
209
207
|
delta = actual_indent(lines, buffer) - target_indent
|
210
|
-
lines.each
|
211
|
-
reindent_line(corrector, lineno, delta, buffer)
|
212
|
-
end
|
208
|
+
lines.each { |lineno| reindent_line(corrector, lineno, delta, buffer) }
|
213
209
|
end
|
214
210
|
|
215
211
|
def actual_indent(lines, buffer)
|
@@ -230,8 +226,7 @@ module RuboCop
|
|
230
226
|
if adjustment.positive?
|
231
227
|
corrector.remove_leading(buffer.line_range(lineno), adjustment)
|
232
228
|
elsif adjustment.negative?
|
233
|
-
corrector.insert_before(buffer.line_range(lineno),
|
234
|
-
' ' * -adjustment)
|
229
|
+
corrector.insert_before(buffer.line_range(lineno), ' ' * -adjustment)
|
235
230
|
end
|
236
231
|
end
|
237
232
|
end
|
@@ -67,9 +67,7 @@ module RuboCop
|
|
67
67
|
return unless register_offense?(node)
|
68
68
|
|
69
69
|
message = message(node)
|
70
|
-
add_offense(node, message: message)
|
71
|
-
autocorrect(corrector, node)
|
72
|
-
end
|
70
|
+
add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
|
73
71
|
end
|
74
72
|
|
75
73
|
def on_def(node)
|
@@ -106,8 +104,7 @@ module RuboCop
|
|
106
104
|
def unless_and_nil_check?(send_node)
|
107
105
|
parent = send_node.parent
|
108
106
|
|
109
|
-
nil_check?(send_node) && unless_check?(parent) && !parent.ternary? &&
|
110
|
-
parent.unless?
|
107
|
+
nil_check?(send_node) && unless_check?(parent) && !parent.ternary? && parent.unless?
|
111
108
|
end
|
112
109
|
|
113
110
|
def message(node)
|
@@ -31,8 +31,7 @@ module RuboCop
|
|
31
31
|
include IntegerNode
|
32
32
|
extend AutoCorrector
|
33
33
|
|
34
|
-
MSG = 'Use underscores(_) as thousands separator and '
|
35
|
-
'separate every 3 digits with them.'
|
34
|
+
MSG = 'Use underscores(_) as thousands separator and separate every 3 digits with them.'
|
36
35
|
DELIMITER_REGEXP = /[eE.]/.freeze
|
37
36
|
|
38
37
|
# The parameter is called MinDigits (meaning the minimum number of
|
@@ -70,9 +69,7 @@ module RuboCop
|
|
70
69
|
end
|
71
70
|
|
72
71
|
def register_offense(node)
|
73
|
-
add_offense(node)
|
74
|
-
corrector.replace(node, format_number(node))
|
75
|
-
end
|
72
|
+
add_offense(node) { |corrector| corrector.replace(node, format_number(node)) }
|
76
73
|
end
|
77
74
|
|
78
75
|
def short_group_regex
|
@@ -95,12 +92,7 @@ module RuboCop
|
|
95
92
|
# @param int_part [String]
|
96
93
|
def format_int_part(int_part)
|
97
94
|
int_part = Integer(int_part)
|
98
|
-
formatted_int = int_part
|
99
|
-
.abs
|
100
|
-
.to_s
|
101
|
-
.reverse
|
102
|
-
.gsub(/...(?=.)/, '\&_')
|
103
|
-
.reverse
|
95
|
+
formatted_int = int_part.abs.to_s.reverse.gsub(/...(?=.)/, '\&_').reverse
|
104
96
|
formatted_int.insert(0, '-') if int_part.negative?
|
105
97
|
formatted_int
|
106
98
|
end
|