Sha256: 6a0257e6c06db2cf72c1af58c784a8e04c0949e8be87f7fab7ad0ea84c931d80

Contents?: true

Size: 931 Bytes

Versions: 3

Compression:

Stored size: 931 Bytes

Contents

module Teaspoon
  class Coverage
    include Teaspoon::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 Teaspoon.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

3 entries across 3 versions & 1 rubygems

Version Path
teaspoon-0.7.6 lib/teaspoon/coverage.rb
teaspoon-0.7.5 lib/teaspoon/coverage.rb
teaspoon-0.7.4 lib/teaspoon/coverage.rb