Modules

  • ABCDE
  • FGHIL
  • MNOPS
  • TUX

Tools

TAP::Parser::Source

Perl 5 version 10.1 documentation
Recently read

TAP::Parser::Source

NAME

TAP::Parser::Source - Stream output from some source

VERSION

Version 3.17

SYNOPSIS

  1. use TAP::Parser::Source;
  2. my $source = TAP::Parser::Source->new;
  3. my $stream = $source->source(['/usr/bin/ruby', 'mytest.rb'])->get_stream;

DESCRIPTION

Takes a command and hopefully returns a stream from it.

METHODS

Class Methods

new

  1. my $source = TAP::Parser::Source->new;

Returns a new TAP::Parser::Source object.

Instance Methods

source

  1. my $source = $source->source;
  2. $source->source(['./some_prog some_test_file']);
  3. # or
  4. $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

  1. 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

  1. my $merge = $source->merge;

Sets or returns the flag that dictates whether STDOUT and STDERR are merged.

SUBCLASSING

Please see SUBCLASSING in TAP::Parser for a subclassing overview.

Example

  1. package MyRubySource;
  2. use strict;
  3. use vars '@ISA';
  4. use Carp qw( croak );
  5. use TAP::Parser::Source;
  6. @ISA = qw( TAP::Parser::Source );
  7. # expect $source->(['mytest.rb', 'cmdline', 'args']);
  8. sub source {
  9. my ($self, $args) = @_;
  10. my ($rb_file) = @$args;
  11. croak("error: Ruby file '$rb_file' not found!") unless (-f $rb_file);
  12. return $self->SUPER::source(['/usr/bin/ruby', @$args]);
  13. }

SEE ALSO

TAP::Object, TAP::Parser, TAP::Parser::Source::Perl,