1898184e3Ssthen# subclass for testing customizing & subclassing 2898184e3Ssthen 3898184e3Ssthenpackage MySourceHandler; 4898184e3Ssthen 5898184e3Ssthenuse strict; 6*6fb12b70Safresh1use warnings; 7898184e3Ssthen 8898184e3Ssthenuse MyIterator; 9898184e3Ssthenuse TAP::Parser::SourceHandler; 10898184e3Ssthenuse TAP::Parser::IteratorFactory; 11898184e3Ssthen 12*6fb12b70Safresh1#use base qw( TAP::Parser::SourceHandler MyCustom ); 13*6fb12b70Safresh1use base qw( MyCustom ); 14898184e3Ssthen 15898184e3SsthenTAP::Parser::IteratorFactory->register_handler(__PACKAGE__); 16898184e3Ssthen 17898184e3Ssthensub can_handle { 18898184e3Ssthen my ( $class, $source ) = @_; 19898184e3Ssthen my $meta = $source->meta; 20898184e3Ssthen my $config = $source->config_for($class); 21898184e3Ssthen 22898184e3Ssthen if ( $config->{accept_all} ) { 23898184e3Ssthen return 1; 24898184e3Ssthen } 25898184e3Ssthen elsif ( my $accept = $config->{accept} ) { 26898184e3Ssthen return 0 unless $meta->{is_scalar}; 27898184e3Ssthen return 1 if ${ $source->raw } eq $accept; 28898184e3Ssthen } 29898184e3Ssthen return 0; 30898184e3Ssthen} 31898184e3Ssthen 32898184e3Ssthensub make_iterator { 33898184e3Ssthen my ( $class, $source ) = @_; 34898184e3Ssthen $class->custom; 35898184e3Ssthen return MyIterator->new( [ $source->raw ] ); 36898184e3Ssthen} 37898184e3Ssthen 38898184e3Ssthen1; 39