NAME

TB2::Streamer - Role to output formatted test results

SYNOPSIS

package My::Streamer;

sub write {
    my($self, $destination, @text) = @_;

    if( $destination eq 'output' ) {
        print STDOUT @text;
    }
    elsif( $destination eq 'error' ) {
        print STDERR @text;
    }
    else {
        croak "I don't know how to stream to $destination";
    }
}

DESCRIPTION

A streamer object is used to output formatted test results (or really any text). You can use it to just spit stuff to STDOUT and STDERR, trap stuff for debugging, or... uhh... something else.

TB2::Streamer is just a role, you must write your own streamer or use one of the existing ones (see "SEE ALSO").

Required Methods

You are only required to write a single method:

write

$self->write( $destination => @output );

This method accepts @output and streams it to the given $destination.

The $destination has meaning specific to the Streamer.

It must throw an exception if it fails.

SEE ALSO

TB2::Streamer::Print Print to a configurable output filehandle

TB2::Streamer::TAP A streamer for the special needs of TAP

TB2::Streamer::Debug Captures all output, useful for debugging.