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