TAP::Parser::IteratorFactory man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

TAP::Parser::IteratorFUserrContributed Perl DocTAP::Parser::IteratorFactory(3)

NAME
       TAP::Parser::IteratorFactory - Figures out which SourceHandler objects
       to use for a given Source

VERSION
       Version 3.26

SYNOPSIS
	 use TAP::Parser::IteratorFactory;
	 my $factory = TAP::Parser::IteratorFactory->new({ %config });
	 my $iterator  = $factory->make_iterator( $filename );

DESCRIPTION
       This is a factory class that takes a the TAP::Parser::Source manpage
       and runs it through all the registered the TAP::Parser::SourceHandler
       manpages to see which one should handle the source.

       If you're a plugin author, you'll be interested in how to the regis‐
       ter_handler entry elsewhere in this documents, how the detect_source
       entry elsewhere in this document works.

METHODS
       Class Methods

       "new"

       Creates a new factory class:

	 my $sf = TAP::Parser::IteratorFactory->new( $config );

       "$config" is optional.  If given, sets the config entry elsewhere in
       this document and calls the load_handlers entry elsewhere in this docu‐
       ment.

       "register_handler"

       Registers a new the TAP::Parser::SourceHandler manpage with this fac‐
       tory.

	 __PACKAGE__->register_handler( $handler_class );

       "handlers"

       List of handlers that have been registered.

       Instance Methods

       "config"

	my $cfg = $sf->config;
	$sf->config({ Perl => { %config } });

       Chaining getter/setter for the configuration of the available source
       handlers.  This is a hashref keyed on handler class whose values con‐
       tain config to be passed onto the handlers during detection & creation.
       Class names may be fully qualified or abbreviated, eg:

	 # these are equivalent
	 $sf->config({ 'TAP::Parser::SourceHandler::Perl' => { %config } });
	 $sf->config({ 'Perl' => { %config } });

       "load_handlers"

	$sf->load_handlers;

       Loads the handler classes defined in the config entry elsewhere in this
       document.  For example, given a config:

	 $sf->config({
	   MySourceHandler => { some => 'config' },
	 });

       "load_handlers" will attempt to load the "MySourceHandler" class by
       looking in "@INC" for it in this order:

	 TAP::Parser::SourceHandler::MySourceHandler
	 MySourceHandler

       "croak"s on error.

       "make_iterator"

	 my $iterator = $src_factory->make_iterator( $source );

       Given a the TAP::Parser::Source manpage, finds the most suitable the
       TAP::Parser::SourceHandler manpage to use to create a the
       TAP::Parser::Iterator manpage (see the detect_source entry elsewhere in
       this document).	Dies on error.

       "detect_source"

       Given a the TAP::Parser::Source manpage, detects what kind of source it
       is and returns one the TAP::Parser::SourceHandler manpage (the most
       confident one).	Dies on error.

       The detection algorithm works something like this:

	 for (@registered_handlers) {
	   # ask them how confident they are about handling this source
	   $confidence{$handler} = $handler->can_handle( $source )
	 }
	 # choose the most confident handler

       Ties are handled by choosing the first handler.

SUBCLASSING
       Please see the SUBCLASSING entry in the TAP::Parser manpage for a sub‐
       classing overview.

       Example

       If we've done things right, you'll probably want to write a new source,
       rather than sub-classing this (see the TAP::Parser::SourceHandler man‐
       page for that).

       But in case you find the need to...

	 package MyIteratorFactory;

	 use strict;
	 use vars '@ISA';

	 use TAP::Parser::IteratorFactory;

	 @ISA = qw( TAP::Parser::IteratorFactory );

	 # override source detection algorithm
	 sub detect_source {
	   my ($self, $raw_source_ref, $meta) = @_;
	   # do detective work, using $meta and whatever else...
	 }

	 1;

AUTHORS
       Steve Purkis

ATTRIBUTION
       Originally ripped off from the Test::Harness manpage.

       Moved out of the TAP::Parser manpage & converted to a factory class to
       support extensible TAP source detective work by Steve Purkis.

SEE ALSO
       the TAP::Object manpage, the TAP::Parser manpage, the
       TAP::Parser::SourceHandler manpage, the TAP::Parser::SourceHan‐
       dler::File manpage, the TAP::Parser::SourceHandler::Perl manpage, the
       TAP::Parser::SourceHandler::RawTAP manpage, the TAP::Parser::SourceHan‐
       dler::Handle manpage, the TAP::Parser::SourceHandler::Executable man‐
       page

3rd Berkeley Distribution	  perl v5.6.1  TAP::Parser::IteratorFactory(3)
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net