Sha256: 5e195d9075c32ea03c3ff297af2639a181c9545b147b10bf71e7c1371bb82744

Contents?: true

Size: 925 Bytes

Versions: 1

Compression:

Stored size: 925 Bytes

Contents

module Teabag
  class Coverage
    include Teabag::Utility

    def initialize(data)
      @data = data
    end

    def reports
      Dir.mktmpdir do |path|
        input = File.join(path, 'coverage.json')
        File.open(input, 'w') { |file| file.write(@data.to_json) }
        results = []
        for format in Teabag.configuration.coverage_reports
          result = generate_report(input, format)
          results << result if ["text", "text-summary"].include?(format.to_s)
        end
        "\n#{results.join("\n\n")}\n"
      end
    end

    private

    def generate_report(input, format)
      result = %x{#{executable} report #{format} #{input.shellescape}}
      raise "Could not generate coverage report for #{format}" unless $?.exitstatus == 0
      result.gsub("Done", "").gsub("Using reporter [#{format}]", "").strip
    end

    def executable
      @executable ||= which("istanbul")
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
teabag-0.7.3 lib/teabag/coverage.rb