Alzabo
view release on metacpan or search on metacpan
lib/Alzabo/Driver.pm view on Meta::CPAN
}
sub available { __PACKAGE__->subclasses }
sub _ensure_valid_dbh
{
my $self = shift;
unless ( $self->{dbh} )
{
my $sub = (caller(1))[3];
Alzabo::Exception::Driver->throw( error => "Cannot call $sub before calling connect." );
}
$self->{dbh} = $self->_dbi_connect( $self->{connect_params} )
if $$ != $self->{connect_pid};
}
sub quote
{
my $self = shift;
lib/Alzabo/Driver.pm view on Meta::CPAN
$self->{dbh}->{AutoCommit} = 1;
}
sub commit
{
my $self = shift;
$self->_ensure_valid_dbh;
my $callee = (caller(1))[3];
# More commits than begin_tran. Not correct.
if ( defined $self->{tran_count} )
{
$self->{tran_count}--;
}
else
{
my $caller = (caller(1))[3];
require Carp;
Carp::cluck( "$caller called commit without corresponding begin_work call\n" );
}
# Don't actually commit until we reach 'uber-commit'
return if $self->{tran_count};
unless ( $self->{dbh}->{AutoCommit} )
{
$self->{dbh}->commit;
lib/Alzabo/Driver.pm view on Meta::CPAN
sub driver_id
{
shift()->_virtual;
}
sub _virtual
{
my $self = shift;
my $sub = (caller(1))[3];
Alzabo::Exception::VirtualMethod->throw( error =>
"$sub is a virtual method and must be subclassed in " . ref $self );
}
package Alzabo::DriverStatement;
use strict;
use vars qw($VERSION);
use Alzabo::Exceptions;
lib/Alzabo/MethodMaker.pm view on Meta::CPAN
my $class_root;
if ( $p{class_root} )
{
$class_root = $p{class_root};
}
else
{
my $x = 0;
do
{
$class_root = caller($x++);
die "No base class could be determined\n" unless $class_root;
} while ( $class_root->isa(__PACKAGE__) );
}
my $self;
$p{name_maker} = sub { $self->name(@_) } unless ref $p{name_maker};
$self = bless { opts => \%p,
class_root => $class_root,
lib/Alzabo/RDBMSRules.pm view on Meta::CPAN
}
return @sql;
}
sub _virtual
{
my $self = shift;
my $sub = (caller(1))[3];
Alzabo::Exception::VirtualMethod->throw( error =>
"$sub is a virtual method and must be subclassed in " . ref $self );
}
__END__
=head1 NAME
Alzabo::RDBMSRules - Base class for Alzabo RDBMS rulesets
lib/Alzabo/Runtime/Cursor.pm view on Meta::CPAN
sub all_rows
{
shift->_virtual;
}
sub _virtual
{
my $self = shift;
my $sub = (caller(1))[3];
Alzabo::Exception::VirtualMethod->throw
( error =>
"$sub is a virtual method and must be subclassed in " . ref $self );
}
sub reset
{
my $self = shift;
$self->{statement}->execute( $self->{statement}->bind );
lib/Alzabo/SQLMaker.pm view on Meta::CPAN
return $self;
}
sub _assert_last_op
{
my $self = shift;
unless ( grep { $self->{last_op} eq $_ } @_ )
{
my $op = (caller(1))[3];
$op =~ s/.*::(.*?)$/$1/;
Alzabo::Exception::SQL->throw( error => "Cannot follow $self->{last_op} with $op" );
}
}
use constant _BIND_VAL_FOR_INSERT_SPEC => ( { isa => 'Alzabo::Runtime::Column' },
{ type => UNDEF | SCALAR | OBJECT }
);
lib/Alzabo/SQLMaker.pm view on Meta::CPAN
{
shift()->_virtual;
}
sub distinct_requires_order_by_in_select { 0 }
sub _virtual
{
my $self = shift;
my $sub = (caller(1))[3];
$sub =~ s/.*::(.*?)$/$1/;
Alzabo::Exception::VirtualMethod->throw( error =>
"$sub is a virtual method and must be subclassed in " . ref $self );
}
sub debug
{
my $self = shift;
my $fh = shift;
( run in 1.531 second using v1.01-cache-2.11-cpan-26ccb49234f )