Class: SimpleCov::FileList
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
          Forwardable
         | |
| Instance Chain: 
          self,
          Enumerable
         | |
| Inherits: | Object | 
| Defined in: | lib/simplecov/file_list.rb | 
Overview
An array of ::SimpleCov SourceFile instances with additional collection helper methods for calculating coverage across them etc.
Class Method Summary
- .new(files) ⇒ FileList constructor
Instance Method Summary
- #branch_covered_percent
- #coverage_statistics
- #coverage_statistics_by_file
- 
    
      #covered_branches  
    
    Return total count of covered branches. 
- 
    
      #covered_lines  
    
    Returns the count of lines that have coverage. 
- 
    
      #covered_percent  ⇒ Float 
    
    Computes the coverage based upon lines covered and lines missed. 
- 
    
      #covered_percentages  
    
    Computes the coverage based upon lines covered and lines missed for each file Returns an array with all coverage percentages. 
- 
    
      #covered_strength  ⇒ Float 
    
    Computes the strength (hits / line) based upon lines covered and lines missed. 
- 
    
      #least_covered_file  
    
    Finds the least covered file and returns that file’s name. 
- 
    
      #lines_of_code  
    
    Returns the overall amount of relevant lines of code across all files in this list. 
- 
    
      #missed_branches  
    
    Return total count of covered branches. 
- 
    
      #missed_lines  
    
    Returns the count of lines that have been missed. 
- 
    
      #never_lines  
    
    Returns the count of lines that are not relevant for coverage. 
- 
    
      #skipped_lines  
    
    Returns the count of skipped lines. 
- 
    
      #total_branches  
    
    Return total count of branches in all files. 
- #compute_coverage_statistics private
- #compute_coverage_statistics_by_file private
Constructor Details
    .new(files)  ⇒ FileList 
  
# File 'lib/simplecov/file_list.rb', line 22
def initialize(files) @files = files end
Instance Method Details
#branch_covered_percent
[ GitHub ]# File 'lib/simplecov/file_list.rb', line 101
def branch_covered_percent coverage_statistics[:branch]&.percent end
#compute_coverage_statistics (private)
[ GitHub ]# File 'lib/simplecov/file_list.rb', line 114
def compute_coverage_statistics coverage_statistics = {line: CoverageStatistics.from(coverage_statistics_by_file[:line])} coverage_statistics[:branch] = CoverageStatistics.from(coverage_statistics_by_file[:branch]) if SimpleCov.branch_coverage? coverage_statistics end
#compute_coverage_statistics_by_file (private)
[ GitHub ]# File 'lib/simplecov/file_list.rb', line 107
def compute_coverage_statistics_by_file @files.each_with_object(line: [], branch: []) do |file, together| together[:line] << file.coverage_statistics.fetch(:line) together[:branch] << file.coverage_statistics.fetch(:branch) if SimpleCov.branch_coverage? end end
#coverage_statistics
[ GitHub ]# File 'lib/simplecov/file_list.rb', line 26
def coverage_statistics @coverage_statistics ||= compute_coverage_statistics end
#coverage_statistics_by_file
[ GitHub ]# File 'lib/simplecov/file_list.rb', line 30
def coverage_statistics_by_file @coverage_statistics_by_file ||= compute_coverage_statistics_by_file end
#covered_branches
Return total count of covered branches
# File 'lib/simplecov/file_list.rb', line 92
def covered_branches coverage_statistics[:branch]&.covered end
#covered_lines
Returns the count of lines that have coverage
# File 'lib/simplecov/file_list.rb', line 35
def covered_lines coverage_statistics[:line]&.covered end
    #covered_percent  ⇒ Float 
  
Computes the coverage based upon lines covered and lines missed
# File 'lib/simplecov/file_list.rb', line 76
def covered_percent coverage_statistics[:line]&.percent end
#covered_percentages
Computes the coverage based upon lines covered and lines missed for each file Returns an array with all coverage percentages
# File 'lib/simplecov/file_list.rb', line 60
def covered_percentages map(&:covered_percent) end
    #covered_strength  ⇒ Float 
  
Computes the strength (hits / line) based upon lines covered and lines missed
# File 'lib/simplecov/file_list.rb', line 82
def covered_strength coverage_statistics[:line]&.strength end
#least_covered_file
Finds the least covered file and returns that file’s name
# File 'lib/simplecov/file_list.rb', line 65
def least_covered_file min_by(&:covered_percent).filename end
#lines_of_code
Returns the overall amount of relevant lines of code across all files in this list
# File 'lib/simplecov/file_list.rb', line 70
def lines_of_code coverage_statistics[:line]&.total end
#missed_branches
Return total count of covered branches
# File 'lib/simplecov/file_list.rb', line 97
def missed_branches coverage_statistics[:branch]&.missed end
#missed_lines
Returns the count of lines that have been missed
# File 'lib/simplecov/file_list.rb', line 40
def missed_lines coverage_statistics[:line]&.missed end
#never_lines
Returns the count of lines that are not relevant for coverage
# File 'lib/simplecov/file_list.rb', line 45
def never_lines return 0.0 if empty? map { |f| f.never_lines.count }.inject(:+) end
#skipped_lines
Returns the count of skipped lines
# File 'lib/simplecov/file_list.rb', line 52
def skipped_lines return 0.0 if empty? map { |f| f.skipped_lines.count }.inject(:+) end
#total_branches
Return total count of branches in all files
# File 'lib/simplecov/file_list.rb', line 87
def total_branches coverage_statistics[:branch]&.total end