Class: SimpleCov::FileList

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
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.

Instance Method Summary collapse

Constructor Details

#initialize(files) ⇒ FileList

Returns a new instance of FileList.



22
23
24
# File 'lib/simplecov/file_list.rb', line 22

def initialize(files)
  @files = files
end

Instance Method Details

#branch_covered_percentObject



97
98
99
# File 'lib/simplecov/file_list.rb', line 97

def branch_covered_percent
  coverage_statistics[:branch]&.percent
end

#coverage_statisticsObject



26
27
28
# File 'lib/simplecov/file_list.rb', line 26

def coverage_statistics
  @coverage_statistics ||= compute_coverage_statistics
end

#covered_branchesObject

Return total count of covered branches



88
89
90
# File 'lib/simplecov/file_list.rb', line 88

def covered_branches
  coverage_statistics[:branch]&.covered
end

#covered_linesObject

Returns the count of lines that have coverage



31
32
33
# File 'lib/simplecov/file_list.rb', line 31

def covered_lines
  coverage_statistics[:line]&.covered
end

#covered_percentFloat

Computes the coverage based upon lines covered and lines missed

Returns:

  • (Float)


72
73
74
# File 'lib/simplecov/file_list.rb', line 72

def covered_percent
  coverage_statistics[:line]&.percent
end

#covered_percentagesObject

Computes the coverage based upon lines covered and lines missed for each file Returns an array with all coverage percentages



56
57
58
# File 'lib/simplecov/file_list.rb', line 56

def covered_percentages
  map(&:covered_percent)
end

#covered_strengthFloat

Computes the strength (hits / line) based upon lines covered and lines missed

Returns:

  • (Float)


78
79
80
# File 'lib/simplecov/file_list.rb', line 78

def covered_strength
  coverage_statistics[:line]&.strength
end

#least_covered_fileObject

Finds the least covered file and returns that file’s name



61
62
63
# File 'lib/simplecov/file_list.rb', line 61

def least_covered_file
  min_by(&:covered_percent).filename
end

#lines_of_codeObject

Returns the overall amount of relevant lines of code across all files in this list



66
67
68
# File 'lib/simplecov/file_list.rb', line 66

def lines_of_code
  coverage_statistics[:line]&.total
end

#missed_branchesObject

Return total count of covered branches



93
94
95
# File 'lib/simplecov/file_list.rb', line 93

def missed_branches
  coverage_statistics[:branch]&.missed
end

#missed_linesObject

Returns the count of lines that have been missed



36
37
38
# File 'lib/simplecov/file_list.rb', line 36

def missed_lines
  coverage_statistics[:line]&.missed
end

#never_linesObject

Returns the count of lines that are not relevant for coverage



41
42
43
44
45
# File 'lib/simplecov/file_list.rb', line 41

def never_lines
  return 0.0 if empty?

  map { |f| f.never_lines.count }.inject(:+)
end

#skipped_linesObject

Returns the count of skipped lines



48
49
50
51
52
# File 'lib/simplecov/file_list.rb', line 48

def skipped_lines
  return 0.0 if empty?

  map { |f| f.skipped_lines.count }.inject(:+)
end

#total_branchesObject

Return total count of branches in all files



83
84
85
# File 'lib/simplecov/file_list.rb', line 83

def total_branches
  coverage_statistics[:branch]&.total
end