rubocop 1.12.1 → 1.16.1
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 +5 -2
- data/config/default.yml +78 -8
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +10 -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 +43 -11
- data/lib/rubocop/cop/bundler/gem_version.rb +99 -0
- 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 +7 -5
- 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 +30 -14
- 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 +57 -11
- 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 +2 -5
- 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 +14 -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 +36 -15
- 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 +6 -4
- 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 +4 -10
- data/lib/rubocop/cop/layout/redundant_line_break.rb +137 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +53 -0
- 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 +19 -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 +83 -41
- 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_block.rb +18 -2
- 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_in_pattern.rb +62 -0
- 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 +2 -3
- 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 +18 -27
- 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 +4 -16
- 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 +14 -7
- data/lib/rubocop/cop/lint/unused_block_argument.rb +9 -7
- 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 +5 -12
- 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 +19 -3
- 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 +7 -7
- data/lib/rubocop/cop/mixin/gem_declaration.rb +13 -0
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +17 -9
- 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 -17
- 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/string_literals_help.rb +3 -5
- data/lib/rubocop/cop/mixin/symbol_help.rb +13 -0
- 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 +1 -3
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
- data/lib/rubocop/cop/style/alias.rb +5 -12
- 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 +19 -10
- 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 +2 -8
- 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 +12 -9
- 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 -8
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +28 -3
- data/lib/rubocop/cop/style/hash_each_methods.rb +19 -3
- 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 +27 -8
- data/lib/rubocop/cop/style/if_unless_modifier.rb +40 -13
- data/lib/rubocop/cop/style/in_pattern_then.rb +56 -0
- 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 +1 -1
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +7 -12
- 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_in_pattern_then.rb +62 -0
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -3
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
- data/lib/rubocop/cop/style/multiline_when_then.rb +2 -11
- 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_if_else_condition.rb +17 -9
- 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/nil_lambda.rb +29 -12
- 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/quoted_symbols.rb +110 -0
- 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 +4 -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 +25 -7
- 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 +20 -4
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +15 -7
- 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 +3 -5
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -0
- 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/top_level_method_definition.rb +83 -0
- 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 +67 -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 +4 -2
- 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 +4 -10
- 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 +16 -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 -1
- data/lib/rubocop/file_finder.rb +1 -3
- 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 +23 -14
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/options.rb +30 -50
- 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 +8 -15
- data/lib/rubocop/runner.rb +7 -14
- data/lib/rubocop/target_finder.rb +18 -16
- data/lib/rubocop/target_ruby.rb +4 -8
- data/lib/rubocop/version.rb +1 -1
- metadata +16 -7
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -69,9 +69,7 @@ module RuboCop
|
|
69
69
|
good = good_method_name(method_name)
|
70
70
|
message = format(MSG, good: good, bad: range.source)
|
71
71
|
|
72
|
-
add_offense(range, message: message)
|
73
|
-
corrector.replace(range, good)
|
74
|
-
end
|
72
|
+
add_offense(range, message: message) { |corrector| corrector.replace(range, good) }
|
75
73
|
end
|
76
74
|
|
77
75
|
private
|
@@ -38,9 +38,7 @@ module RuboCop
|
|
38
38
|
# ignore Java interop code like Java::int
|
39
39
|
return if java_type_node?(node)
|
40
40
|
|
41
|
-
add_offense(node.loc.dot)
|
42
|
-
corrector.replace(node.loc.dot, '.')
|
43
|
-
end
|
41
|
+
add_offense(node.loc.dot) { |corrector| corrector.replace(node.loc.dot, '.') }
|
44
42
|
end
|
45
43
|
end
|
46
44
|
end
|
@@ -75,8 +75,9 @@ module RuboCop
|
|
75
75
|
private
|
76
76
|
|
77
77
|
def collection_looping_method?(node)
|
78
|
-
|
79
|
-
method_name
|
78
|
+
# TODO: Remove `Symbol#to_s` after supporting only Ruby >= 2.7.
|
79
|
+
method_name = node.send_node.method_name.to_s
|
80
|
+
method_name.start_with?('each') || method_name.end_with?('_each')
|
80
81
|
end
|
81
82
|
|
82
83
|
def same_collection_looping?(node, sibling)
|
@@ -97,17 +97,13 @@ module RuboCop
|
|
97
97
|
def check_backtick_literal(node, message)
|
98
98
|
return if allowed_backtick_literal?(node)
|
99
99
|
|
100
|
-
add_offense(node, message: message)
|
101
|
-
autocorrect(corrector, node)
|
102
|
-
end
|
100
|
+
add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
|
103
101
|
end
|
104
102
|
|
105
103
|
def check_percent_x_literal(node, message)
|
106
104
|
return if allowed_percent_x_literal?(node)
|
107
105
|
|
108
|
-
add_offense(node, message: message)
|
109
|
-
autocorrect(corrector, node)
|
110
|
-
end
|
106
|
+
add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
|
111
107
|
end
|
112
108
|
|
113
109
|
def autocorrect(corrector, node)
|
@@ -177,8 +173,7 @@ module RuboCop
|
|
177
173
|
end
|
178
174
|
|
179
175
|
def preferred_delimiters_config
|
180
|
-
config.for_cop('Style/PercentLiteralDelimiters')
|
181
|
-
['PreferredDelimiters']
|
176
|
+
config.for_cop('Style/PercentLiteralDelimiters') ['PreferredDelimiters']
|
182
177
|
end
|
183
178
|
end
|
184
179
|
end
|
@@ -44,8 +44,7 @@ module RuboCop
|
|
44
44
|
MSG = 'Annotation keywords like `%<keyword>s` should be all ' \
|
45
45
|
'upper case, followed by a colon, and a space, ' \
|
46
46
|
'then a note describing the problem.'
|
47
|
-
MISSING_NOTE = 'Annotation comment, with keyword `%<keyword>s`, '
|
48
|
-
'is missing a note.'
|
47
|
+
MISSING_NOTE = 'Annotation comment, with keyword `%<keyword>s`, is missing a note.'
|
49
48
|
|
50
49
|
def on_new_investigation
|
51
50
|
processed_source.comments.each_with_index do |comment, index|
|
@@ -53,8 +52,7 @@ module RuboCop
|
|
53
52
|
inline_comment?(comment)
|
54
53
|
|
55
54
|
margin, first_word, colon, space, note = split_comment(comment)
|
56
|
-
next unless annotation?(comment) &&
|
57
|
-
!correct_annotation?(first_word, colon, space, note)
|
55
|
+
next unless annotation?(comment) && !correct_annotation?(first_word, colon, space, note)
|
58
56
|
|
59
57
|
range = annotation_range(comment, margin, first_word, colon, space)
|
60
58
|
|
@@ -76,8 +74,7 @@ module RuboCop
|
|
76
74
|
end
|
77
75
|
|
78
76
|
def first_comment_line?(comments, index)
|
79
|
-
index.zero? ||
|
80
|
-
comments[index - 1].loc.line < comments[index].loc.line - 1
|
77
|
+
index.zero? || comments[index - 1].loc.line < comments[index].loc.line - 1
|
81
78
|
end
|
82
79
|
|
83
80
|
def inline_comment?(comment)
|
@@ -40,18 +40,12 @@ module RuboCop
|
|
40
40
|
include RangeHelp
|
41
41
|
extend AutoCorrector
|
42
42
|
|
43
|
-
MSG = 'Do not place comments on the same line as the '
|
44
|
-
'`%<keyword>s` keyword.'
|
43
|
+
MSG = 'Do not place comments on the same line as the `%<keyword>s` keyword.'
|
45
44
|
|
46
45
|
KEYWORDS = %w[begin class def end module].freeze
|
47
46
|
KEYWORD_REGEXES = KEYWORDS.map { |w| /^\s*#{w}\s/ }.freeze
|
48
47
|
|
49
|
-
ALLOWED_COMMENTS = %w[
|
50
|
-
:nodoc:
|
51
|
-
:yields:
|
52
|
-
rubocop:disable
|
53
|
-
rubocop:todo
|
54
|
-
].freeze
|
48
|
+
ALLOWED_COMMENTS = %w[:nodoc: :yields: rubocop:disable rubocop:todo].freeze
|
55
49
|
ALLOWED_COMMENT_REGEXES = ALLOWED_COMMENTS.map { |c| /#\s*#{c}/ }.freeze
|
56
50
|
|
57
51
|
def on_new_investigation
|
@@ -103,8 +103,7 @@ module RuboCop
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def setter_method?(method_name)
|
106
|
-
method_name.to_s.end_with?(EQUAL) &&
|
107
|
-
!%i[!= == === >= <=].include?(method_name)
|
106
|
+
method_name.to_s.end_with?(EQUAL) && !%i[!= == === >= <=].include?(method_name)
|
108
107
|
end
|
109
108
|
|
110
109
|
def assignment_rhs_exist?(node)
|
@@ -214,14 +213,10 @@ module RuboCop
|
|
214
213
|
include IgnoredNode
|
215
214
|
extend AutoCorrector
|
216
215
|
|
217
|
-
MSG = 'Use the return of the conditional for variable assignment '
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
VARIABLE_ASSIGNMENT_TYPES =
|
222
|
-
%i[casgn cvasgn gvasgn ivasgn lvasgn].freeze
|
223
|
-
ASSIGNMENT_TYPES = VARIABLE_ASSIGNMENT_TYPES +
|
224
|
-
%i[and_asgn or_asgn op_asgn masgn].freeze
|
216
|
+
MSG = 'Use the return of the conditional for variable assignment and comparison.'
|
217
|
+
ASSIGN_TO_CONDITION_MSG = 'Assign variables inside of conditionals'
|
218
|
+
VARIABLE_ASSIGNMENT_TYPES = %i[casgn cvasgn gvasgn ivasgn lvasgn].freeze
|
219
|
+
ASSIGNMENT_TYPES = VARIABLE_ASSIGNMENT_TYPES + %i[and_asgn or_asgn op_asgn masgn].freeze
|
225
220
|
LINE_LENGTH = 'Layout/LineLength'
|
226
221
|
INDENTATION_WIDTH = 'Layout/IndentationWidth'
|
227
222
|
ENABLED = 'Enabled'
|
@@ -368,9 +363,7 @@ module RuboCop
|
|
368
363
|
return if allowed_single_line?(branches)
|
369
364
|
return if correction_exceeds_line_limit?(node, branches)
|
370
365
|
|
371
|
-
add_offense(node)
|
372
|
-
autocorrect(corrector, node)
|
373
|
-
end
|
366
|
+
add_offense(node) { |corrector| autocorrect(corrector, node) }
|
374
367
|
end
|
375
368
|
|
376
369
|
def autocorrect(corrector, node)
|
@@ -411,9 +404,7 @@ module RuboCop
|
|
411
404
|
|
412
405
|
def longest_line(node, assignment)
|
413
406
|
assignment_regex = /\s*#{Regexp.escape(assignment).gsub('\ ', '\s*')}/
|
414
|
-
lines = node.source.lines.map
|
415
|
-
line.chomp.sub(assignment_regex, '')
|
416
|
-
end
|
407
|
+
lines = node.source.lines.map { |line| line.chomp.sub(assignment_regex, '') }
|
417
408
|
longest_line = lines.max_by(&:length)
|
418
409
|
assignment + longest_line
|
419
410
|
end
|
@@ -457,9 +448,7 @@ module RuboCop
|
|
457
448
|
expression = node.loc.expression
|
458
449
|
begin_pos = expression.begin_pos - (expression.column - column - 2)
|
459
450
|
|
460
|
-
Parser::Source::Range.new(expression.source_buffer,
|
461
|
-
begin_pos,
|
462
|
-
expression.begin_pos)
|
451
|
+
Parser::Source::Range.new(expression.source_buffer, begin_pos, expression.begin_pos)
|
463
452
|
end
|
464
453
|
|
465
454
|
def assignment(node)
|
@@ -532,9 +521,7 @@ module RuboCop
|
|
532
521
|
_variable, *_operator, if_rhs = *node.if_branch
|
533
522
|
_else_variable, *_operator, else_rhs = *node.else_branch
|
534
523
|
|
535
|
-
expr = "#{node.condition.source} ? "
|
536
|
-
"#{if_rhs.source} : " \
|
537
|
-
"#{else_rhs.source}"
|
524
|
+
expr = "#{node.condition.source} ? #{if_rhs.source} : #{else_rhs.source}"
|
538
525
|
|
539
526
|
element_assignment?(node.if_branch) ? "(#{expr})" : expr
|
540
527
|
end
|
@@ -596,8 +583,7 @@ module RuboCop
|
|
596
583
|
def move_branch_inside_condition(corrector, branch, condition,
|
597
584
|
assignment, column)
|
598
585
|
branch_assignment = tail(branch)
|
599
|
-
corrector.insert_before(branch_assignment,
|
600
|
-
assignment.source)
|
586
|
+
corrector.insert_before(branch_assignment, assignment.source)
|
601
587
|
|
602
588
|
remove_whitespace_in_branches(corrector, branch, condition, column)
|
603
589
|
|
@@ -19,10 +19,8 @@ module RuboCop
|
|
19
19
|
include RangeHelp
|
20
20
|
extend AutoCorrector
|
21
21
|
|
22
|
-
MSG = 'Include a copyright notice matching /%<notice>s/ before '
|
23
|
-
|
24
|
-
AUTOCORRECT_EMPTY_WARNING = 'An AutocorrectNotice must be defined in ' \
|
25
|
-
'your RuboCop config'
|
22
|
+
MSG = 'Include a copyright notice matching /%<notice>s/ before any code.'
|
23
|
+
AUTOCORRECT_EMPTY_WARNING = 'An AutocorrectNotice must be defined in your RuboCop config'
|
26
24
|
|
27
25
|
def on_new_investigation
|
28
26
|
return if notice.empty? || notice_found?(processed_source)
|
@@ -57,8 +55,7 @@ module RuboCop
|
|
57
55
|
regex = Regexp.new(notice)
|
58
56
|
return if autocorrect_notice&.match?(regex)
|
59
57
|
|
60
|
-
raise Warning, "AutocorrectNotice '#{autocorrect_notice}' must "
|
61
|
-
"match Notice /#{notice}/"
|
58
|
+
raise Warning, "AutocorrectNotice '#{autocorrect_notice}' must match Notice /#{notice}/"
|
62
59
|
end
|
63
60
|
|
64
61
|
def insert_notice_before(processed_source)
|
@@ -63,15 +63,12 @@ module RuboCop
|
|
63
63
|
PATTERN
|
64
64
|
|
65
65
|
def on_send(node)
|
66
|
-
return unless date_time?(node) ||
|
67
|
-
(to_datetime?(node) && disallow_coercion?)
|
66
|
+
return unless date_time?(node) || (to_datetime?(node) && disallow_coercion?)
|
68
67
|
return if historic_date?(node)
|
69
68
|
|
70
69
|
message = to_datetime?(node) ? COERCION_MSG : CLASS_MSG
|
71
70
|
|
72
|
-
add_offense(node, message: message)
|
73
|
-
autocorrect(corrector, node)
|
74
|
-
end
|
71
|
+
add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
|
75
72
|
end
|
76
73
|
|
77
74
|
private
|
@@ -36,8 +36,7 @@ module RuboCop
|
|
36
36
|
class DefWithParentheses < Base
|
37
37
|
extend AutoCorrector
|
38
38
|
|
39
|
-
MSG = "Omit the parentheses in defs when the method doesn't accept "
|
40
|
-
'any arguments.'
|
39
|
+
MSG = "Omit the parentheses in defs when the method doesn't accept any arguments."
|
41
40
|
|
42
41
|
def on_def(node)
|
43
42
|
return if node.single_line?
|
@@ -25,8 +25,7 @@ module RuboCop
|
|
25
25
|
class EachForSimpleLoop < Base
|
26
26
|
extend AutoCorrector
|
27
27
|
|
28
|
-
MSG = 'Use `Integer#times` for a simple loop which iterates a fixed '
|
29
|
-
'number of times.'
|
28
|
+
MSG = 'Use `Integer#times` for a simple loop which iterates a fixed number of times.'
|
30
29
|
|
31
30
|
def on_block(node)
|
32
31
|
return unless offending_each_range(node)
|
@@ -44,19 +44,14 @@ module RuboCop
|
|
44
44
|
def on_case(case_node)
|
45
45
|
return if case_node.condition
|
46
46
|
|
47
|
-
branch_bodies = [
|
48
|
-
*case_node.when_branches.map(&:body),
|
49
|
-
case_node.else_branch
|
50
|
-
].compact
|
47
|
+
branch_bodies = [*case_node.when_branches.map(&:body), case_node.else_branch].compact
|
51
48
|
|
52
49
|
return if branch_bodies.any? do |body|
|
53
50
|
body.return_type? ||
|
54
51
|
body.each_descendant.any?(&:return_type?)
|
55
52
|
end
|
56
53
|
|
57
|
-
add_offense(case_node.loc.keyword)
|
58
|
-
autocorrect(corrector, case_node)
|
59
|
-
end
|
54
|
+
add_offense(case_node.loc.keyword) { |corrector| autocorrect(corrector, case_node) }
|
60
55
|
end
|
61
56
|
|
62
57
|
private
|
@@ -123,17 +123,13 @@ module RuboCop
|
|
123
123
|
def empty_check(node)
|
124
124
|
return unless node.else? && !node.else_branch
|
125
125
|
|
126
|
-
add_offense(node.loc.else)
|
127
|
-
autocorrect(corrector, node)
|
128
|
-
end
|
126
|
+
add_offense(node.loc.else) { |corrector| autocorrect(corrector, node) }
|
129
127
|
end
|
130
128
|
|
131
129
|
def nil_check(node)
|
132
130
|
return unless node.else_branch&.nil_type?
|
133
131
|
|
134
|
-
add_offense(node.loc.else)
|
135
|
-
autocorrect(corrector, node)
|
136
|
-
end
|
132
|
+
add_offense(node.loc.else) { |corrector| autocorrect(corrector, node) }
|
137
133
|
end
|
138
134
|
|
139
135
|
def autocorrect(corrector, node)
|
@@ -154,9 +150,7 @@ module RuboCop
|
|
154
150
|
return node if node.case_type?
|
155
151
|
return node unless node.elsif?
|
156
152
|
|
157
|
-
node.each_ancestor(:if, :case, :when).find(-> { node })
|
158
|
-
parent.loc.end
|
159
|
-
end
|
153
|
+
node.each_ancestor(:if, :case, :when).find(-> { node }) { |parent| parent.loc.end }
|
160
154
|
end
|
161
155
|
|
162
156
|
def autocorrect_forbidden?(type)
|
@@ -37,8 +37,7 @@ module RuboCop
|
|
37
37
|
def_node_matcher :str_node, '(send (const {nil? cbase} :String) :new)'
|
38
38
|
|
39
39
|
# @!method array_with_block(node)
|
40
|
-
def_node_matcher :array_with_block,
|
41
|
-
'(block (send (const {nil? cbase} :Array) :new) args _)'
|
40
|
+
def_node_matcher :array_with_block, '(block (send (const {nil? cbase} :Array) :new) args _)'
|
42
41
|
|
43
42
|
# @!method hash_with_block(node)
|
44
43
|
def_node_matcher :hash_with_block, <<~PATTERN
|
@@ -63,7 +62,7 @@ module RuboCop
|
|
63
62
|
ARR_MSG
|
64
63
|
elsif offense_hash_node?(node)
|
65
64
|
HASH_MSG
|
66
|
-
elsif str_node(node) && !
|
65
|
+
elsif str_node(node) && !frozen_strings?
|
67
66
|
format(STR_MSG, prefer: preferred_string_literal)
|
68
67
|
end
|
69
68
|
end
|
@@ -84,20 +83,17 @@ module RuboCop
|
|
84
83
|
parent = node.parent
|
85
84
|
return false unless parent && %i[send super zsuper].include?(parent.type)
|
86
85
|
|
87
|
-
node.equal?(parent.arguments.first) &&
|
88
|
-
!parentheses?(node.parent)
|
86
|
+
node.equal?(parent.arguments.first) && !parentheses?(node.parent)
|
89
87
|
end
|
90
88
|
|
91
89
|
def replacement_range(node)
|
92
|
-
if hash_node(node) &&
|
93
|
-
first_argument_unparenthesized?(node)
|
90
|
+
if hash_node(node) && first_argument_unparenthesized?(node)
|
94
91
|
# `some_method {}` is not same as `some_method Hash.new`
|
95
92
|
# because the braces are interpreted as a block. We will have
|
96
93
|
# to rewrite the arguments to wrap them in parenthesis.
|
97
94
|
args = node.parent.arguments
|
98
95
|
|
99
|
-
range_between(args[0].source_range.begin_pos - 1,
|
100
|
-
args[-1].source_range.end_pos)
|
96
|
+
range_between(args[0].source_range.begin_pos - 1, args[-1].source_range.end_pos)
|
101
97
|
else
|
102
98
|
node.source_range
|
103
99
|
end
|
@@ -129,6 +125,13 @@ module RuboCop
|
|
129
125
|
end
|
130
126
|
end
|
131
127
|
end
|
128
|
+
|
129
|
+
def frozen_strings?
|
130
|
+
return true if frozen_string_literals_enabled?
|
131
|
+
|
132
|
+
frozen_string_cop_enabled = config.for_cop('Style/FrozenStringLiteral')['Enabled']
|
133
|
+
frozen_string_cop_enabled && !frozen_string_literals_disabled?
|
134
|
+
end
|
132
135
|
end
|
133
136
|
end
|
134
137
|
end
|
@@ -45,16 +45,13 @@ module RuboCop
|
|
45
45
|
extend AutoCorrector
|
46
46
|
|
47
47
|
MSG_COMPACT = 'Put empty method definitions on a single line.'
|
48
|
-
MSG_EXPANDED = 'Put the `end` of empty method definitions on the '
|
49
|
-
'next line.'
|
48
|
+
MSG_EXPANDED = 'Put the `end` of empty method definitions on the next line.'
|
50
49
|
|
51
50
|
def on_def(node)
|
52
51
|
return if node.body || comment_lines?(node)
|
53
52
|
return if correct_style?(node)
|
54
53
|
|
55
|
-
add_offense(node)
|
56
|
-
corrector.replace(node, corrected(node))
|
57
|
-
end
|
54
|
+
add_offense(node) { |corrector| corrector.replace(node, corrected(node)) }
|
58
55
|
end
|
59
56
|
alias on_defs on_def
|
60
57
|
|
@@ -65,8 +62,7 @@ module RuboCop
|
|
65
62
|
end
|
66
63
|
|
67
64
|
def correct_style?(node)
|
68
|
-
compact_style? && compact?(node) ||
|
69
|
-
expanded_style? && expanded?(node)
|
65
|
+
compact_style? && compact?(node) || expanded_style? && expanded?(node)
|
70
66
|
end
|
71
67
|
|
72
68
|
def corrected(node)
|
@@ -15,8 +15,7 @@ module RuboCop
|
|
15
15
|
class EndBlock < Base
|
16
16
|
extend AutoCorrector
|
17
17
|
|
18
|
-
MSG = 'Avoid the use of `END` blocks. '
|
19
|
-
'Use `Kernel#at_exit` instead.'
|
18
|
+
MSG = 'Avoid the use of `END` blocks. Use `Kernel#at_exit` instead.'
|
20
19
|
|
21
20
|
def on_postexe(node)
|
22
21
|
add_offense(node.loc.keyword) do |corrector|
|
@@ -79,9 +79,7 @@ module RuboCop
|
|
79
79
|
def handle_disallow_style(node)
|
80
80
|
return unless node.endless?
|
81
81
|
|
82
|
-
add_offense(node)
|
83
|
-
correct_to_multiline(corrector, node)
|
84
|
-
end
|
82
|
+
add_offense(node) { |corrector| correct_to_multiline(corrector, node) }
|
85
83
|
end
|
86
84
|
|
87
85
|
def correct_to_multiline(corrector, node)
|
@@ -112,13 +112,11 @@ module RuboCop
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def special_file_keyword?(node)
|
115
|
-
node.str_type? &&
|
116
|
-
node.source == '__FILE__'
|
115
|
+
node.str_type? && node.source == '__FILE__'
|
117
116
|
end
|
118
117
|
|
119
118
|
def special_line_keyword?(node)
|
120
|
-
node.int_type? &&
|
121
|
-
node.source == '__LINE__'
|
119
|
+
node.int_type? && node.source == '__LINE__'
|
122
120
|
end
|
123
121
|
|
124
122
|
def file_and_line(node)
|
@@ -85,9 +85,7 @@ module RuboCop
|
|
85
85
|
elsif (default_dir = pathname_parent_expand_path(node))
|
86
86
|
return unless unrecommended_argument?(default_dir)
|
87
87
|
|
88
|
-
add_offense(node, message: PATHNAME_MSG)
|
89
|
-
autocorrect(corrector, node)
|
90
|
-
end
|
88
|
+
add_offense(node, message: PATHNAME_MSG) { |corrector| autocorrect(corrector, node) }
|
91
89
|
elsif (default_dir = pathname_new_parent_expand_path(node))
|
92
90
|
return unless unrecommended_argument?(default_dir)
|
93
91
|
|