Class: RuboCop::Cop::Metrics::ClassLength
- Includes:
- CodeLength
- Defined in:
- lib/rubocop/cop/metrics/class_length.rb
Overview
Checks if the length of a class exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable.
You can set constructs you want to fold with CountAsOne.
Available are: ‘array’, ‘hash’, ‘heredoc’, and ‘method_call’. Each construct will be counted as one line regardless of its actual size.
NOTE: This cop also applies for Struct definitions.
Constant Summary
Constants included from CodeLength
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods included from ExcludeLimit
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?, #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 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_casgn(node) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/rubocop/cop/metrics/class_length.rb', line 53 def on_casgn(node) block_node = node.expression || find_expression_within_parent(node.parent) return unless block_node.respond_to?(:class_definition?) && block_node.class_definition? check_code_length(block_node) end |
#on_class(node) ⇒ Object
43 44 45 |
# File 'lib/rubocop/cop/metrics/class_length.rb', line 43 def on_class(node) check_code_length(node) end |
#on_sclass(node) ⇒ Object
47 48 49 50 51 |
# File 'lib/rubocop/cop/metrics/class_length.rb', line 47 def on_sclass(node) return if node.each_ancestor(:class).any? on_class(node) end |