CatalystX::CRUD::Iterator(3)

NAME
CatalystX::CRUD::Iterator - generic iterator wrapper for CXCM iterator() results

SYNOPSIS
 package MyApp::Model::MyModel;
 use CatalystX::CRUD::Iterator;
 use MyModel;
 __PACKAGE__->config->{object_class} = 'MyModel::Object';

 sub iterator {
     my ($self, $query) = @_;

     my $iterator = MyModel->search_for_something;

     # $iterator must have a next() method

     return CatalystX::CRUD::Iterator->new(
                                        $iterator,
                                        $self->object_class
                                        );
 }

DESCRIPTION
CatalystX::CRUD::Iterator is a general iterator class that wraps a real iterator and blesses return results into a specified class. CatalystX::CRUD::Iterator is a glue that provides for a similar level of abstraction across all kinds of CXCM classes.

METHODS

  new( iterator, class_name )
Returns a CatalystX::CRUD::Iterator instance.

iterator must have a next() method and (optionally) a finish() method.

See next().

  next
Calls the next() method on the internal iterator object, stashing the result in an object returned by class_name->new under the method_name accessor.

  finish
If the internal iterator object has a finish() method, this will call and return it. Otherwise returns true (1).

  serialize
Returns array ref of all objects, having called serialize() on each one. Short-hand for:

 my $objects = [];
 while ( my $o = $iterator->next ) {
     push @$objects, $o->serialize();
 }

AUTHOR
Peter Karman, "<perl at peknet.com>"

BUGS
Please report any bugs or feature requests to "bug-catalystx-crud at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CatalystX-CRUD>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT
You can find documentation for this module with the perldoc command.

    perldoc CatalystX::CRUD

You can also look for information at:

•   Mailing List

    <https://groups.google.com/forum/#!forum/catalystxcrud>

•   AnnoCPAN: Annotated CPAN documentation

    <http://annocpan.org/dist/CatalystX-CRUD>

•   CPAN Ratings

    <http://cpanratings.perl.org/d/CatalystX-CRUD>

•   RT: CPAN's request tracker

    <http://rt.cpan.org/NoAuth/Bugs.html?Dist=CatalystX-CRUD>

•   Search CPAN

    <http://search.cpan.org/dist/CatalystX-CRUD>

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE
Copyright 2007 Peter Karman, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.