1# subclass for testing customizing & subclassing 2 3package MySourceHandler; 4 5use strict; 6use warnings; 7 8use MyIterator; 9use TAP::Parser::SourceHandler; 10use TAP::Parser::IteratorFactory; 11 12#use base qw( TAP::Parser::SourceHandler MyCustom ); 13use base qw( MyCustom ); 14 15TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); 16 17sub can_handle { 18 my ( $class, $source ) = @_; 19 my $meta = $source->meta; 20 my $config = $source->config_for($class); 21 22 if ( $config->{accept_all} ) { 23 return 1; 24 } 25 elsif ( my $accept = $config->{accept} ) { 26 return 0 unless $meta->{is_scalar}; 27 return 1 if ${ $source->raw } eq $accept; 28 } 29 return 0; 30} 31 32sub make_iterator { 33 my ( $class, $source ) = @_; 34 $class->custom; 35 return MyIterator->new( [ $source->raw ] ); 36} 37 381; 39