Class: DocktorRails::Reporters::TextReporter

Inherits:
Object
  • Object
show all
Defined in:
lib/docktor_rails/reporters/text_reporter.rb

Instance Method Summary collapse

Constructor Details

#initialize(io: $stdout, color: true, verbose: false, quiet: false) ⇒ TextReporter

Returns a new instance of TextReporter.



10
11
12
13
14
15
# File 'lib/docktor_rails/reporters/text_reporter.rb', line 10

def initialize(io: $stdout, color: true, verbose: false, quiet: false)
  @io = io
  @pastel = Pastel.new(enabled: color)
  @verbose = verbose
  @quiet = quiet
end

Instance Method Details

#render(report) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/docktor_rails/reporters/text_reporter.rb', line 17

def render(report)
  @root = report[:root]
  @platform = report[:platform]

  unless @quiet
    @io.puts "docktor_rails — preflight check"
    @io.puts @pastel.dim("host: #{@platform&.label || "unknown"}")
    @io.puts @pastel.dim("root: #{@root}") if @root
    @io.puts "" * 46
  end

  checks = report.fetch(:checks)
  render_group("Errors", checks.select(&:fail?))
  render_group("Warnings", checks.select(&:warn?))
  render_group("Passed", checks.select(&:pass?)) if @verbose && !@quiet

  @io.puts "" * 46 unless @quiet
  s = report.fetch(:summary)
  @io.puts "#{s.fetch(:fail)} errors · #{s.fetch(:warn)} warnings · #{s.fetch(:pass)} passed"
end