Sha256: 11d3c7aa2bc1ebf78709fa6edc595cdf65b5f9b08cb571997c56a28e0e117528

Contents?: true

Size: 1.37 KB

Versions: 3

Compression:

Stored size: 1.37 KB

Contents

module Xcov
  class Report < Xcov::Base

    attr_accessor :coverage
    attr_accessor :targets
    attr_accessor :summary
    attr_accessor :target_templates

    def initialize (targets)
      @targets = targets
      @coverage = average_coverage(targets)
      @displayable_coverage = self.create_displayable_coverage
      @coverage_color = self.create_coverage_color
      @summary = self.create_summary
    end

    def average_coverage targets
      return 0 if targets.count == 0
      
      coverage = 0
      targets.each do |target|
        coverage = coverage + target.coverage
      end
      coverage / targets.count
    end

    def print_description
      puts "Total coverage: (#{@coverage})"
      @targets.each do |target|
        target.print_description
      end
    end

    def html_value
      @target_templates = ""
      @targets.each do |target|
        @target_templates << target.html_value
      end

      Function.template("report").result(binding)
    end

    # Class methods

    def self.map dictionary
      targets = dictionary["targets"].select { |target| !target["name"].include?(".xctest") }

      # Don't filter test targets if the flag is set
      targets = dictionary["targets"] if Xcov.config[:include_test_targets]

      # Create target objects
      targets = targets.map { |target| Target.map(target)}

      Report.new(targets)
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xcov-0.6 lib/xcov/model/report.rb
xcov-0.5 lib/xcov/model/report.rb
xcov-0.4 lib/xcov/model/report.rb