Module: Polyrun::Coverage::FileStatsReport
- Defined in:
- lib/polyrun/coverage/file_stats_report.rb
Overview
Per-file line coverage tables for CSV and Markdown exports.
Constant Summary collapse
- HEADERS =
%w[path line_percent lines_covered lines_relevant].freeze
Class Method Summary collapse
- .emit_csv(coverage_blob) ⇒ Object
- .emit_markdown(coverage_blob, title: "Polyrun coverage report") ⇒ Object
- .file_rows(coverage_blob) ⇒ Object
Class Method Details
.emit_csv(coverage_blob) ⇒ Object
19 20 21 |
# File 'lib/polyrun/coverage/file_stats_report.rb', line 19 def emit_csv(coverage_blob) Export::Csv.generate(HEADERS, file_rows(coverage_blob)) end |
.emit_markdown(coverage_blob, title: "Polyrun coverage report") ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/polyrun/coverage/file_stats_report.rb', line 23 def emit_markdown(coverage_blob, title: "Polyrun coverage report") summary = Merge.console_summary(coverage_blob) summary_line = Merge.format_console_summary(summary).strip Export::Markdown.document( title, [ {body: summary_line}, {heading: "Per-file coverage", headers: HEADERS, rows: file_rows(coverage_blob)} ] ) end |
.file_rows(coverage_blob) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/polyrun/coverage/file_stats_report.rb', line 12 def file_rows(coverage_blob) coverage_blob.map do |path, file_entry| line_percent, lines_relevant, lines_covered = Merge.file_line_stats(file_entry) [path, format("%.2f", line_percent), lines_covered, lines_relevant] end.sort_by { |row| row[1].to_f } end |