class SorbetProgress::Reporters::Verbose

The first reporter written. It's quite verbose, so I'm calling it ..

Public Class Methods

new(calculator) click to toggle source
# File lib/sorbet_progress/reporters/verbose.rb, line 13
def initialize(calculator)
  @calculator = calculator
end

Public Instance Methods

report() click to toggle source
# File lib/sorbet_progress/reporters/verbose.rb, line 18
def report
  [
    "Sorbet Progress\n",
    "Progress for sig coverage",
    coverage_metrics,
    "\nProgress for file coverage",
    sigil_percentages,
    "---------------------------------------",
    "Total: \t\t\t#{@calculator.total}\t100%",
    "Keep up the good work 👍"
  ].flatten.join("\n")
end

Private Instance Methods

coverage_metrics() click to toggle source
# File lib/sorbet_progress/reporters/verbose.rb, line 41
def coverage_metrics
  @calculator.coverage_metrics.map do |label, value|
    format_metric(label, value)
  end
end
format_metric(label, value) click to toggle source
# File lib/sorbet_progress/reporters/verbose.rb, line 49
def format_metric(label, value)
  if value.nil?
    format("%-17s\tunknown", label)
  else
    format("%-17s\t%d", label, value)
  end
end
sigil_percentages() click to toggle source
# File lib/sorbet_progress/reporters/verbose.rb, line 67
def sigil_percentages
  @calculator.sigil_percentages.map do |elem|
    percentage =
      if elem[:percentage]
        elem[:percentage] * 100
      else
        0
      end
    format(
      "%-17s\t%d\t%.2f %%",
      elem[:label],
      elem[:value] || 0,
      percentage
    )
  end
end