class TAPReporter < BaseReporter

defm on_start(stats)
end

defm on_spec_start(meta, stats)
end

defm on_spec_end(meta, stats)
end

defm on_spec_pass(meta, stats)
  name = meta.get_sentence()
  duration_msg = self.get_duration_msg(meta)
  preamble = self.get_preamble('ok', stats.get_count(), meta.get_context())
  self.writer.writeln("#{preamble} ##{name} #{duration_msg}")
  self.flush_log_buffer()
end

defm on_spec_failure(meta, err, stats)
  name = meta.get_sentence()
  preamble = self.get_preamble('not ok', stats.get_count(), meta.get_context())
  self.writer.writeln("#{preamble} ##{name} - #{err.get_message()}")
  self.print_stacktrace(err)
  self.flush_log_buffer()
end

defm on_spec_error(meta, err, stats)
  self.on_spec_failure(meta, err, stats)
end

defm on_spec_pending(meta, stats)
end

defm get_preamble(status, count, context)
  msg = "#{status} #{count} - #{context}"
  return msg
end

defm write_stacktrace_line(line)
  self.writer.writeln("  #{line}")
end

end