1 More Discussions You Might Find Interesting
1. Tips and Tutorials
Introduction
Originally, we only had one shell on unix. When ran a command, the shell would attempt to invoke one of the exec() system calls on it. It the command was an executable, the exec would succeed and the command would run. If the exec() failed, the shell would not give up, instead it... (3 Replies)
Discussion started by: Perderabo
3 Replies
LEARN ABOUT SUSE
tap::parser::source
TAP::Parser::Source(3pm) Perl Programmers Reference Guide TAP::Parser::Source(3pm)
NAME
TAP::Parser::Source - Stream output from some source
VERSION
Version 3.17
SYNOPSIS
use TAP::Parser::Source;
my $source = TAP::Parser::Source->new;
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"
my $source = TAP::Parser::Source->new;
Returns a new "TAP::Parser::Source" object.
Instance Methods
"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.
SUBCLASSING
Please see "SUBCLASSING" in TAP::Parser for a subclassing overview.
Example
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]);
}
SEE ALSO
TAP::Object, TAP::Parser, TAP::Parser::Source::Perl,
perl v5.12.1 2010-04-26 TAP::Parser::Source(3pm)