Module: Polyrun::Coverage::Formatter

Defined in:
lib/polyrun/coverage/formatter.rb

Overview

Formatters matching SimpleCov: #format(result) receives a Result (and optional +output_dir+/+basename+). Use MultiFormatter to run several outputs; Formatter.multi builds that from symbols.

Defined Under Namespace

Classes: Base, CoberturaFormatter, ConsoleFormatter, CsvFormatter, HtmlFormatter, JsonFormatter, LcovFormatter, MarkdownFormatter, MultiFormatter

Class Method Summary collapse

Class Method Details

.builtin(name) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/polyrun/coverage/formatter.rb', line 23

def builtin(name)
  case name.to_sym
  when :json then JsonFormatter
  when :lcov then LcovFormatter
  when :cobertura then CoberturaFormatter
  when :console then ConsoleFormatter
  when :html then HtmlFormatter
  when :csv then CsvFormatter
  when :markdown then MarkdownFormatter
  else
    raise ArgumentError,
      "unknown coverage format: #{name.inspect} (expected :json, :lcov, :cobertura, :console, :html, :csv, :markdown)"
  end
end

.multi(*names, output_dir:, basename: "polyrun-coverage") ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
20
21
# File 'lib/polyrun/coverage/formatter.rb', line 15

def multi(*names, output_dir:, basename: "polyrun-coverage")
  names = names.flatten.compact
  raise ArgumentError, "formatter.multi: need at least one format" if names.empty?

  formatters = names.map { |n| builtin(n).new(output_dir: output_dir, basename: basename) }
  MultiFormatter.new(formatters)
end