Module: Polyrun::Coverage::Reporting
- Defined in:
- lib/polyrun/coverage/reporting.rb
Overview
Ready-to-use multi-format output (SimpleCov-compatible result blob), no extra gems. Pass formatter: for multi-formatter composition (Formatter::MultiFormatter, custom classes).
Constant Summary collapse
- DEFAULT_FORMATS =
%w[json lcov cobertura console html].freeze
- DEFAULT_MERGE_FORMAT_LIST =
Comma list for
merge-coverage/ run-shards –merge-coverage defaults (Codecov, Jenkins, HTML, etc.). DEFAULT_FORMATS.join(",").freeze
Class Method Summary collapse
-
.write(coverage_blob, output_dir:, basename: "polyrun-coverage", formats: DEFAULT_FORMATS, meta: {}, groups: nil, formatter: nil) ⇒ Object
Writes selected formats under output_dir using basename as file prefix (e.g. polyrun-coverage.json).
-
.write_from_json_file(json_path, **kwargs) ⇒ Object
Load a merged or raw JSON file from disk and write all requested formats.
Class Method Details
.write(coverage_blob, output_dir:, basename: "polyrun-coverage", formats: DEFAULT_FORMATS, meta: {}, groups: nil, formatter: nil) ⇒ Object
Writes selected formats under output_dir using basename as file prefix (e.g. polyrun-coverage.json). When formatter is nil, builds Formatter.multi from formats (symbols or strings).
19 20 21 22 23 |
# File 'lib/polyrun/coverage/reporting.rb', line 19 def self.write(coverage_blob, output_dir:, basename: "polyrun-coverage", formats: DEFAULT_FORMATS, meta: {}, groups: nil, formatter: nil) fmt = formatter || Formatter.multi(*Array(formats).map(&:to_sym), output_dir: output_dir, basename: basename) result = Result.new(coverage_blob, meta: , groups: groups) fmt.format(result, output_dir: output_dir, basename: basename) end |
.write_from_json_file(json_path, **kwargs) ⇒ Object
Load a merged or raw JSON file from disk and write all requested formats.
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/polyrun/coverage/reporting.rb', line 26 def self.write_from_json_file(json_path, **kwargs) text = File.read(json_path) data = JSON.parse(text) blob = Merge.extract_coverage_blob(data) = kwargs.delete(:meta) || data["meta"] || {} groups = if kwargs.key?(:groups) kwargs.delete(:groups) else data["groups"] end write(blob, meta: , groups: groups, **kwargs) end |