Sha256: 22658c6fc97cd77cf4c608f8918c70f428cd22f663bccde33c427b2d9a7105c7

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

# -*- encoding: utf-8 -*-

module Coco

  # Compute results of interest from the big results information (from Coverage.result)
  class CoverageResult
    # @return [Hash] Coverage for all the sources that live in the root project folder.
    attr_reader :all_from_domain
    # @return [Hash] Coverage for sources that are not sufficiently covered.
    #   More technically, the sources that live in the root project folder and for
    #   which the coverage percentage is under the threshold. 
    attr_reader :covered_from_domain
  
    # @param [Hash] config
    # @param [Hash] raw_results Results obtained from Coverage.result
    def initialize config, raw_results
      @exclude_files = config[:excludes]
      @threshold = config[:threshold]
      raise ArgumentError if @threshold < 0
      @result = raw_results
      exclude_external_sources
      exclude_files_user_dont_want
      exclude_sources_above_threshold
    end
    
    private
    
    def exclude_external_sources
      here = Dir.pwd
      @all_from_domain = @result.select {|key, value| key.start_with? here}
    end
    
    def exclude_files_user_dont_want
      return if @exclude_files.nil?
      @exclude_files.each do |filename|
        @all_from_domain.delete(File.expand_path(filename))
      end
    end
    
    def exclude_sources_above_threshold 
      @covered_from_domain = @all_from_domain.select {|key, value| 
        CoverageStat.coverage_percent(value) < @threshold
      }
    end
    
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
coco-0.8 lib/coco/cover/coverage_result.rb
coco-0.7.1 lib/coco/cover/coverage_result.rb