DBIx-Squirrel
view release on metacpan or search on metacpan
lib/DBIx/Squirrel/it.pm view on Meta::CPAN
=head1 DESCRIPTION
This module provides a base class for statement iterators. It is usable as
is, but is also subclassed by the L<DBIx::Squirrel::rs> (Results) class.
=cut
use Exporter ();
use Scalar::Util qw(
looks_like_number
weaken
);
use Sub::Name 'subname';
use DBIx::Squirrel::util qw(
cluckf
confessf
callbacks_args
);
use namespace::clean;
use constant E_BAD_STH => 'Expected a statement handle object';
lib/DBIx/Squirrel/rs.pm view on Meta::CPAN
it also abstracts away the implementation details of the underlying
statement results. Results are returned as objects of a class that is
dynamically created for each statement results iterator, and column
data is accessed via accessor methods that are also dynamically
created. Thus, the user need not be concerned with whether the
underlying statement results are arrayrefs or hashrefs, or even
what case is used for the column names.
=cut
use Scalar::Util 'weaken';
use Sub::Name 'subname';
use namespace::clean;
BEGIN {
require DBIx::Squirrel
unless keys %DBIx::Squirrel::;
*DBIx::Squirrel::rs::VERSION = *DBIx::Squirrel::VERSION;
@DBIx::Squirrel::rs::ISA = 'DBIx::Squirrel::it';
}
lib/DBIx/Squirrel/rs.pm view on Meta::CPAN
my $results_fn = $row_class . '::results';
no strict 'refs'; ## no critic
unless ( defined &{$results_fn} ) {
my $resultset_fn = $row_class . '::resultset';
my $rset_fn = $row_class . '::rset';
my $rs_fn = $row_class . '::rs';
undef &{$resultset_fn};
undef &{$rset_fn};
undef &{$rs_fn};
*{$resultset_fn} = *{$results_fn} = *{$rset_fn} = *{$rs_fn} = do {
weaken( my $results = $self );
subname( $results_fn => sub { $results } );
};
@{ $row_class . '::ISA' } = ( $self->result_class );
}
return $row_class->new(shift);
}
sub result_class {
return 'DBIx::Squirrel::rc';
}
( run in 1.418 second using v1.01-cache-2.11-cpan-65fba6d93b7 )