Class: RouteGuard::Formatter::Json

Inherits:
Object
  • Object
show all
Defined in:
lib/route_guard/formatter/json.rb

Instance Method Summary collapse

Instance Method Details

#format(report, io = $stdout) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/route_guard/formatter/json.rb', line 10

def format(report, io = $stdout)
  data = {
    metadata: {
      version: RouteGuard::VERSION,
      timestamp: Time.now.utc.iso8601,
      duration: report.duration
    },
    summary: {
      routes_count: report.routes.length,
      errors_count: report.errors.length,
      warnings_count: report.warnings.length,
      health_score: report.complexity_score
    },
    statistics: report.stats || {},
    issues: report.issues.map { |issue| format_issue(issue) }
  }

  io.puts JSON.pretty_generate(data)
end