class SimpleCov::SourceFile::Line

Representation of a single line in a source file including this specific line's source code, #line_number and code coverage, with the coverage being either nil (coverage not applicable, e.g. comment line), 0 (line not covered) or >1 (the amount of times the line was executed)

Attributes

coverage[R]

The coverage data for this line: either nil (never), 0 (missed) or >=1 (times covered)

line[R]

The line number in the source file. Aliased as :line, :number

line_number[R]

The line number in the source file. Aliased as :line, :number

number[R]

The line number in the source file. Aliased as :line, :number

skipped[R]

Whether this line was skipped

source[R]

The source code for this line. Aliased as :source

src[R]

The source code for this line. Aliased as :source

Public Class Methods

new(src, line_number, coverage) click to toggle source
# File lib/simplecov/source_file.rb, line 27
def initialize(src, line_number, coverage)
  fail ArgumentError, "Only String accepted for source" unless src.is_a?(String)
  fail ArgumentError, "Only Fixnum accepted for line_number" unless line_number.is_a?(Fixnum)
  fail ArgumentError, "Only Fixnum and nil accepted for coverage" unless coverage.is_a?(Fixnum) || coverage.nil?
  @src, @line_number, @coverage = src, line_number, coverage
  @skipped = false
end

Public Instance Methods

covered?() click to toggle source

Returns true if this is a line that has been covered

# File lib/simplecov/source_file.rb, line 41
def covered?
  !never? && !skipped? && coverage > 0
end
missed?() click to toggle source

Returns true if this is a line that should have been covered, but was not

# File lib/simplecov/source_file.rb, line 36
def missed?
  !never? && !skipped? && coverage.zero?
end
never?() click to toggle source

Returns true if this line is not relevant for coverage

# File lib/simplecov/source_file.rb, line 46
def never?
  !skipped? && coverage.nil?
end
skipped!() click to toggle source

Flags this line as skipped

# File lib/simplecov/source_file.rb, line 51
def skipped!
  @skipped = true
end
skipped?() click to toggle source

Returns true if this line was skipped, false otherwise. Lines are skipped if they are wrapped with # :nocov: comment lines.

# File lib/simplecov/source_file.rb, line 57
def skipped?
  !!skipped
end
status() click to toggle source

The status of this line - either covered, missed, skipped or never. Useful i.e. for direct use as a css class in report generation

# File lib/simplecov/source_file.rb, line 63
def status
  return "skipped" if skipped?
  return "never" if never?
  return "missed" if missed?
  return "covered" if covered?
end