Sha256: 071a22355ee7d48970db0bcb0716e49864eaf485f1ff91734d36154af67554b6

Contents?: true

Size: 1.1 KB

Versions: 54

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module RuboCop
  module Cop
    module Metrics
      # This cop checks that the cyclomatic complexity of methods is not higher
      # than the configured maximum. The cyclomatic complexity is the number of
      # linearly independent paths through a method. The algorithm counts
      # decision points and adds one.
      #
      # An if statement (or unless or ?:) increases the complexity by one. An
      # else branch does not, since it doesn't add a decision point. The &&
      # operator (or keyword and) can be converted to a nested if statement,
      # and ||/or is shorthand for a sequence of ifs, so they also add one.
      # Loops can be said to have an exit condition, so they add one.
      class CyclomaticComplexity < Cop
        include MethodComplexity

        MSG = 'Cyclomatic complexity for %<method>s is too high. ' \
              '[%<complexity>d/%<max>d]'
        COUNTED_NODES = %i[if while until for
                           rescue when and or].freeze

        private

        def complexity_score_for(_node)
          1
        end
      end
    end
  end
end

Version data entries

54 entries across 35 versions & 5 rubygems

Version Path
grape-extra_validators-2.0.0 vendor/bundle/ruby/2.6.0/gems/rubocop-0.79.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb
files.com-1.0.1 vendor/bundle/ruby/2.5.0/gems/rubocop-0.85.1/lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rbhint-0.85.1.rc1 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.85.1 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rbhint-0.8.5.rc1 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.85.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.84.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.83.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.82.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.81.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.80.1 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.80.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
grape-extra_validators-1.0.0 vendor/bundle/ruby/2.4.0/gems/rubocop-0.79.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb
grape-extra_validators-1.0.0 vendor/bundle/ruby/2.6.0/gems/rubocop-0.79.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.79.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
rubocop-0.78.0 lib/rubocop/cop/metrics/cyclomatic_complexity.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/rubocop-0.76.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/rubocop-0.77.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/rubocop-0.75.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb