class SimpleCov::SourceFile


source lines and featuring helpers to interpret that data.
Representation of a source file including it’s coverage data, source code,

def covered_lines

Returns all covered lines as SimpleCov::SourceFile::Line
def covered_lines
  @covered_lines ||= lines.select {|c| c.covered? }
end

def covered_percent

The coverage for this file in percent. 0 if the file has no relevant lines
def covered_percent
  return 100.0 if lines.length == 0 or lines.length == never_lines.count
  (covered_lines.count) * 100 / (lines.count-never_lines.count).to_f
end

def initialize(filename, coverage)

def initialize(filename, coverage)
  @filename, @coverage, @src = filename, coverage, File.readlines(filename)
end

def line(number)

Access SimpleCov::SourceFile::Line source lines by line number
def line(number)
  lines[number-1]
end

def lines

and thus including coverage data. Aliased as :source_lines
Returns all source lines for this file as instances of SimpleCov::SourceFile::Line,
def lines
  return @lines unless @lines.nil?
  # Initialize lines
  @lines = []
  coverage.each_with_index do |coverage, i|
    @lines << SimpleCov::SourceFile::Line.new(src[i], i+1, coverage)
  end
  @lines
end

def missed_lines

as instances of SimpleCov::SourceFile::Line
Returns all lines that should have been, but were not covered
def missed_lines
  @missed_lines ||= lines.select {|c| c.missed? }
end

def never_lines

SimpleCov::SourceFile::Line instances
Returns all lines that are not relevant for coverage as
def never_lines
  @never_lines ||= lines.select {|c| c.never? }
end