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, HtmlFormatter, JsonFormatter, LcovFormatter, MultiFormatter

Class Method Summary collapse

Class Method Details

.builtin(name) ⇒ Object



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

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
  else
    raise ArgumentError, "unknown coverage format: #{name.inspect} (expected :json, :lcov, :cobertura, :console, :html)"
  end
end

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

Raises:

  • (ArgumentError)


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

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