File Coverage

blib/lib/DBIx/Class/Cursor.pm
Criterion Covered Total %
statement 16 19 84.2
branch n/a
condition n/a
subroutine 4 7 57.1
pod 4 4 100.0
total 24 30 80.0


line stmt bran cond sub pod time code
1             package DBIx::Class::Cursor;
2              
3 149     149   40867 use strict;
  149         390  
  149         4402  
4 149     149   804 use warnings;
  149         333  
  149         4313  
5              
6 149     149   817 use base qw/DBIx::Class/;
  149         376  
  149         43474  
7              
8             =head1 NAME
9              
10             DBIx::Class::Cursor - Abstract object representing a query cursor on a
11             resultset.
12              
13             =head1 SYNOPSIS
14              
15             my $cursor = $schema->resultset('CD')->cursor();
16              
17             # raw values off the database handle in resultset columns/select order
18             my @next_cd_column_values = $cursor->next;
19              
20             # list of all raw values as arrayrefs
21             my @all_cds_column_values = $cursor->all;
22              
23             =head1 DESCRIPTION
24              
25             A Cursor represents a query cursor on a L<DBIx::Class::ResultSet> object. It
26             allows for traversing the result set with L</next>, retrieving all results with
27             L</all> and resetting the cursor with L</reset>.
28              
29             Usually, you would use the cursor methods built into L<DBIx::Class::ResultSet>
30             to traverse it. See L<DBIx::Class::ResultSet/next>,
31             L<DBIx::Class::ResultSet/reset> and L<DBIx::Class::ResultSet/all> for more
32             information.
33              
34             =head1 METHODS
35              
36             =head2 new
37              
38             Virtual method. Returns a new L<DBIx::Class::Cursor> object.
39              
40             =cut
41              
42             sub new {
43 0     0 1 0 die "Virtual method!";
44             }
45              
46             =head2 next
47              
48             Virtual method. Advances the cursor to the next row. Returns an array of
49             column values (the result of L<DBI/fetchrow_array> method).
50              
51             =cut
52              
53             sub next {
54 0     0 1 0 die "Virtual method!";
55             }
56              
57             =head2 reset
58              
59             Virtual method. Resets the cursor to the beginning.
60              
61             =cut
62              
63             sub reset {
64 0     0 1 0 die "Virtual method!";
65             }
66              
67             =head2 all
68              
69             Virtual method. Returns all rows in the L<DBIx::Class::ResultSet>.
70              
71             =cut
72              
73             sub all {
74 1     1 1 23 my ($self) = @_;
75 1         4 $self->reset;
76 1         2 my @all;
77 1         4 while (my @row = $self->next) {
78 2         7 push(@all, \@row);
79             }
80 1         5 $self->reset;
81 1         4 return @all;
82             }
83              
84             =head1 FURTHER QUESTIONS?
85              
86             Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>.
87              
88             =head1 COPYRIGHT AND LICENSE
89              
90             This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE>
91             by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can
92             redistribute it and/or modify it under the same terms as the
93             L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>.
94              
95             =cut
96              
97             1;