Class: RuboCop::Cop::Style::EndlessMethod
- Extended by:
- AutoCorrector, TargetRubyVersion
- Includes:
- ConfigurableEnforcedStyle, EndlessMethodRewriter
- Defined in:
- lib/rubocop/cop/style/endless_method.rb
Overview
Checks for endless methods.
It can enforce endless method definitions whenever possible or with single line methods. It can also disallow multiline endless method definitions or all endless definitions.
‘require_single_line` style enforces endless method definitions for single line methods. `require_always` style enforces endless method definitions for single statement methods.
Other method definition types are not considered by this cop.
The supported styles are:
-
allow_single_line (default) - only single line endless method definitions are allowed.
-
allow_always - all endless method definitions are allowed.
-
disallow - all endless method definitions are disallowed.
-
require_single_line - endless method definitions are required for single line methods.
-
require_always - all endless method definitions are required.
NOTE: Incorrect endless method definitions will always be corrected to a multi-line definition.
Constant Summary collapse
- CORRECTION_STYLES =
%w[multiline single_line].freeze
- MSG =
'Avoid endless method definitions.'
- MSG_MULTI_LINE =
'Avoid endless method definitions with multiple lines.'
- MSG_REQUIRE_SINGLE =
'Use endless method definitions for single line methods.'
- MSG_REQUIRE_ALWAYS =
'Use endless method definitions.'
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods included from TargetRubyVersion
maximum_target_ruby_version, minimum_target_ruby_version, required_maximum_ruby_version, required_minimum_ruby_version, support_target_ruby_version?
Methods included from AutoCorrector
Methods included from ConfigurableEnforcedStyle
#alternative_style, #alternative_styles, #ambiguous_style_detected, #correct_style_detected, #detected_style, #detected_style=, #no_acceptable_style!, #no_acceptable_style?, #opposite_style_detected, #style, #style_configured?, #style_detected, #style_parameter_name, #supported_styles, #unexpected_style_detected
Methods inherited from Base
#active_support_extensions_enabled?, #add_global_offense, #add_offense, #always_autocorrect?, autocorrect_incompatible_with, badge, #begin_investigation, #callbacks_needed, callbacks_needed, #config_to_allow_offenses, #config_to_allow_offenses=, #contextual_autocorrect?, #cop_config, #cop_name, cop_name, department, documentation_url, exclude_from_registry, #excluded_file?, #external_dependency_checksum, inherited, #initialize, #inspect, joining_forces, lint?, match?, #message, #offenses, #on_investigation_end, #on_new_investigation, #on_other_file, #parse, #parser_engine, #ready, #relevant_file?, requires_gem, #string_literals_frozen_by_default?, support_autocorrect?, support_multiple_source?, #target_gem_version, #target_rails_version, #target_ruby_version
Methods included from ExcludeLimit
Methods included from AutocorrectLogic
#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #autocorrect_with_disable_uncorrectable?, #correctable?, #disable_uncorrectable?, #safe_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
Constructor Details
This class inherits a constructor from RuboCop::Cop::Base
Instance Method Details
#on_def(node) ⇒ Object
146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/rubocop/cop/style/endless_method.rb', line 146 def on_def(node) return if node.assignment_method? case style when :allow_single_line, :allow_always handle_allow_style(node) when :disallow handle_disallow_style(node) when :require_single_line handle_require_single_line_style(node) when :require_always handle_require_always_style(node) end end |