TAP::Pa...cutable(3pm)
πΈ NAME πΈ
TAP::Parser::SourceHandler::Executable β Stream output from an executable TAP source π
this is the TAP::Pa...cutable(3pm) page from the Perl Programmers Reference Guide, and it's literally all about handling an executable TAP source, bestie. no cap.
β¨ VERSION β¨
Version 3.50 β yes ma'am, that's the version, and it's giving official. π
π SYNOPSIS π
use TAP::Parser::Source;
use TAP::Parser::SourceHandler::Executable;
my $source = TAP::Parser::Source->new->raw(['/usr/bin/ruby', 'mytest.rb']);
$source->assemble_meta;
my $class = 'TAP::Parser::SourceHandler::Executable';
my $vote = $class->can_handle( $source );
my $iter = $class->make_iterator( $source );
π DESCRIPTION π
This is an executable TAP::Parser::SourceHandler β it has 2 jobs:
- Figure out if the
TAP::Parser::Sourceit's given is an executable command (can_handle). - Creates an iterator for executable commands (
make_iterator).
Unless you're writing a plugin or subclassing TAP::Parser, you probably won't need to use this module directly. lowkey, this one's for the plugin girlies. π«Ά
π οΈ METHODS π οΈ
π Class Methods π
π
can_handle π
my $vote = $class->can_handle( $source );
Only votes if $source looks like an executable file. Casts the following votes:
0.9β if it's a hash with an'exec'key0.8β if it's a.batfile0.75β if it's got an execute bit set
π₯ make_iterator π₯
my $iterator = $class->make_iterator( $source );
Returns a new TAP::Parser::Iterator::Process for the source. $source->raw must be in one of the following forms:
{ exec => [ @exec ] }
[ @exec ]
$file
it "croak"s on error. π
π¦ iterator_class π¦
The class of iterator to use, override if you're sub-classing. Defaults to TAP::Parser::Iterator::Process. π
π§΅ SUBCLASSING π§΅
Please see "SUBCLASSING" in TAP::Parser for a subclassing overview. π
π» Example π»
package MyRubySourceHandler;
use strict;
use Carp qw( croak );
use TAP::Parser::SourceHandler::Executable;
use base 'TAP::Parser::SourceHandler::Executable';
# expect $handler->(['mytest.rb', 'cmdline', 'args']);
sub make_iterator {
my ($self, $source) = @_;
my @test_args = @{ $source->test_args };
my $rb_file = $test_args[0];
croak("error: Ruby file '$rb_file' not found!") unless (-f $rb_file);
return $self->SUPER::raw_source(['/usr/bin/ruby', @test_args]);
}
π SEE ALSO π
TAP::ObjectTAP::ParserTAP::Parser::IteratorFactoryTAP::Parser::SourceHandlerTAP::Parser::SourceHandler::PerlTAP::Parser::SourceHandler::FileTAP::Parser::SourceHandler::HandleTAP::Parser::SourceHandler::RawTAP
that's the whole page, bestie! π this one is from perl v5.42.3, dated 2026-11-03, and the footer says TAP::Pa...cutable(3pm). go off, icon. ππ
π¦ where this page comes from
- alpine 3.24: perl-doc 5.42.3-r0 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms