"Fossies" - the Fresh Open Source Software Archive

Member "install-tl-20200916/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm" (10 Mar 2019, 1696 Bytes) of package /windows/misc/install-tl.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Perl source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 package TAP::Parser::Iterator::Array;
    2 
    3 use strict;
    4 use warnings;
    5 
    6 use base 'TAP::Parser::Iterator';
    7 
    8 =head1 NAME
    9 
   10 TAP::Parser::Iterator::Array - Iterator for array-based TAP sources
   11 
   12 =head1 VERSION
   13 
   14 Version 3.42
   15 
   16 =cut
   17 
   18 our $VERSION = '3.42';
   19 
   20 =head1 SYNOPSIS
   21 
   22   use TAP::Parser::Iterator::Array;
   23   my @data = ('foo', 'bar', baz');
   24   my $it   = TAP::Parser::Iterator::Array->new(\@data);
   25   my $line = $it->next;
   26 
   27 =head1 DESCRIPTION
   28 
   29 This is a simple iterator wrapper for arrays of scalar content, used by
   30 L<TAP::Parser>.  Unless you're writing a plugin or subclassing, you probably
   31 won't need to use this module directly.
   32 
   33 =head1 METHODS
   34 
   35 =head2 Class Methods
   36 
   37 =head3 C<new>
   38 
   39 Create an iterator.  Takes one argument: an C<$array_ref>
   40 
   41 =head2 Instance Methods
   42 
   43 =head3 C<next>
   44 
   45 Iterate through it, of course.
   46 
   47 =head3 C<next_raw>
   48 
   49 Iterate raw input without applying any fixes for quirky input syntax.
   50 
   51 =head3 C<wait>
   52 
   53 Get the wait status for this iterator. For an array iterator this will always
   54 be zero.
   55 
   56 =head3 C<exit>
   57 
   58 Get the exit status for this iterator. For an array iterator this will always
   59 be zero.
   60 
   61 =cut
   62 
   63 # new() implementation supplied by TAP::Object
   64 
   65 sub _initialize {
   66     my ( $self, $thing ) = @_;
   67     chomp @$thing;
   68     $self->{idx}   = 0;
   69     $self->{array} = $thing;
   70     $self->{exit}  = undef;
   71     return $self;
   72 }
   73 
   74 sub wait { shift->exit }
   75 
   76 sub exit {
   77     my $self = shift;
   78     return 0 if $self->{idx} >= @{ $self->{array} };
   79     return;
   80 }
   81 
   82 sub next_raw {
   83     my $self = shift;
   84     return $self->{array}->[ $self->{idx}++ ];
   85 }
   86 
   87 1;
   88 
   89 =head1 ATTRIBUTION
   90 
   91 Originally ripped off from L<Test::Harness>.
   92 
   93 =head1 SEE ALSO
   94 
   95 L<TAP::Object>,
   96 L<TAP::Parser>,
   97 L<TAP::Parser::Iterator>,
   98 
   99 =cut
  100