Module: PredictabilityEngine::SummaryVisualizer::Renderer
- Defined in:
- lib/predictability_engine/summary_visualizer/renderer.rb
Class Method Summary collapse
- .aging_pairs(aging) ⇒ Object
- .aging_summary_lines(metrics, title, prefix, bold = '') ⇒ Object
- .render_confluence_summary(work_items, metrics, percentiles) ⇒ Object
- .render_html_summary(work_items, metrics, percentiles) ⇒ Object
- .render_markdown_summary(work_items, metrics, percentiles) ⇒ Object
- .render_markup_summary(work_items, metrics, percentiles, styling) ⇒ Object
- .render_terminal_summary(work_items, metrics, color, percentiles) ⇒ Object
Class Method Details
.aging_pairs(aging) ⇒ Object
52 53 54 55 56 |
# File 'lib/predictability_engine/summary_visualizer/renderer.rb', line 52 def self.aging_pairs(aging) [['Active WIP', "#{aging[:count]} items"], ['Average WIP Age', "#{aging[:avg_age]} days"], ['Oldest Item Age', "#{aging[:max_age]} days"]] end |
.aging_summary_lines(metrics, title, prefix, bold = '') ⇒ Object
58 59 60 61 |
# File 'lib/predictability_engine/summary_visualizer/renderer.rb', line 58 def self.aging_summary_lines(metrics, title, prefix, bold = '') lines = aging_pairs(metrics[:aging]).map { |label, value| "#{prefix}#{bold}#{label}:#{bold} #{value}" } [title, '', *lines, ''] end |
.render_confluence_summary(work_items, metrics, percentiles) ⇒ Object
67 68 69 |
# File 'lib/predictability_engine/summary_visualizer/renderer.rb', line 67 def self.render_confluence_summary(work_items, metrics, percentiles) render_markup_summary(work_items, metrics, percentiles, { bold: '*', head2: 'h2.', head3: 'h3.' }) end |
.render_html_summary(work_items, metrics, percentiles) ⇒ Object
8 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 |
# File 'lib/predictability_engine/summary_visualizer/renderer.rb', line 8 def self.render_html_summary(work_items, metrics, percentiles) html = <<~HTML <h2>Flow Metrics Summary</h2> <ul> #{Helpers.metric_list(work_items, metrics)} </ul> HTML if metrics[:aging] items = aging_pairs(metrics[:aging]).map { |l, v| Helpers.html_metric_li(l, v) }.join("\n ") html += <<~HTML <h3>Aging WIP Summary</h3> <ul> #{items} </ul> HTML end html += <<~HTML <h3>Cycle Time Percentiles</h3> <ul> #{Helpers.percentile_lines(metrics, percentiles, prefix: '<li><strong>', bold: '</strong>', suffix: '</li>')} </ul> HTML html end |
.render_markdown_summary(work_items, metrics, percentiles) ⇒ Object
63 64 65 |
# File 'lib/predictability_engine/summary_visualizer/renderer.rb', line 63 def self.render_markdown_summary(work_items, metrics, percentiles) render_markup_summary(work_items, metrics, percentiles, { bold: '**', head2: '##', head3: '###' }) end |
.render_markup_summary(work_items, metrics, percentiles, styling) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/predictability_engine/summary_visualizer/renderer.rb', line 71 def self.render_markup_summary(work_items, metrics, percentiles, styling) head2, head3, bold = styling.values_at(:head2, :head3, :bold) out = [ "#{head2} Flow Metrics Summary", '', Helpers.metric_lines(work_items, metrics, prefix: '* ', bold: bold), '' ] out += aging_summary_lines(metrics, "#{head3} Aging WIP Summary", '* ', bold) if metrics[:aging] out += [ "#{head3} Cycle Time Percentiles", '', Helpers.percentile_lines(metrics, percentiles, prefix: '* ', bold: bold) ] out.join("\n") end |
.render_terminal_summary(work_items, metrics, color, percentiles) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/predictability_engine/summary_visualizer/renderer.rb', line 35 def self.render_terminal_summary(work_items, metrics, color, percentiles) bold, cyan, reset = Helpers.terminal_colors(color) out = [ "#{bold}Flow Metrics Summary#{reset}", '--------------------', Helpers.metric_lines(work_items, metrics), '' ] out += aging_summary_lines(metrics, "#{cyan}Aging WIP Summary:#{reset}", ' ') if metrics[:aging] out += [ "#{cyan}Cycle Time Percentiles:#{reset}", Helpers.percentile_lines(metrics, percentiles, prefix: ' '), '' ] out.join("\n") end |