Class: SimpleCov::Formatter::Console
- Inherits:
-
Object
- Object
- SimpleCov::Formatter::Console
show all
- Defined in:
- lib/simplecov-console/output/table.rb,
lib/simplecov-console/output/block.rb,
lib/simplecov-console.rb
Defined Under Namespace
Modules: BlockOutput, TableOutput
Constant Summary
collapse
- VERSION =
IO.read(File.expand_path("../../VERSION", __FILE__)).strip
- ATTRIBUTES =
[:table_options, :use_colors, :max_rows, :show_covered, :sort, :output_style]
Instance Method Summary
collapse
Instance Method Details
#branches_missed(missed_branches) ⇒ Object
114
115
116
117
118
|
# File 'lib/simplecov-console.rb', line 114
def branches_missed(missed_branches)
missed_branches.group_by(&:start_line).map do |line_number, branches|
"#{line_number}[#{branches.map(&:type).join(',')}]"
end
end
|
#colorize(s) ⇒ Object
156
157
158
159
160
161
162
163
164
165
166
167
168
|
# File 'lib/simplecov-console.rb', line 156
def colorize(s)
return s if !use_colors?
s =~ /([\d.]+)/
n = $1.to_f
if n >= 90 then
ANSI.green { s }
elsif n >= 80 then
ANSI.yellow { s }
else
ANSI.red { s }
end
end
|
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# File 'lib/simplecov-console.rb', line 44
def format(result)
include_output_style
root = nil
if Module.const_defined? :ROOT then
root = ROOT
elsif Module.const_defined?(:Rails) && Rails.respond_to?(:root) then
root = Rails.root.to_s
elsif ENV["BUNDLE_GEMFILE"] then
root = File.dirname(ENV["BUNDLE_GEMFILE"])
else
root = Dir.pwd
end
puts
puts "COVERAGE: #{colorize(pct(result.covered_percent))} -- #{result.covered_lines}/#{result.total_lines} lines in #{result.files.size} files"
show_branch_coverage = show_branch_coverage?(result)
if show_branch_coverage
puts "BRANCH COVERAGE: #{colorize(pct(result.coverage_statistics[:branch].percent))} -- #{result.covered_branches}/#{result.total_branches} branches in #{result.files.size} branches"
end
puts
if root.nil? then
return
end
if SimpleCov::Formatter::Console.sort == 'coverage'
if show_branch_coverage
files = result.files.sort do |a,b|
(a.covered_percent <=> b.covered_percent).nonzero? ||
(a.coverage_statistics[:branch].percent <=> b.coverage_statistics[:branch].percent)
end
else
files = result.files.sort_by(&:covered_percent)
end
else
files = result.files
end
covered_files = 0
unless SimpleCov::Formatter::Console.show_covered
files.select!{ |file|
if file.covered_percent == 100 && (!show_branch_coverage || file.coverage_statistics[:branch].percent == 100) then
covered_files += 1
false
else
true
end
}
if files.nil? or files.empty? then
return
end
end
max_rows = SimpleCov::Formatter::Console.max_rows
if ![-1, nil].include?(max_rows) && files.size > max_rows then
puts "showing bottom (worst) #{max_rows} of #{files.size} files"
files = files.slice(0, max_rows)
end
puts output(files, root, show_branch_coverage)
if covered_files > 0 then
puts "#{covered_files} file(s) with 100% coverage not shown"
end
end
|
#include_output_style ⇒ Object
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/simplecov-console.rb', line 28
def include_output_style
if SimpleCov::Formatter::Console.output_style == 'block' then
require 'simplecov-console/output/block'
extend BlockOutput
else
require 'simplecov-console/output/table'
extend TableOutput
end
end
|
#missed(missed_lines) ⇒ Object
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/simplecov-console.rb', line 120
def missed(missed_lines)
groups = {}
base = nil
previous = nil
missed_lines.each do |src|
ln = src.line_number
if base && previous && (ln - 1) == previous
groups[base] += 1
previous = ln
else
base = ln
groups[base] = 0
previous = base
end
end
group_str = []
groups.map do |starting_line, length|
if length > 0
group_str << "#{starting_line}-#{starting_line + length}"
else
group_str << "#{starting_line}"
end
end
group_str
end
|
#pct(number) ⇒ Object
148
149
150
|
# File 'lib/simplecov-console.rb', line 148
def pct(number)
sprintf("%6.2f%%", number)
end
|
#show_branch_coverage?(result) ⇒ Boolean
39
40
41
42
|
# File 'lib/simplecov-console.rb', line 39
def show_branch_coverage?(result)
Gem::Version.new(SimpleCov::VERSION) >= Gem::Version.new('0.18.5') &&
result.coverage_statistics[:branch]
end
|
#use_colors? ⇒ Boolean
152
153
154
|
# File 'lib/simplecov-console.rb', line 152
def use_colors?
SimpleCov::Formatter::Console.use_colors
end
|