Sha256: b32e875cb182227ae15a992bb3511b26d0b38688effc10662450c31175976723

Contents?: true

Size: 764 Bytes

Versions: 2

Compression:

Stored size: 764 Bytes

Contents

module Warder
  # responsible for run code complexity validation
  class CodeComplexityRunner < Runner
    CLI_OPTION = 'c'
    CLI_FULL_OPTION = 'code-complexity'
    DESCRIPTION = 'Run code complexity validation'
    COMMAND_NAME = 'flog'
    FAILURE_THRESHOLD = SCORE
    FAILURE_REGEXP = /^\s+(?<issues>\d+.\d+)\:\s.*$/
    TOTAL_REGEXP = /^\s+\d+.\d+\:.*(total|average)$/

    private

    def command_with_options
      "#{COMMAND_NAME} -a -c -g -m #{@options.files}"
    end

    def number_of_issues(line)
      return 0 if total?(line)
      super
    end

    def failed?(line)
      number_of_issues(line) != 0
    end

    def printable?(line)
      super && failed?(line)
    end

    def total?(line)
      TOTAL_REGEXP.match(line)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
warder-0.2.1 lib/warder/code_complexity_runner.rb
warder-0.2.0 lib/warder/code_complexity_runner.rb