class SimpleCov::SourceFile::Branch

Representing single branch that has been detected in coverage report. Give us support methods that handle needed calculations.

Attributes

coverage[R]
end_line[R]
start_line[R]
type[R]

Public Class Methods

new(start_line:, end_line:, coverage:, inline:, type:) click to toggle source

rubocop:disable Metrics/ParameterLists

# File lib/simplecov/source_file/branch.rb, line 12
def initialize(start_line:, end_line:, coverage:, inline:, type:)
  @start_line = start_line
  @end_line   = end_line
  @coverage   = coverage
  @inline     = inline
  @type       = type
  @skipped    = false
end

Public Instance Methods

covered?() click to toggle source

Return true if there is relevant count defined > 0

@return [Boolean]

# File lib/simplecov/source_file/branch.rb, line 31
def covered?
  !skipped? && coverage.positive?
end
inline?() click to toggle source

rubocop:enable Metrics/ParameterLists

# File lib/simplecov/source_file/branch.rb, line 22
def inline?
  @inline
end
missed?() click to toggle source

Check if branche missed or not

@return [Boolean]

# File lib/simplecov/source_file/branch.rb, line 40
def missed?
  !skipped? && coverage.zero?
end
overlaps_with?(line_range) click to toggle source
# File lib/simplecov/source_file/branch.rb, line 70
def overlaps_with?(line_range)
  start_line <= line_range.end && end_line >= line_range.begin
end
report() click to toggle source

Return array with coverage count and badge

@return [Array]

# File lib/simplecov/source_file/branch.rb, line 79
def report
  [type, coverage]
end
report_line() click to toggle source

The line on which we want to report the coverage

Usually we choose the line above the start of the branch (so that it shows up at if/else) because that

  • highlights the condition

  • makes it distinguishable if the first line of the branch is an inline branch (see the nested_branches fixture)

# File lib/simplecov/source_file/branch.rb, line 52
def report_line
  if inline?
    start_line
  else
    start_line - 1
  end
end
skipped!() click to toggle source

Flags the branch as skipped

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

Returns true if the branch was marked skipped by virtue of nocov comments.

# File lib/simplecov/source_file/branch.rb, line 66
def skipped?
  @skipped
end