Sha256: 2c0313cae0e4c2ba4ec1fadf8268e7ad19f9cbaeacc030a484f2a814b282c6e5

Contents?: true

Size: 791 Bytes

Versions: 4

Compression:

Stored size: 791 Bytes

Contents

require 'roodi/checks/npath_complexity_check'

module Roodi
  module Checks
    # Checks Npath complexity of a method against a specified limit. 
    class NpathComplexityMethodCheck < NpathComplexityCheck
      DEFAULT_COMPLEXITY = 8
      
      def initialize(options = {})
        complexity = options['complexity'] || DEFAULT_COMPLEXITY
        super(complexity)
      end
      
      def interesting_nodes
        [:defn] + COMPLEXITY_NODE_TYPES
      end

      def evaluate_start_defn(node)
        @method_name = @node[1]
        push_value
      end

      def evaluate_end_defn(node)
        add_error "Method name \"#{@method_name}\" n-path complexity is #{@current_value}.  It should be #{@complexity} or less." unless @current_value <= @complexity
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
roodi1.9-2.0.1 lib/roodi/checks/npath_complexity_method_check.rb
roodi-2.1.0 lib/roodi/checks/npath_complexity_method_check.rb
roodi-2.0.1 lib/roodi/checks/npath_complexity_method_check.rb
roodi-2.0.0 lib/roodi/checks/npath_complexity_method_check.rb