Class: Woods::Evaluation::ReportGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/woods/evaluation/report_generator.rb

Overview

Generates JSON reports from evaluation results.

Takes an EvaluationReport and produces a structured JSON document with per-query scores, aggregate metrics, and metadata.

Examples:

generator = ReportGenerator.new
json = generator.generate(report)
generator.save(report, "tmp/eval_report.json")

Instance Method Summary collapse

Instance Method Details

#generate(report, metadata: {}) ⇒ String

Generate a JSON string from an evaluation report.

Parameters:

Returns:

  • (String)

    Pretty-printed JSON



23
24
25
26
# File 'lib/woods/evaluation/report_generator.rb', line 23

def generate(report, metadata: {})
  data = build_report_hash(report, )
  JSON.pretty_generate(data)
end

#save(report, path, metadata: {}) ⇒ void

This method returns an undefined value.

Save an evaluation report to a JSON file.

Parameters:

  • report (Evaluator::EvaluationReport)

    Evaluation report

  • path (String)

    Output file path

  • metadata (Hash) (defaults to: {})

    Optional metadata to include



34
35
36
37
# File 'lib/woods/evaluation/report_generator.rb', line 34

def save(report, path, metadata: {})
  FileUtils.mkdir_p(File.dirname(path))
  File.write(path, generate(report, metadata: ))
end