TAP::Parser::Iterator::Array - Iterator for array-based TAP sources


Test-Harness documentation Contained in the Test-Harness distribution.

Index


Code Index:

NAME

Top

TAP::Parser::Iterator::Array - Iterator for array-based TAP sources

VERSION

Top

Version 3.23

SYNOPSIS

Top

  use TAP::Parser::Iterator::Array;
  my @data = ('foo', 'bar', baz');
  my $it   = TAP::Parser::Iterator::Array->new(\@data);
  my $line = $it->next;

DESCRIPTION

Top

This is a simple iterator wrapper for arrays of scalar content, used by TAP::Parser. Unless you're writing a plugin or subclassing, you probably won't need to use this module directly.

METHODS

Top

Class Methods

new

Create an iterator. Takes one argument: an $array_ref

Instance Methods

next

Iterate through it, of course.

next_raw

Iterate raw input without applying any fixes for quirky input syntax.

wait

Get the wait status for this iterator. For an array iterator this will always be zero.

exit

Get the exit status for this iterator. For an array iterator this will always be zero.

ATTRIBUTION

Top

Originally ripped off from Test::Harness.

SEE ALSO

Top

TAP::Object, TAP::Parser, TAP::Parser::Iterator,


Test-Harness documentation Contained in the Test-Harness distribution.
package TAP::Parser::Iterator::Array;

use strict;
use vars qw($VERSION @ISA);

use TAP::Parser::Iterator ();

@ISA = 'TAP::Parser::Iterator';

$VERSION = '3.23';

# new() implementation supplied by TAP::Object

sub _initialize {
    my ( $self, $thing ) = @_;
    chomp @$thing;
    $self->{idx}   = 0;
    $self->{array} = $thing;
    $self->{exit}  = undef;
    return $self;
}

sub wait { shift->exit }

sub exit {
    my $self = shift;
    return 0 if $self->{idx} >= @{ $self->{array} };
    return;
}

sub next_raw {
    my $self = shift;
    return $self->{array}->[ $self->{idx}++ ];
}

1;