require 'mspec/runner/formatters/base'
class HtmlFormatter < BaseFormatter
def register
super
MSpec.register :start, self
MSpec.register :enter, self
MSpec.register :leave, self
end
def start
print <<-EOH
Spec Output For #{RUBY_ENGINE} (#{RUBY_VERSION})
EOH
end
def enter(describe)
print "#{describe}
\n
\n"
end
def leave
print "
\n
\n"
end
def exception(exception)
super(exception)
outcome = exception.failure? ? "FAILED" : "ERROR"
print %[- #{exception.it} (]
print %[#{outcome} - #{@count})\n]
end
def after(state = nil)
super(state)
print %[- #{state.it}\n] unless exception?
end
def finish
success = @exceptions.empty?
unless success
print "
\n"
print %[]
count = 0
@exceptions.each do |exc|
outcome = exc.failure? ? "FAILED" : "ERROR"
print %[\n#{escape(exc.description)} #{outcome}
\n]
print escape(exc.message)
print "
\n\n"
print escape(exc.backtrace)
print "
\n \n"
end
print "
\n"
end
print %[#{@timer.format}
\n]
print %[#{@tally.format}
\n]
print "\n\n"
end
def escape(string)
string.gsub("&", " ").gsub("<", "<").gsub(">", ">")
end
end