rubocop 1.12.0 → 1.16.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 +5 -2
- data/config/default.yml +77 -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 +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 +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 +35 -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 +16 -10
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +4 -0
- 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 +4 -5
- 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 +20 -4
- 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 -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/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 +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 +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 +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 +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 -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 +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 +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_in_pattern_then.rb +62 -0
- 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_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 +105 -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 +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 +21 -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 +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 +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 +10 -1
- 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 +23 -14
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/formatter/tap_formatter.rb +4 -2
- 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
@@ -38,9 +38,7 @@ module RuboCop
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def after_leaving_scope(scope, _variable_table)
|
41
|
-
scope.variables.each_value
|
42
|
-
check_for_unused_assignments(variable)
|
43
|
-
end
|
41
|
+
scope.variables.each_value { |variable| check_for_unused_assignments(variable) }
|
44
42
|
end
|
45
43
|
|
46
44
|
def check_for_unused_assignments(variable)
|
@@ -64,8 +62,7 @@ module RuboCop
|
|
64
62
|
def message_for_useless_assignment(assignment)
|
65
63
|
variable = assignment.variable
|
66
64
|
|
67
|
-
format(MSG, variable: variable.name) +
|
68
|
-
message_specification(assignment, variable).to_s
|
65
|
+
format(MSG, variable: variable.name) + message_specification(assignment, variable).to_s
|
69
66
|
end
|
70
67
|
|
71
68
|
def message_specification(assignment, variable)
|
@@ -85,8 +82,7 @@ module RuboCop
|
|
85
82
|
|
86
83
|
def operator_assignment_message(scope, assignment)
|
87
84
|
return_value_node = return_value_node_of_scope(scope)
|
88
|
-
return unless assignment.meta_assignment_node
|
89
|
-
.equal?(return_value_node)
|
85
|
+
return unless assignment.meta_assignment_node.equal?(return_value_node)
|
90
86
|
|
91
87
|
" Use `#{assignment.operator.sub(/=$/, '')}` " \
|
92
88
|
"instead of `#{assignment.operator}`."
|
@@ -94,8 +90,7 @@ module RuboCop
|
|
94
90
|
|
95
91
|
def similar_name_message(variable)
|
96
92
|
variable_like_names = collect_variable_like_names(variable.scope)
|
97
|
-
similar_name = NameSimilarity.find_similar_name(variable.name,
|
98
|
-
variable_like_names)
|
93
|
+
similar_name = NameSimilarity.find_similar_name(variable.name, variable_like_names)
|
99
94
|
" Did you mean `#{similar_name}`?" if similar_name
|
100
95
|
end
|
101
96
|
|
@@ -46,8 +46,7 @@ module RuboCop
|
|
46
46
|
LIT_MSG = 'Literal `%<lit>s` used in void context.'
|
47
47
|
SELF_MSG = '`self` used in void context.'
|
48
48
|
DEFINED_MSG = '`%<defined>s` used in void context.'
|
49
|
-
NONMUTATING_MSG = 'Method `#%<method>s` used in void context. '
|
50
|
-
'Did you mean `#%<method>s!`?'
|
49
|
+
NONMUTATING_MSG = 'Method `#%<method>s` used in void context. Did you mean `#%<method>s!`?'
|
51
50
|
|
52
51
|
BINARY_OPERATORS = %i[* / % + - == === != < > <= >= <=>].freeze
|
53
52
|
UNARY_OPERATORS = %i[+@ -@ ~ !].freeze
|
@@ -78,9 +77,7 @@ module RuboCop
|
|
78
77
|
def check_begin(node)
|
79
78
|
expressions = *node
|
80
79
|
expressions.pop unless in_void_context?(node)
|
81
|
-
expressions.each
|
82
|
-
check_expression(expr)
|
83
|
-
end
|
80
|
+
expressions.each { |expr| check_expression(expr) }
|
84
81
|
end
|
85
82
|
|
86
83
|
def check_expression(expr)
|
@@ -107,7 +104,7 @@ module RuboCop
|
|
107
104
|
end
|
108
105
|
|
109
106
|
def check_literal(node)
|
110
|
-
return if !node.literal? || node.xstr_type?
|
107
|
+
return if !node.literal? || node.xstr_type? || node.range_type?
|
111
108
|
|
112
109
|
add_offense(node, message: format(LIT_MSG, lit: node.source))
|
113
110
|
end
|
@@ -125,13 +122,9 @@ module RuboCop
|
|
125
122
|
end
|
126
123
|
|
127
124
|
def check_nonmutating(node)
|
128
|
-
unless node.send_type? &&
|
129
|
-
NONMUTATING_METHODS.include?(node.method_name)
|
130
|
-
return
|
131
|
-
end
|
125
|
+
return unless node.send_type? && NONMUTATING_METHODS.include?(node.method_name)
|
132
126
|
|
133
|
-
add_offense(node, message: format(NONMUTATING_MSG,
|
134
|
-
method: node.method_name))
|
127
|
+
add_offense(node, message: format(NONMUTATING_MSG, method: node.method_name))
|
135
128
|
end
|
136
129
|
|
137
130
|
def in_void_context?(node)
|
@@ -96,9 +96,7 @@ module RuboCop
|
|
96
96
|
end
|
97
97
|
|
98
98
|
def display_style_guide?
|
99
|
-
(options[:display_style_guide] ||
|
100
|
-
config.for_all_cops['DisplayStyleGuide']) &&
|
101
|
-
!urls.empty?
|
99
|
+
(options[:display_style_guide] || config.for_all_cops['DisplayStyleGuide']) && !urls.empty?
|
102
100
|
end
|
103
101
|
|
104
102
|
def reference_urls
|
@@ -12,10 +12,7 @@ module RuboCop
|
|
12
12
|
#
|
13
13
|
# The maximum level of nesting allowed is configurable.
|
14
14
|
class BlockNesting < Base
|
15
|
-
NESTING_BLOCKS = %i[
|
16
|
-
case if while while_post
|
17
|
-
until until_post for resbody
|
18
|
-
].freeze
|
15
|
+
NESTING_BLOCKS = %i[case if while while_post until until_post for resbody].freeze
|
19
16
|
|
20
17
|
exclude_limit 'Max'
|
21
18
|
|
@@ -34,9 +31,7 @@ module RuboCop
|
|
34
31
|
if current_level > max
|
35
32
|
self.max = current_level
|
36
33
|
unless part_of_ignored_node?(node)
|
37
|
-
add_offense(node, message: message(max))
|
38
|
-
ignore_node(node)
|
39
|
-
end
|
34
|
+
add_offense(node, message: message(max)) { ignore_node(node) }
|
40
35
|
end
|
41
36
|
end
|
42
37
|
end
|
@@ -57,9 +57,7 @@ module RuboCop
|
|
57
57
|
private
|
58
58
|
|
59
59
|
def message(length, max_length)
|
60
|
-
format('Class has too many lines. [%<length>d/%<max>d]',
|
61
|
-
length: length,
|
62
|
-
max: max_length)
|
60
|
+
format('Class has too many lines. [%<length>d/%<max>d]', length: length, max: max_length)
|
63
61
|
end
|
64
62
|
end
|
65
63
|
end
|
@@ -33,8 +33,7 @@ module RuboCop
|
|
33
33
|
include MethodComplexity
|
34
34
|
include Utils::IteratingBlock
|
35
35
|
|
36
|
-
MSG = 'Cyclomatic complexity for %<method>s is too high. '
|
37
|
-
'[%<complexity>d/%<max>d]'
|
36
|
+
MSG = 'Cyclomatic complexity for %<method>s is too high. [%<complexity>d/%<max>d]'
|
38
37
|
COUNTED_NODES = %i[if while until for csend block block_pass
|
39
38
|
rescue when and or or_asgn and_asgn].freeze
|
40
39
|
|
@@ -37,9 +37,7 @@ module RuboCop
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def on_casgn(node)
|
40
|
-
module_definition?(node)
|
41
|
-
check_code_length(node)
|
42
|
-
end
|
40
|
+
module_definition?(node) { check_code_length(node) }
|
43
41
|
end
|
44
42
|
|
45
43
|
private
|
@@ -50,9 +48,7 @@ module RuboCop
|
|
50
48
|
PATTERN
|
51
49
|
|
52
50
|
def message(length, max_length)
|
53
|
-
format('Module has too many lines. [%<length>d/%<max>d]',
|
54
|
-
length: length,
|
55
|
-
max: max_length)
|
51
|
+
format('Module has too many lines. [%<length>d/%<max>d]', length: length, max: max_length)
|
56
52
|
end
|
57
53
|
end
|
58
54
|
end
|
@@ -54,8 +54,7 @@ module RuboCop
|
|
54
54
|
exclude_limit 'Max'
|
55
55
|
exclude_limit 'MaxOptionalParameters'
|
56
56
|
|
57
|
-
MSG = 'Avoid parameter lists longer than %<max>d parameters. '
|
58
|
-
'[%<count>d/%<max>d]'
|
57
|
+
MSG = 'Avoid parameter lists longer than %<max>d parameters. [%<count>d/%<max>d]'
|
59
58
|
OPTIONAL_PARAMETERS_MSG = 'Method has too many optional parameters. [%<count>d/%<max>d]'
|
60
59
|
|
61
60
|
NAMED_KEYWORD_TYPES = %i[kwoptarg kwarg].freeze
|
@@ -71,9 +70,7 @@ module RuboCop
|
|
71
70
|
count: optargs.count
|
72
71
|
)
|
73
72
|
|
74
|
-
add_offense(node, message: message)
|
75
|
-
self.max_optional_parameters = optargs.count
|
76
|
-
end
|
73
|
+
add_offense(node, message: message) { self.max_optional_parameters = optargs.count }
|
77
74
|
end
|
78
75
|
alias on_defs on_def
|
79
76
|
|
@@ -27,8 +27,7 @@ module RuboCop
|
|
27
27
|
# end # ===
|
28
28
|
# end # 7 complexity points
|
29
29
|
class PerceivedComplexity < CyclomaticComplexity
|
30
|
-
MSG = 'Perceived complexity for %<method>s is too high. '
|
31
|
-
'[%<complexity>d/%<max>d]'
|
30
|
+
MSG = 'Perceived complexity for %<method>s is too high. [%<complexity>d/%<max>d]'
|
32
31
|
|
33
32
|
COUNTED_NODES = (CyclomaticComplexity::COUNTED_NODES - [:when] + [:case]).freeze
|
34
33
|
|
@@ -43,9 +43,7 @@ module RuboCop
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def calculate
|
46
|
-
visit_depth_last(@node)
|
47
|
-
calculate_node(child)
|
48
|
-
end
|
46
|
+
visit_depth_last(@node) { |child| calculate_node(child) }
|
49
47
|
|
50
48
|
[
|
51
49
|
Math.sqrt(@assignment**2 + @branch**2 + @condition**2).round(2),
|
@@ -68,9 +66,7 @@ module RuboCop
|
|
68
66
|
end
|
69
67
|
|
70
68
|
def else_branch?(node)
|
71
|
-
%i[case if].include?(node.type) &&
|
72
|
-
node.else? &&
|
73
|
-
node.loc.else.is?('else')
|
69
|
+
%i[case if].include?(node.type) && node.else? && node.loc.else.is?('else')
|
74
70
|
end
|
75
71
|
|
76
72
|
private
|
@@ -125,7 +121,8 @@ module RuboCop
|
|
125
121
|
end
|
126
122
|
|
127
123
|
def capturing_variable?(name)
|
128
|
-
|
124
|
+
# TODO: Remove `Symbol#to_s` after supporting only Ruby >= 2.7.
|
125
|
+
name && !name.to_s.start_with?('_')
|
129
126
|
end
|
130
127
|
|
131
128
|
def branch?(node)
|
@@ -32,10 +32,7 @@ module RuboCop
|
|
32
32
|
return unless discount_repeated_attributes
|
33
33
|
|
34
34
|
self_attributes = {} # Share hash for `(send nil? :foo)` and `(send (self) :foo)`
|
35
|
-
@known_attributes = {
|
36
|
-
s(:self) => self_attributes,
|
37
|
-
nil => self_attributes
|
38
|
-
}
|
35
|
+
@known_attributes = { s(:self) => self_attributes, nil => self_attributes }
|
39
36
|
# example after running `obj = foo.bar; obj.baz.qux`
|
40
37
|
# { nil => {foo: {bar: {}}},
|
41
38
|
# s(self) => same hash ^,
|
@@ -114,9 +111,7 @@ module RuboCop
|
|
114
111
|
return yield nil
|
115
112
|
end
|
116
113
|
|
117
|
-
calls.fetch(value)
|
118
|
-
yield [calls, value]
|
119
|
-
end
|
114
|
+
calls.fetch(value) { yield [calls, value] }
|
120
115
|
end
|
121
116
|
|
122
117
|
VAR_SETTER_TO_GETTER = {
|
@@ -11,8 +11,7 @@ module RuboCop
|
|
11
11
|
|
12
12
|
MSG = 'Department name is missing.'
|
13
13
|
|
14
|
-
DISABLE_COMMENT_FORMAT =
|
15
|
-
/\A(# *rubocop *: *((dis|en)able|todo) +)(.*)/.freeze
|
14
|
+
DISABLE_COMMENT_FORMAT = /\A(# *rubocop *: *((dis|en)able|todo) +)(.*)/.freeze
|
16
15
|
|
17
16
|
# The token that makes up a disable comment.
|
18
17
|
# The allowed specification for comments after `# rubocop: disable` is
|
@@ -62,8 +61,7 @@ module RuboCop
|
|
62
61
|
end
|
63
62
|
|
64
63
|
def valid_content_token?(content_token)
|
65
|
-
/\W+/.match?(content_token) ||
|
66
|
-
DISABLING_COPS_CONTENT_TOKEN.match?(content_token)
|
64
|
+
/\W+/.match?(content_token) || DISABLING_COPS_CONTENT_TOKEN.match?(content_token)
|
67
65
|
end
|
68
66
|
|
69
67
|
def contain_unexpected_character_for_department_name?(name)
|
@@ -73,9 +71,7 @@ module RuboCop
|
|
73
71
|
def qualified_legacy_cop_name(cop_name)
|
74
72
|
legacy_cop_names = RuboCop::ConfigObsoletion.legacy_cop_names
|
75
73
|
|
76
|
-
legacy_cop_names.detect
|
77
|
-
legacy_cop_name.split('/')[1] == cop_name
|
78
|
-
end
|
74
|
+
legacy_cop_names.detect { |legacy_cop_name| legacy_cop_name.split('/')[1] == cop_name }
|
79
75
|
end
|
80
76
|
end
|
81
77
|
end
|
@@ -12,8 +12,7 @@ module RuboCop
|
|
12
12
|
attr_reader :column_delta
|
13
13
|
|
14
14
|
def configured_indentation_width
|
15
|
-
cop_config['IndentationWidth'] ||
|
16
|
-
config.for_cop('Layout/IndentationWidth')['Width']
|
15
|
+
cop_config['IndentationWidth'] || config.for_cop('Layout/IndentationWidth')['Width']
|
17
16
|
end
|
18
17
|
|
19
18
|
def indentation(node)
|
@@ -46,8 +45,7 @@ module RuboCop
|
|
46
45
|
def each_bad_alignment(items, base_column)
|
47
46
|
prev_line = -1
|
48
47
|
items.each do |current|
|
49
|
-
if current.loc.line > prev_line &&
|
50
|
-
begins_its_line?(current.source_range)
|
48
|
+
if current.loc.line > prev_line && begins_its_line?(current.source_range)
|
51
49
|
@column_delta = base_column - display_column(current.source_range)
|
52
50
|
|
53
51
|
yield current if @column_delta.nonzero?
|
@@ -70,20 +70,36 @@ module RuboCop
|
|
70
70
|
def extract_first_element_over_column_limit(node, elements, max)
|
71
71
|
line = node.first_line
|
72
72
|
|
73
|
-
# If
|
74
|
-
#
|
75
|
-
elements.
|
73
|
+
# If a `send` node is not parenthesized, don't move the first element, because it
|
74
|
+
# can result in changed behavior or a syntax error.
|
75
|
+
elements = elements.drop(1) if node.send_type? && !node.parenthesized?
|
76
76
|
|
77
77
|
i = 0
|
78
78
|
i += 1 while within_column_limit?(elements[i], max, line)
|
79
|
+
i = shift_elements_for_heredoc_arg(node, elements, i)
|
80
|
+
|
81
|
+
return if i.nil?
|
79
82
|
return elements.first if i.zero?
|
80
83
|
|
81
84
|
elements[i - 1]
|
82
85
|
end
|
83
86
|
|
87
|
+
# @api private
|
88
|
+
# If a send node contains a heredoc argument, splitting cannot happen
|
89
|
+
# after the heredoc or else it will cause a syntax error.
|
90
|
+
def shift_elements_for_heredoc_arg(node, elements, index)
|
91
|
+
return index unless node.send_type?
|
92
|
+
|
93
|
+
heredoc_index = elements.index { |arg| (arg.str_type? || arg.dstr_type?) && arg.heredoc? }
|
94
|
+
return index unless heredoc_index
|
95
|
+
return nil if heredoc_index.zero?
|
96
|
+
|
97
|
+
heredoc_index >= index ? index : heredoc_index + 1
|
98
|
+
end
|
99
|
+
|
84
100
|
# @api private
|
85
101
|
def within_column_limit?(element, max, line)
|
86
|
-
element && element.loc.column
|
102
|
+
element && element.loc.column <= max && element.loc.line == line
|
87
103
|
end
|
88
104
|
|
89
105
|
# @api private
|
@@ -38,9 +38,7 @@ module RuboCop
|
|
38
38
|
|
39
39
|
location = node.casgn_type? ? node.loc.name : node.loc.expression
|
40
40
|
|
41
|
-
add_offense(location, message: message(length, max_length))
|
42
|
-
self.max = length
|
43
|
-
end
|
41
|
+
add_offense(location, message: message(length, max_length)) { self.max = length }
|
44
42
|
end
|
45
43
|
|
46
44
|
# Returns true for lines that shall not be included in the count.
|
@@ -75,9 +75,9 @@ module RuboCop
|
|
75
75
|
|
76
76
|
def alternative_style
|
77
77
|
if supported_styles.size != 2
|
78
|
-
raise 'alternative_style can only be used when there are exactly '
|
79
|
-
'2 SupportedStyles'
|
78
|
+
raise 'alternative_style can only be used when there are exactly 2 SupportedStyles'
|
80
79
|
end
|
80
|
+
|
81
81
|
alternative_styles.first
|
82
82
|
end
|
83
83
|
|
@@ -10,9 +10,7 @@ module RuboCop
|
|
10
10
|
if valid_name?(node, name)
|
11
11
|
correct_style_detected
|
12
12
|
else
|
13
|
-
add_offense(name_range, message: message(style))
|
14
|
-
report_opposing_styles(node, name)
|
15
|
-
end
|
13
|
+
add_offense(name_range, message: message(style)) { report_opposing_styles(node, name) }
|
16
14
|
end
|
17
15
|
end
|
18
16
|
|
@@ -23,8 +21,7 @@ module RuboCop
|
|
23
21
|
end
|
24
22
|
|
25
23
|
def valid_name?(node, name, given_style = style)
|
26
|
-
name.match?(self.class::FORMATS.fetch(given_style)) ||
|
27
|
-
class_emitter_method?(node, name)
|
24
|
+
name.match?(self.class::FORMATS.fetch(given_style)) || class_emitter_method?(node, name)
|
28
25
|
end
|
29
26
|
|
30
27
|
# A class emitter method is a singleton method in a class/module, where
|
@@ -36,9 +33,7 @@ module RuboCop
|
|
36
33
|
# `def self.extended`, etc.
|
37
34
|
node = node.parent while node.parent.defs_type?
|
38
35
|
|
39
|
-
node.parent.each_child_node(:class).any?
|
40
|
-
c.loc.name.is?(name.to_s)
|
41
|
-
end
|
36
|
+
node.parent.each_child_node(:class).any? { |c| c.loc.name.is?(name.to_s) }
|
42
37
|
end
|
43
38
|
end
|
44
39
|
end
|
@@ -11,14 +11,11 @@ module RuboCop
|
|
11
11
|
private
|
12
12
|
|
13
13
|
def non_public?(node)
|
14
|
-
non_public_modifier?(node.parent) ||
|
15
|
-
preceding_non_public_modifier?(node)
|
14
|
+
non_public_modifier?(node.parent) || preceding_non_public_modifier?(node)
|
16
15
|
end
|
17
16
|
|
18
17
|
def preceding_non_public_modifier?(node)
|
19
|
-
stripped_source_upto(node.first_line).any?
|
20
|
-
NON_PUBLIC_MODIFIERS.include?(line)
|
21
|
-
end
|
18
|
+
stripped_source_upto(node.first_line).any? { |line| NON_PUBLIC_MODIFIERS.include?(line) }
|
22
19
|
end
|
23
20
|
|
24
21
|
def stripped_source_upto(index)
|
@@ -24,8 +24,7 @@ module RuboCop
|
|
24
24
|
# The args node1 & node2 may represent a RuboCop::AST::Node
|
25
25
|
# or a Parser::Source::Comment. Both respond to #loc.
|
26
26
|
def preceding_comment?(node1, node2)
|
27
|
-
node1 && node2 && precede?(node2, node1) &&
|
28
|
-
comment_line?(node2.loc.expression.source)
|
27
|
+
node1 && node2 && precede?(node2, node1) && comment_line?(node2.loc.expression.source)
|
29
28
|
end
|
30
29
|
|
31
30
|
# The args node1 & node2 may represent a RuboCop::AST::Node
|
@@ -35,9 +34,7 @@ module RuboCop
|
|
35
34
|
end
|
36
35
|
|
37
36
|
def preceding_lines(node)
|
38
|
-
processed_source.ast_with_comments[node].select
|
39
|
-
line.loc.line < node.loc.line
|
40
|
-
end
|
37
|
+
processed_source.ast_with_comments[node].select { |line| line.loc.line < node.loc.line }
|
41
38
|
end
|
42
39
|
|
43
40
|
def interpreter_directive_comment?(comment)
|