Class: RuboCop::Cop::Style::OneClassPerFile
- Includes:
- RangeHelp
- Defined in:
- lib/rubocop/cop/style/one_class_per_file.rb
Overview
Checks that each source file defines at most one top-level class or module.
Keeping one class or module per file makes it easier to find and navigate code, and follows the convention used by most Ruby projects.
Classes and modules listed in AllowedClasses are not counted toward the limit. This is useful for small ancillary classes like custom exception classes that logically belong with the main class.
Constant Summary collapse
- MSG =
'Do not define multiple classes/modules at the top level in a single file.'
Constants included from RangeHelp
RangeHelp::BYTE_ORDER_MARK, RangeHelp::NOT_GIVEN
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
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_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
57 58 59 |
# File 'lib/rubocop/cop/style/one_class_per_file.rb', line 57 def on_class(node) check_top_level(node) end |
#on_module(node) ⇒ Object
61 62 63 |
# File 'lib/rubocop/cop/style/one_class_per_file.rb', line 61 def on_module(node) check_top_level(node) end |
#on_new_investigation ⇒ Object
53 54 55 |
# File 'lib/rubocop/cop/style/one_class_per_file.rb', line 53 def on_new_investigation @top_level_definitions = [] end |