Sha256: 74934a323f36e7e1977599d7aa3f883478a6ae59650e38145974397077f5948e

Contents?: true

Size: 654 Bytes

Versions: 3

Compression:

Stored size: 654 Bytes

Contents

require 'roodi/checks/check'

module Roodi

  module Checks

    class CyclomaticComplexityCheck < Check

      COMPLEXITY_NODE_TYPES = [:if, :while, :until, :for, :rescue, :case, :when, :and, :or]

      def initialize(complexity)
        super()
        @complexity = complexity
      end

      protected

        def count_complexity(node)
          count_branches(node) + 1
        end

      private

        def count_branches(node)
          count = 0
          count = count + 1 if COMPLEXITY_NODE_TYPES.include? node.node_type
          node.children.each {|node| count += count_branches(node)}
          count
        end

    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
marcoow-roodi-1.3.2 lib/roodi/checks/cyclomatic_complexity_check.rb
marcoow-roodi-1.3.4 lib/roodi/checks/cyclomatic_complexity_check.rb
marcoow-roodi-1.3.5 lib/roodi/checks/cyclomatic_complexity_check.rb