Class: Serialbench::SiteGenerator
- Inherits:
-
Object
- Object
- Serialbench::SiteGenerator
- Defined in:
- lib/serialbench/site_generator.rb
Overview
Unified site generator for creating static HTML sites from benchmark results
Constant Summary collapse
- TEMPLATE_DIR =
File.join(__dir__, 'templates')
Instance Attribute Summary collapse
-
#output_path ⇒ Object
readonly
Returns the value of attribute output_path.
-
#result ⇒ Object
readonly
Returns the value of attribute result.
-
#resultset ⇒ Object
readonly
Returns the value of attribute resultset.
Class Method Summary collapse
- .generate_for_result(result, output_path) ⇒ Object
- .generate_for_resultset(resultset, output_path) ⇒ Object
Instance Method Summary collapse
- #generate_site ⇒ Object
-
#initialize(output_path:, result: nil, resultset: nil) ⇒ SiteGenerator
constructor
A new instance of SiteGenerator.
Constructor Details
#initialize(output_path:, result: nil, resultset: nil) ⇒ SiteGenerator
Returns a new instance of SiteGenerator.
16 17 18 19 20 21 |
# File 'lib/serialbench/site_generator.rb', line 16 def initialize(output_path:, result: nil, resultset: nil) @output_path = File.(output_path) @result = result if result @resultset = resultset if resultset setup_liquid_environment end |
Instance Attribute Details
#output_path ⇒ Object (readonly)
Returns the value of attribute output_path.
14 15 16 |
# File 'lib/serialbench/site_generator.rb', line 14 def output_path @output_path end |
#result ⇒ Object (readonly)
Returns the value of attribute result.
14 15 16 |
# File 'lib/serialbench/site_generator.rb', line 14 def result @result end |
#resultset ⇒ Object (readonly)
Returns the value of attribute resultset.
14 15 16 |
# File 'lib/serialbench/site_generator.rb', line 14 def resultset @resultset end |
Class Method Details
.generate_for_result(result, output_path) ⇒ Object
23 24 25 26 |
# File 'lib/serialbench/site_generator.rb', line 23 def self.generate_for_result(result, output_path) generator = new(output_path: output_path, result: result) generator.generate_site end |
.generate_for_resultset(resultset, output_path) ⇒ Object
28 29 30 31 |
# File 'lib/serialbench/site_generator.rb', line 28 def self.generate_for_resultset(resultset, output_path) generator = new(output_path: output_path, resultset: resultset) generator.generate_site end |
Instance Method Details
#generate_site ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/serialbench/site_generator.rb', line 33 def generate_site target_name = @result ? @result.environment_config.name : @resultset.name puts "🏗️ Generating HTML site for #{@result ? 'run' : 'resultset'}: #{target_name}" puts "Output: #{@output_path}" # Transform data for dashboard.js compatibility data = if @result transform_result_for_dashboard(@result) else transform_resultset_for_dashboard(@resultset) end prepare_output_directory render_site( { 'data' => JSON.generate(data), 'kind' => @result ? 'run' : 'resultset' }, 'format_based.liquid' ) # Export raw data files for download export_raw_data puts "✅ Site generated successfully at: #{@output_path}" @output_path end |