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
def covered_lines @covered_lines ||= lines.select {|c| c.covered? } end
def covered_percent
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)
def line(number) lines[number-1] end
def 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
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
Returns all lines that are not relevant for coverage as
def never_lines @never_lines ||= lines.select {|c| c.never? } end