class DotMatrixReporter < BaseReporter
def initialize super self.dots = 0 self.line_buffer = [] self.log_messages = [] end defm write(msg) if self.dots > 50 self.writer.writeln(msg) self.dots = 0 else self.writer.write(msg) end end defm on_spec_pass(meta, stats) self.dots += 1 self.write('.') end defm on_spec_failure(meta, err, stats) self.dots += 1 self.write(self.to_red("x")) name = meta.get_sentence() context = meta.get_context() add(self.line_buffer, self.to_red("#{context} ##{name}")) add(self.line_buffer, self.to_red(" #{err.get_message()}")) self.print_stacktrace(err) add(self.line_buffer, '') end defm on_spec_error(meta, err, stats) self.on_spec_failure(meta, err, stats) end defm write_epilogue_separator self.flush_log_buffer() self.writer.writeln('') for line in self.line_buffer self.writer.writeln(line) end self.writer.writeln("") end defm write_stacktrace_line(line) add(self.line_buffer, " #{line}") end
end