Class: Simplabs::Excellent::Checks::ClassLineCountCheck

Inherits:
LineCountCheck show all
Defined in:
lib/simplabs/excellent/checks/class_line_count_check.rb

Overview

This check reports classes which have more lines than the threshold. Classes with a large number of lines are hard to read and understand and often an indicator for badly designed code as well.

Applies to

  • classes

Constant Summary collapse

DEFAULT_THRESHOLD =
300

Instance Attribute Summary

Attributes inherited from Base

#interesting_contexts, #interesting_files, #options, #warnings

Instance Method Summary collapse

Methods inherited from Base

#add_warning, #evaluate_context, #warnings_for

Constructor Details

#initialize(options = {}) ⇒ ClassLineCountCheck

:nodoc:



19
20
21
22
# File 'lib/simplabs/excellent/checks/class_line_count_check.rb', line 19

def initialize(options = {}) #:nodoc:
  options[:threshold] ||= DEFAULT_THRESHOLD
  super([Parsing::ClassContext], options)
end

Instance Method Details

#evaluate(context) ⇒ Object



24
25
26
27
# File 'lib/simplabs/excellent/checks/class_line_count_check.rb', line 24

def evaluate(context)
  line_count = context.line_count == 1 ? 1 : context.line_count + 1
  add_warning(*warning_args(context, line_count)) unless line_count <= @threshold
end