require "erb" module Relevance::Tarantula::HtmlReportHelper include ERB::Util include Relevance::Tarantula def wrap_in_line_number_table(text, &blk) x = Builder::XmlMarkup.new x.table(:class => "grid tablesorter") do x.thead do x.tr do x.th(:class => "sort asc") do x.span("Line \#") x.span(:class => "sort") do x.em do x << '↥' end end end x.th(:class => "sort left") do x.span("Line") x.span(:class => "sort") do x.em do x << '↥' end end end end end text.split("\n").each_with_index do |line, index| x.tr do x.td(index+1) if block_given? x.td {x << yield(line)} else x.td(line) end end end end x.target! end def textmate_url(file, line_no) "txmt://open?url=file://#{File.expand_path(File.join(rails_root,file))}&line_no=#{line_no}" end def wrap_stack_trace_line(text) if text =~ %r{^\s*(/[^:]+):(\d+):([^:]+)$} file = h($1) # .to_s_xss_protected line_number = $2 message = h($3) # .to_s_xss_protected "#{file}:#{line_number}:#{message}" # .mark_as_xss_protected else h(text) # .to_s_xss_protected end end end