Class: Chartspec::Printer
- Inherits:
-
Object
- Object
- Chartspec::Printer
- Includes:
- ERB::Util
- Defined in:
- lib/chartspec/printer.rb
Instance Method Summary collapse
- #flush ⇒ Object
-
#initialize(output) ⇒ Printer
constructor
A new instance of Printer.
- #print_chart_script(file, chart, data = {}) ⇒ Object
- #print_example_failed(example_id, filepath, description, run_time, error, backtrace, turnip = nil) ⇒ Object
- #print_example_passed(description, run_time, turnip = nil) ⇒ Object
- #print_example_pending(description, pending_message, turnip = nil) ⇒ Object
- #print_group_end ⇒ Object
- #print_group_start(group_id, chart, title, parents_count) ⇒ Object
- #print_html_end ⇒ Object
- #print_html_start ⇒ Object
Constructor Details
#initialize(output) ⇒ Printer
Returns a new instance of Printer.
7 8 9 10 |
# File 'lib/chartspec/printer.rb', line 7 def initialize(output) @output = output @assets_path = File.("../../../vendor/assets", __FILE__) end |
Instance Method Details
#flush ⇒ Object
17 18 19 |
# File 'lib/chartspec/printer.rb', line 17 def flush @output.flush end |
#print_chart_script(file, chart, data = {}) ⇒ Object
96 97 98 |
# File 'lib/chartspec/printer.rb', line 96 def print_chart_script file, chart, data = {} @output.puts "<script>draw_chart('#{chart}', #{data.values.to_json}, #{data.keys.to_json});</script>" end |
#print_example_failed(example_id, filepath, description, run_time, error, backtrace, turnip = nil) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/chartspec/printer.rb', line 53 def print_example_failed(example_id, filepath, description, run_time, error, backtrace, turnip = nil) formatted_run_time = "%.5f" % run_time @output.puts "<div><div class='pull-right'>#{formatted_run_time}s</div><div class='bg-danger' style='border-bottom: 1px dotted #cccccc;'> ! <b class='text-danger'>" if turnip line = backtrace.find do |bt| bt.match(/#{filepath}:(\d+)/) end @failed_line_number = Regexp.last_match[1].to_i if line @output.puts "<table class='table table-condensed'>" turnip[:steps].each do |step| style = case when step.line == @failed_line_number then 'danger' when step.line < (@failed_line_number || 0) then 'success' else 'text-muted' end @output.puts "<tr class='#{style}'><th>#{h step.keyword}#{h step.description}</th></tr>" end @output.puts "</table>" else @output.puts h(description) end @output.puts "</b></div><blockquote class='small'><div class='text-danger'>#{error}</div><a href='#backtrace_#{example_id}' class='show_backtrace'>Show backtrace</a><small id='backtrace_#{example_id}' class='hide'>" backtrace.each do |btl| @output.puts "#{h btl}<br />" end @output.puts "</small></blockquote>" end |
#print_example_passed(description, run_time, turnip = nil) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/chartspec/printer.rb', line 38 def print_example_passed(description, run_time, turnip = nil) formatted_run_time = "%.5f" % run_time @output.puts "<div><div class='pull-right'>#{formatted_run_time}s</div><div class='text-success' style='border-bottom: 1px dotted #cccccc;'>✓ <b class='text-success'>" if turnip @output.puts "<table class='table table-condensed'>" turnip[:steps].each do |step| @output.puts "<tr class='success'><th>#{h step.keyword}#{h step.description}<th></tr>" end @output.puts "</table>" else @output.puts h(description) end @output.puts "</b></div></div>" end |
#print_example_pending(description, pending_message, turnip = nil) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/chartspec/printer.rb', line 82 def print_example_pending(description, , turnip = nil) @output.puts "<div><div class='pull-right'>(PENDING: #{h()})</div><div class='bg-warning' style='border-bottom: 1px dotted #cccccc;'> * <b class='text-warning'>" if turnip @output.puts "<table class='table table-condensed'>" turnip[:steps].each do |step| @output.puts "<tr class='warning'><th>#{h step.keyword}#{h step.description}</th></tr>" end @output.puts "</table>" else @output.puts h(description) end @output.puts "</b></div></div>" end |
#print_group_end ⇒ Object
34 35 36 |
# File 'lib/chartspec/printer.rb', line 34 def print_group_end @output.puts "</div></li></ul>" end |
#print_group_start(group_id, chart, title, parents_count) ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/chartspec/printer.rb', line 25 def print_group_start(group_id, chart, title, parents_count) @output.puts "<ul id='group_#{group_id}' class='media-list'><li class='media'>" parents_count.times do @output.puts "<span class='media-left'> </span>" end @output.puts "<div class='media-body' style='width:100%;'><h4 class='media-heading'>#{title}</h4>" @output.puts "<div class='thumbnail hide'><div id='chart_#{group_id}' data-chart='#{chart}' style='height:100px; width:100%;'></div></div>" end |
#print_html_end ⇒ Object
21 22 23 |
# File 'lib/chartspec/printer.rb', line 21 def print_html_end @output.puts "</div></body></html>" end |
#print_html_start ⇒ Object
12 13 14 15 |
# File 'lib/chartspec/printer.rb', line 12 def print_html_start chartspec_header = ERB.new File.new(File.("../../../templates/chartspec.html.erb", __FILE__)).read @output.puts chartspec_header.result(binding) end |