Handel::Iterator(3)

NAME
Handel::Iterator - Iterator base class used for collection looping

SYNOPSIS
    my $iterator = Handel::Iterator::Custom->new({
        data         => [$object1, $object2, ...],
        result_class => 'MyResult',
        storage      => $storage
    });

    while (my $result = $iterator->next) {
        print $result->method;
    };

DESCRIPTION
Handel::Iterator is a base class used to create custom iterators for DBIx::Class resultsets and lists of results.

CONSTRUCTOR

  new

Arguments: \%options

Creates a new iterator object. The following options are available:

    my $iterator = Handel::Iterator::Custom->new({
        data         => [$object1, $object2, ...],
        result_class => 'MyResult',
        storage      => $storage
    });

    my $result = $iterator->first;
    print ref $result; # MyResult

data
    The data to be iterated through. The type of this data depends on the individual subclass.

result_class
    The name of the class that each result should be inflated into.

storage
    The storage object that was used to create the results.

METHODS

  all
Returns all results from current iterator.

    foreach my $result ($iterator->all) {
        print $result->method;
    };

  count
Returns the number of results in the current iterator.

    my $count = $iterator->count;

  create_result

Arguments: $result [, $storage]

Returns a new result class object based on the specified result and storage objects. If no storage object is specified, the storage object passed to "new" will be used instead.

This method is used by methods like "first" and "next" to to create storage result objects. There is probably no good reason to use this method directly.

  first
Returns the first result or undef if there are no results.

    my $first = $iterator->first;

  last
Returns the last result or undef if there are no results.

    my $last = $iterator->last;

  next
Returns the next result or undef if there are no results.

    while (my $result = $iterator->next) {
        print $result->method;
    };

  reset
Resets the current result position back to the first result.

    while (my $result = $iterator->next) {
        print $result->method;
    };

    $iterator->reset;

    while (my $result = $iterator->next) {
        print $result->method;
    };

SEE ALSO
Handel::Iterator::DBIC, Handel::Iterator::List

AUTHOR
    Christopher H. Laco
    CPAN ID: CLACO
    claco@chrislaco.com
    http://today.icantfocus.com/blog/