9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/fast_exists/intelligence/report/builder.rb', line 9
def self.build(format: :console, output: nil, include: nil, compare: nil)
data = FastExists::Intelligence::DataModel.new
data.health = FastExists::Intelligence::Health.check
data.analysis = FastExists::Intelligence::Analyzer.analyze
data.audit = FastExists::Intelligence::Auditor.audit
data.doctor = FastExists::Intelligence::Doctor.diagnose(format: :json)
comparison_data = load_comparison(compare) if compare
rendered_content = case format.to_sym
when :json
FastExists::Intelligence::Report::Json.render(data, comparison: comparison_data)
when :yaml
FastExists::Intelligence::Report::Yaml.render(data, comparison: comparison_data)
when :markdown
FastExists::Intelligence::Report::Markdown.render(data, comparison: comparison_data)
when :html
FastExists::Intelligence::Report::Html.render(data, comparison: comparison_data)
when :csv
FastExists::Intelligence::Report::Csv.render(data, comparison: comparison_data)
when :pdf
FastExists::Intelligence::Report::Pdf.render(data, comparison: comparison_data)
else
FastExists::Intelligence::Report::Console.render(data, comparison: comparison_data)
end
if output
FileUtils.mkdir_p(File.dirname(output))
File.write(output, rendered_content)
puts "Report generated successfully at #{output}"
end
rendered_content
end
|