Class: Bootprint::Formatters::Markdown

Inherits:
Object
  • Object
show all
Defined in:
lib/bootprint/formatters/markdown.rb

Instance Method Summary collapse

Constructor Details

#initialize(report) ⇒ Markdown

Returns a new instance of Markdown.



6
# File 'lib/bootprint/formatters/markdown.rb', line 6

def initialize(report) = @report = report

Instance Method Details

#renderObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/bootprint/formatters/markdown.rb', line 8

def render
  output = +"# Bootprint Diagnosis\n\n"
  output << "| Source | Target | Blocking |\n|---|---|---|\n"
  output << "| #{@report.source.name} | #{@report.target.name} | #{@report.blocking? ? 'Yes' : 'No'} |\n\n"
  @report.findings.each do |finding|
    output << "## #{finding.severity.to_s.upcase}: #{finding.title}\n\n"
    output << "#{finding.summary}\n\n"
    output << "**Impact:** #{finding.impact}\n\n" if finding.impact
    if finding.remediation&.fetch("summary", nil)
      output << "**Recommended fix:** #{finding.remediation['summary']}\n\n"
      Array(finding.remediation["commands"]).each { |command| output << "```console\n#{command}\n```\n\n" }
    end
  end
  output << "## Summary\n\n"
  output << @report.counts.map { |severity, count| "- #{severity}: #{count}" }.join("\n") << "\n"
  output
end