Class: Covered::Coverage
- Inherits:
-
Object
show all
- Includes:
- Ratio
- Defined in:
- lib/covered/coverage.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Ratio
#complete?, #percentage, #ratio
Constructor Details
#initialize(path, counts = []) ⇒ Coverage
Returns a new instance of Coverage.
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/covered/coverage.rb', line 39
def initialize(path, counts = [])
@path = path
@counts = counts
@total = 0
@annotations = {}
@executable_lines = nil
@executed_lines = nil
end
|
Instance Attribute Details
#annotations ⇒ Object
Returns the value of attribute annotations.
54
55
56
|
# File 'lib/covered/coverage.rb', line 54
def annotations
@annotations
end
|
#counts ⇒ Object
Returns the value of attribute counts.
51
52
53
|
# File 'lib/covered/coverage.rb', line 51
def counts
@counts
end
|
#path ⇒ Object
Returns the value of attribute path.
50
51
52
|
# File 'lib/covered/coverage.rb', line 50
def path
@path
end
|
#total ⇒ Object
Returns the value of attribute total.
52
53
54
|
# File 'lib/covered/coverage.rb', line 52
def total
@total
end
|
Instance Method Details
#[](lineno) ⇒ Object
84
85
86
|
# File 'lib/covered/coverage.rb', line 84
def [] lineno
@counts[lineno]
end
|
#annotate(lineno, annotation) ⇒ Object
88
89
90
91
|
# File 'lib/covered/coverage.rb', line 88
def annotate(lineno, annotation)
@annotations[lineno] ||= []
@annotations[lineno] << annotation
end
|
#executable_count ⇒ Object
107
108
109
|
# File 'lib/covered/coverage.rb', line 107
def executable_count
executable_lines.count
end
|
#executable_lines ⇒ Object
103
104
105
|
# File 'lib/covered/coverage.rb', line 103
def executable_lines
@executable_lines ||= @counts.compact
end
|
#executed_count ⇒ Object
115
116
117
|
# File 'lib/covered/coverage.rb', line 115
def executed_count
executed_lines.count
end
|
#executed_lines ⇒ Object
111
112
113
|
# File 'lib/covered/coverage.rb', line 111
def executed_lines
@executed_lines ||= executable_lines.reject(&:zero?)
end
|
#freeze ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/covered/coverage.rb', line 64
def freeze
return self if frozen?
@counts.freeze
@annotations.freeze
executable_lines
executed_lines
super
end
|
#mark(lineno, value = 1) ⇒ Object
93
94
95
96
97
98
99
100
101
|
# File 'lib/covered/coverage.rb', line 93
def mark(lineno, value = 1)
@total += value
if @counts[lineno]
@counts[lineno] += value
else
@counts[lineno] = value
end
end
|
#missing_count ⇒ Object
119
120
121
|
# File 'lib/covered/coverage.rb', line 119
def missing_count
executable_count - executed_count
end
|
#print(output) ⇒ Object
125
126
127
|
# File 'lib/covered/coverage.rb', line 125
def print(output)
output.puts "** #{executed_count}/#{executable_count} lines executed; #{percentage.to_f.round(2)}% covered."
end
|
#read(&block) ⇒ Object
56
57
58
59
60
61
62
|
# File 'lib/covered/coverage.rb', line 56
def read(&block)
if block_given?
File.open(@path, "r", &block)
else
File.read(@path)
end
end
|
#to_a ⇒ Object
76
77
78
|
# File 'lib/covered/coverage.rb', line 76
def to_a
@counts
end
|
#to_s ⇒ Object
129
130
131
|
# File 'lib/covered/coverage.rb', line 129
def to_s
"\#<#{self.class} path=#{@path} #{percentage.to_f.round(2)}% covered>"
end
|
#zero? ⇒ Boolean
80
81
82
|
# File 'lib/covered/coverage.rb', line 80
def zero?
@total.zero?
end
|