Class: SimpleCov::SourceFile::Branch

Inherits:
Object
  • Object
show all
Defined in:
lib/simplecov/source_file/branch.rb,
sig/simplecov.rbs

Overview

A single branch detected in the coverage data.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start_line:, end_line:, coverage:, inline:, type:) ⇒ Branch

Returns a new instance of Branch.

Parameters:

  • start_line: (Integer)
  • end_line: (Integer)
  • coverage: (Integer)
  • inline: (Boolean)
  • type: (Symbol)


11
12
13
14
15
16
17
18
# File 'lib/simplecov/source_file/branch.rb', line 11

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

Instance Attribute Details

#coverageInteger (readonly)

Returns the value of attribute coverage.

Returns:

  • (Integer)


9
10
11
# File 'lib/simplecov/source_file/branch.rb', line 9

def coverage
  @coverage
end

#end_lineInteger (readonly)

Returns the value of attribute end_line.

Returns:

  • (Integer)


9
10
11
# File 'lib/simplecov/source_file/branch.rb', line 9

def end_line
  @end_line
end

#start_lineInteger (readonly)

Returns the value of attribute start_line.

Returns:

  • (Integer)


9
10
11
# File 'lib/simplecov/source_file/branch.rb', line 9

def start_line
  @start_line
end

#typeSymbol (readonly)

Branch arm type as reported by Coverage (:then, :else, :when, ...).

Returns:

  • (Symbol)


989
990
991
# File 'sig/simplecov.rbs', line 989

def type
  @type
end

Instance Method Details

#covered?Boolean

Return true if there is relevant count defined > 0

Returns:

  • (Boolean)


29
30
31
# File 'lib/simplecov/source_file/branch.rb', line 29

def covered?
  !skipped? && coverage.positive?
end

#inline?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/simplecov/source_file/branch.rb', line 20

def inline?
  @inline
end

#missed?Boolean

Check if branch missed or not

Returns:

  • (Boolean)


38
39
40
# File 'lib/simplecov/source_file/branch.rb', line 38

def missed?
  !skipped? && coverage.zero?
end

#overlaps_with?(line_range) ⇒ Boolean

Parameters:

  • line_range (Range[Integer])

Returns:

  • (Boolean)


68
69
70
# File 'lib/simplecov/source_file/branch.rb', line 68

def overlaps_with?(line_range)
  start_line <= line_range.end && end_line >= line_range.begin
end

#report[ Symbol, Integer ]

[branch type, hit count]

Returns:

  • ([ Symbol, Integer ])


77
78
79
# File 'lib/simplecov/source_file/branch.rb', line 77

def report
  [type, coverage]
end

#report_lineInteger

The line the branch is reported on: its own start line when inline, otherwise the line above (the if/else itself).

Returns:

  • (Integer)


50
51
52
53
54
55
56
# File 'lib/simplecov/source_file/branch.rb', line 50

def report_line
  if inline?
    start_line
  else
    start_line - 1
  end
end

#skipped!void

This method returns an undefined value.

Flags the branch as skipped



59
60
61
# File 'lib/simplecov/source_file/branch.rb', line 59

def skipped!
  @skipped = true
end

#skipped?Boolean

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

Returns:

  • (Boolean)


64
65
66
# File 'lib/simplecov/source_file/branch.rb', line 64

def skipped?
  @skipped
end