```{index} single: TAP::Parser::SourceHandler::File ``` # TAP::Parser::SourceHandler::File Stream TAP from a text file. ## VERSION Version 3.52 ## SYNOPSIS ```perl use TAP::Parser::Source; use TAP::Parser::SourceHandler::File; my $source = TAP::Parser::Source->new->raw( \'file.tap' ); $source->assemble_meta; my $class = 'TAP::Parser::SourceHandler::File'; my $vote = $class->can_handle( $source ); my $iter = $class->make_iterator( $source ); ``` ## DESCRIPTION This is a _raw TAP stored in a file_ [TAP::Parser::SourceHandler](../SourceHandler.md) - it has 2 jobs: 1\. Figure out if the _raw_ source it's given is a file containing raw TAP output. See [TAP::Parser::IteratorFactory](../IteratorFactory.md) for more details. 2\. Takes raw TAP from the text file given, and converts into an iterator. Unless you're writing a plugin or subclassing [TAP::Parser](../../Parser.md), you probably won't need to use this module directly. ## METHODS ### Class Methods #### `can_handle` ```perl my $vote = $class->can_handle( $source ); ``` Only votes if $source looks like a regular file. Casts the following votes: ```text 0.9 if it's a .tap file 0.9 if it has an extension matching any given in user config. ``` #### `make_iterator` ```perl my $iterator = $class->make_iterator( $source ); ``` Returns a new [TAP::Parser::Iterator::Stream](../Iterator/Stream.md) for the source. `croak`s on error. #### `iterator_class` The class of iterator to use, override if you're sub-classing. Defaults to [TAP::Parser::Iterator::Stream](../Iterator/Stream.md). ## CONFIGURATION ```perl { extensions => [ @case_insensitive_exts_to_match ] } ``` ## SUBCLASSING Please see ["SUBCLASSING" in TAP::Parser](../../Parser.md) for a subclassing overview. ## SEE ALSO [TAP::Object](../../Object.md), [TAP::Parser](../../Parser.md), [TAP::Parser::SourceHandler](../SourceHandler.md), [TAP::Parser::SourceHandler::Executable](Executable.md), [TAP::Parser::SourceHandler::Perl](Perl.md), [TAP::Parser::SourceHandler::Handle](Handle.md), [TAP::Parser::SourceHandler::RawTAP](RawTAP.md)