Class::DBI::Lite::Iterator - Simple iterator for Class::DBI::Lite


Class-DBI-Lite documentation Contained in the Class-DBI-Lite distribution.

Index


Code Index:

NAME

Top

Class::DBI::Lite::Iterator - Simple iterator for Class::DBI::Lite

SYNOPSIS

Top

  # Get an iterator somehow:
  my $iter = app::artist->retrieve_all;

  my $artist = $iter->first;

  my $record_count = $iter->count;

  while( my $artist = $iter->next )
  {
    ...
  }# end while()

  # We can reset the iterator to go back to the beginning:
  $iter->reset;
  print $_->id . "\n" while $_ = $iter->next;

DESCRIPTION

Top

Provides a simple iterator-based approach to Class::DBI::Lite resultsets.

PUBLIC PROPERTIES

Top

count

Returns the number of records in the Iterator.

PUBLIC METHODS

Top

next

Returns the next object in the series, or undef.

Moves the internal cursor to the next object if one exists.

reset

Resets the internal cursor to the first object if one exists.

SEE ALSO

Top

Class::DBI:Lite

AUTHOR

Top

John Drago <jdrago_999@yahoo.com>.

LICENSE AND COPYRIGHT

Top


Class-DBI-Lite documentation Contained in the Class-DBI-Lite distribution.

package Class::DBI::Lite::Iterator;

use strict;
use warnings 'all';


sub new
{
  my ($class, $data) = @_;
  
  my $s = bless {
    data  => $data,
    count => scalar(@$data),
    idx   => 0
  }, $class;
  $s->init();
  
  return $s;
}# end new()


sub init { }


sub first
{
  return unless $_[0]->{data}->[0];
  $_[0]->{data}->[0];
}# end first()


sub next
{
  my $s = shift;
  return unless $s->{idx} < $s->{count};
  $s->{data}->[ $s->{idx}++ ];
}# end next()


sub count
{
  $_[0]->{count};
}# end count()


sub reset
{
  $_[0]->{idx} = 0;
}# end reset()

1;# return true: