X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCursor.pm;h=d79bd12f9473ca2f9abfe8297b3fb5507a5793d7;hb=91fa659e479fec2f148dad9084b14017915cc553;hp=d492ebb57fb6de049a5b1a5e72bec057ff5b2b91;hpb=1923c0b4b27dfc62e61cc02b6391e4d37349bcfb;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/Cursor.pm b/lib/DBIx/Class/Cursor.pm index d492ebb..d79bd12 100644 --- a/lib/DBIx/Class/Cursor.pm +++ b/lib/DBIx/Class/Cursor.pm @@ -2,52 +2,28 @@ package DBIx::Class::Cursor; use strict; use warnings; -use overload - '0+' => 'count', - fallback => 1; sub new { - my ($it_class, $db_class, $sth, $args, $cols) = @_; - $sth->execute(@{$args || []}) unless $sth->{Active}; - my $new = { - class => $db_class, - sth => $sth, - cols => $cols, - args => $args }; - return bless ($new, $it_class); + die "Virtual method!"; } sub next { - my ($self) = @_; - my @row = $self->{sth}->fetchrow_array; - return unless @row; - #unless (@row) { $self->{sth}->finish; return; } - return $self->{class}->_row_to_object($self->{cols}, \@row); + die "Virtual method!"; } -sub count { - return scalar $_[0]->all; # So inefficient +sub reset { + die "Virtual method!"; } sub all { my ($self) = @_; $self->reset; my @all; - while (my $obj = $self->next) { - push(@all, $obj); + while (my @row = $self->next) { + push(@all, \@row); } $self->reset; return @all; } -sub reset { - $_[0]->{sth}->finish if $_[0]->{sth}->{Active}; - $_[0]->{sth}->execute(@{$_[0]->{args} || []}); - return $_[0]; -} - -sub first { - return $_[0]->reset->next; -} - 1;