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
cop_dir_for, #exclude_limit, read_limits
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
77 78 79 |
# File 'lib/rubocop/cop/style/one_class_per_file.rb', line 77 def on_class(node) check_top_level(node) end |
#on_module(node) ⇒ Object
81 82 83 |
# File 'lib/rubocop/cop/style/one_class_per_file.rb', line 81 def on_module(node) check_top_level(node) end |
#on_new_investigation ⇒ Object
73 74 75 |
# File 'lib/rubocop/cop/style/one_class_per_file.rb', line 73 def on_new_investigation @top_level_definitions = [] end |