Class: RuboCop::Cop::Style::ClassAndModuleChildren
- Extended by:
- AutoCorrector
- Includes:
- Alignment, ConfigurableEnforcedStyle, RangeHelp
- Defined in:
- lib/rubocop/cop/style/class_and_module_children.rb
Overview
Checks that namespaced classes and modules are defined with a consistent style.
With nested style, classes and modules should be defined separately (one constant on each line, without ::). With compact style, classes and modules should be defined with fully qualified names (using :: for namespaces).
NOTE: The style chosen will affect Module.nesting for the class or module. Using nested style will result in each level being added, whereas compact style will only include the fully qualified class or module name.
By default, EnforcedStyle applies to both classes and modules. If desired, separate styles can be defined for classes and modules by using EnforcedStyleForClasses and EnforcedStyleForModules respectively. If not set, or set to nil, the EnforcedStyle value will be used.
The compact style is only forced for classes/modules with one child.
Constant Summary collapse
- NESTED_MSG =
'Use nested module/class definitions instead of compact style.'- COMPACT_MSG =
'Use compact module/class definition instead of nested style.'
Constants included from RangeHelp
RangeHelp::BYTE_ORDER_MARK, RangeHelp::NOT_GIVEN
Constants included from Alignment
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
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_class(node) ⇒ Object
54 55 56 57 58 |
# File 'lib/rubocop/cop/style/class_and_module_children.rb', line 54 def on_class(node) return if node.parent_class && style != :nested check_style(node, node.body, style_for_classes) end |
#on_module(node) ⇒ Object
60 61 62 |
# File 'lib/rubocop/cop/style/class_and_module_children.rb', line 60 def on_module(node) check_style(node, node.body, style_for_modules) end |