TAP::Parser::Source - Stream output from some source
Version 3.17
Takes a command and hopefully returns a stream from it.
new
- my $source = TAP::Parser::Source->new;
Returns a new TAP::Parser::Source
object.
source
- my $source = $source->source;
- $source->source(['./some_prog some_test_file']);
- # or
- $source->source(['/usr/bin/ruby', 't/ruby_test.rb']);
Getter/setter for the source. The source should generally consist of an array
reference of strings which, when executed via &IPC::Open3::open3,
should return a filehandle which returns successive rows of TAP. croaks
if
it doesn't get an arrayref.
get_stream
- my $stream = $source->get_stream;
Returns a TAP::Parser::Iterator stream of the output generated by executing
source
. croak
s if there was no command found.
Must be passed an object that implements a make_iterator
method.
Typically this is a TAP::Parser instance.
merge
- my $merge = $source->merge;
Sets or returns the flag that dictates whether STDOUT and STDERR are merged.
Please see SUBCLASSING in TAP::Parser for a subclassing overview.
- package MyRubySource;
- use strict;
- use vars '@ISA';
- use Carp qw( croak );
- use TAP::Parser::Source;
- @ISA = qw( TAP::Parser::Source );
- # expect $source->(['mytest.rb', 'cmdline', 'args']);
- sub source {
- my ($self, $args) = @_;
- my ($rb_file) = @$args;
- croak("error: Ruby file '$rb_file' not found!") unless (-f $rb_file);
- return $self->SUPER::source(['/usr/bin/ruby', @$args]);
- }