Sha256: 6d8b8d1b994beb58bb7253ab1fc272db582154e87c452a4c4d21a4b3b91aa1b6

Contents?: true

Size: 775 Bytes

Versions: 9

Compression:

Stored size: 775 Bytes

Contents

module Warder
  # responsible for run Sandi Metz rules validation
  class SandiRulesRunner < Runner
    CLI_OPTION = 'r'
    CLI_FULL_OPTION = 'sandi-rules'
    DESCRIPTION = 'Run Sandi Metz rules validation'
    COMMAND_NAME = 'sandi_meter'
    FAILURE_REGEXP = /\d\. (?<percentage>\d+)%/
    FAILURE_THRESHOLD = 100

    private

    def command_with_options
      path = @options.files.split(' ').first
      "#{COMMAND_NAME} -d -p #{path}"
    end

    def number_of_issues(line)
      match = klass::FAILURE_REGEXP.match(line)
      return 0 unless match
      percentage = match[:percentage].to_i
      klass::FAILURE_THRESHOLD > percentage ? 1 : 0
    end

    def stats_msg
      "broken #{@issues.to_i} out of 4 #{CLI_FULL_OPTION.sub('-', ' ')}\n"
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
warder-0.3.4 lib/warder/sandi_rules_runner.rb
warder-0.3.2 lib/warder/sandi_rules_runner.rb
warder-0.3.1 lib/warder/sandi_rules_runner.rb
warder-0.3.0 lib/warder/sandi_rules_runner.rb
warder-0.2.4 lib/warder/sandi_rules_runner.rb
warder-0.2.3 lib/warder/sandi_rules_runner.rb
warder-0.2.2 lib/warder/sandi_rules_runner.rb
warder-0.2.1 lib/warder/sandi_rules_runner.rb
warder-0.2.0 lib/warder/sandi_rules_runner.rb