def build_exception_detail(exception)
backtrace = Array.new
@builder.div(:class => 'message') do
message = exception.message
if defined?(RAILS_ROOT) && message.include?('Exception caught')
matches = message.match(/Showing <i>(.+)<\/i>(?:.+) #(\d+)/)
backtrace += ["#{RAILS_ROOT}/#{matches[1]}:#{matches[2]}"] if matches
message = message.match(/<code>([^(\/)]+)<\//m)[1]
end
@builder.pre do
@builder.text!(message)
end
end
@builder.div(:class => 'backtrace') do
@builder.pre do
backtrace = exception.backtrace
backtrace.delete_if { |x| x =~ /\/gems\/(cucumber|rspec)/ }
@builder << backtrace_line(backtrace.join("\n"))
end
end
extra = extra_failure_content(backtrace)
@builder << extra unless extra == ""
end