Class: SvgConform::SvgQualityBatchReport

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/svg_conform/quality_report.rb

Overview

Represents batch quality analysis summary/report.

Examples:

YAML output

batch = analyzer.analyze_directory('./svgs')
puts batch.to_yaml

Terminal rendering

puts batch.render  # Summary with distribution chart

Instance Method Summary collapse

Instance Method Details

#render(theme: TerminalTheme.default) ⇒ String

Render batch report as colorful terminal output

Parameters:

  • theme (Hash) (defaults to: TerminalTheme.default)

    Theme configuration

Returns:

  • (String)

    ANSI-colored terminal output



188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
# File 'lib/svg_conform/quality_report.rb', line 188

def render(theme: TerminalTheme.default)
  lines = []

  lines << theme.header("📊 SVG Quality Batch Report")
  lines << ""
  lines << "  📁 Total Files: #{total_files}"
  lines << "  ✅ Successful: #{successful}"
  lines << "  ❌ Failed: #{failed}" if failed.positive?
  lines << ""

  # Quality distribution chart
  lines << theme.separator("Quality Distribution")
  lines << ""
  render_distribution_chart(lines, theme)
  lines << ""

  # Summary stats
  lines << theme.separator("Summary")
  lines << ""
  lines << "  📈 Average Quality Score: #{theme.wrap_with_level(
    avg_quality_score.round(1).to_s, average_level
  )}/100"
  lines << "  📊 Average Errors/File: #{avg_error_count.round(1)}"
  lines << ""

  # Error breakdown
  lines << "  🔧 Total Remediable: #{theme.wrap_with_severity(
    remediable_errors.to_s, :remediable
  )}"
  lines << "  ⚠️  Total Non-remediable: #{theme.wrap_with_severity(
    non_remediable_errors.to_s, :non_remediable
  )}"
  lines << ""

  lines.join("\n")
end