use TAP::Parser::IteratorFactory; my $factory = TAP::Parser::IteratorFactory->new; my $iter = $factory->make_iterator(\*TEST); my $iter = $factory->make_iterator(\@array); my $iter = $factory->make_iterator(\%hash); my $line = $iter->next;
Creates a new factory class. Note: You currently don't need to instantiate a factory in order to use it.
Create an iterator. The type of iterator created depends on the arguments to the constructor:
my $iter = TAP::Parser::Iterator->make_iterator( $filehandle );
Creates a stream iterator (see ``make_stream_iterator'').
my $iter = TAP::Parser::Iterator->make_iterator( $array_reference );
Creates an array iterator (see ``make_array_iterator'').
my $iter = TAP::Parser::Iterator->make_iterator( $hash_reference );
Creates a process iterator (see ``make_process_iterator'').
Make a new stream iterator and return it. Passes through any arguments given. Defaults to a TAP::Parser::Iterator::Stream.
Make a new array iterator and return it. Passes through any arguments given. Defaults to a TAP::Parser::Iterator::Array.
Make a new process iterator and return it. Passes through any arguments given. Defaults to a TAP::Parser::Iterator::Process.
There are a few things to bear in mind when creating your own "ResultFactory":
package MyIteratorFactory;
use strict;
use vars '@ISA';
use MyStreamIterator;
use TAP::Parser::IteratorFactory;
@ISA = qw( TAP::Parser::IteratorFactory );
# override stream iterator
sub make_stream_iterator {
my $proto = shift;
MyStreamIterator->new(@_);
}
1;