Sha256: 61d27b8a9a61c44b78597a9bf10c1e90ad7b0c23873dfc7f6c68bb6b664876ec
Contents?: true
Size: 1.23 KB
Versions: 4
Compression:
Stored size: 1.23 KB
Contents
require 'simplabs/excellent/checks/cyclomatic_complexity_check' module Simplabs module Excellent module Checks # This check reports methods with a cyclomatic complexity metric score that is higher than the threshold. The cyclomatic complexity metric counts # the number of linearly independent paths through the code. This is basically the number of the following statements + 1: # # * +if+ # * +else+ # * unless # * +while+ # * +until+ # * +for+ # * +rescue+ # * +case+ # * +when+ # * +and+ # * +or+ # # ==== Applies to # # * methods class CyclomaticComplexityMethodCheck < CyclomaticComplexityCheck DEFAULT_THRESHOLD = 8 def initialize(options = {}) #:nodoc: threshold = options[:threshold] || DEFAULT_THRESHOLD super([Parsing::MethodContext, Parsing::SingletonMethodContext], threshold) end def evaluate(context) #:nodoc: unless context.cc_score <= @threshold add_warning(context, '{{method}} has cyclomatic complexity of {{score}}.', { :method => context.full_name, :score => context.cc_score }) end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems