Class: Jekyll::PandocExports::Statistics
- Inherits:
-
Object
- Object
- Jekyll::PandocExports::Statistics
- Defined in:
- lib/jekyll-pandoc-exports/statistics.rb
Instance Method Summary collapse
-
#initialize ⇒ Statistics
constructor
A new instance of Statistics.
- #print_summary(config) ⇒ Object
- #record_conversion_failure(format, error) ⇒ Object
- #record_conversion_success(format) ⇒ Object
- #record_file_processed ⇒ Object
- #record_processing_end ⇒ Object
- #record_processing_start ⇒ Object
- #summary ⇒ Object
Constructor Details
#initialize ⇒ Statistics
Returns a new instance of Statistics.
4 5 6 7 8 9 10 11 12 13 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 4 def initialize @stats = { total_processed: 0, successful_conversions: 0, failed_conversions: 0, formats: { docx: 0, pdf: 0 }, processing_times: [], errors: [] } end |
Instance Method Details
#print_summary(config) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 53 def print_summary(config) return unless config['performance_monitoring'] || config['debug'] stats = summary Jekyll.logger.info "Pandoc Exports Stats:", "Processed #{stats[:total_files]} files" Jekyll.logger.info "Pandoc Exports Stats:", "Success rate: #{(stats[:success_rate] * 100).round(1)}%" Jekyll.logger.info "Pandoc Exports Stats:", "Average time: #{stats[:average_processing_time]}s" Jekyll.logger.info "Pandoc Exports Stats:", "Formats - DOCX: #{stats[:formats][:docx]}, PDF: #{stats[:formats][:pdf]}" if stats[:total_errors] > 0 && config['debug'] Jekyll.logger.warn "Pandoc Exports Stats:", "#{stats[:total_errors]} errors occurred" end end |
#record_conversion_failure(format, error) ⇒ Object
30 31 32 33 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 30 def record_conversion_failure(format, error) @stats[:failed_conversions] += 1 @stats[:errors] << { format: format, error: error., time: Time.now } end |
#record_conversion_success(format) ⇒ Object
25 26 27 28 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 25 def record_conversion_success(format) @stats[:successful_conversions] += 1 @stats[:formats][format] += 1 end |
#record_file_processed ⇒ Object
35 36 37 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 35 def record_file_processed @stats[:total_processed] += 1 end |
#record_processing_end ⇒ Object
19 20 21 22 23 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 19 def record_processing_end return unless @start_time @stats[:processing_times] << Time.now - @start_time @start_time = nil end |
#record_processing_start ⇒ Object
15 16 17 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 15 def record_processing_start @start_time = Time.now end |
#summary ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/jekyll-pandoc-exports/statistics.rb', line 39 def summary avg_time = @stats[:processing_times].empty? ? 0 : @stats[:processing_times].sum / @stats[:processing_times].length { total_files: @stats[:total_processed], successful: @stats[:successful_conversions], failed: @stats[:failed_conversions], success_rate: success_rate, formats: @stats[:formats], average_processing_time: avg_time.round(3), total_errors: @stats[:errors].length } end |