Catalyst-Model-DBIx-Connector
view release on metacpan or search on metacpan
lib/Catalyst/Model/DBIx/Connector.pm view on Meta::CPAN
package Catalyst::Model::DBIx::Connector;
use namespace::autoclean;
use DBIx::Connector;
use Moose;
extends qw( Catalyst::Model );
our $VERSION = '0.01';
has dsn => ( is => 'ro', isa => 'Str', required => 1 );
has username => ( is => 'ro', isa => 'Str' );
has password => ( is => 'ro', isa => 'Str' );
has options => ( is => 'ro', isa => 'HashRef' );
has connector => ( is => 'ro', isa => 'DBIx::Connector', lazy_build => 1, handles => [qw( dbh )] );
sub _build_connector {
my ( $self ) = @_;
DBIx::Connector->new(
map { $self->$_ } qw( dsn username password options ) );
}
__PACKAGE__->meta->make_immutable;
1
__END__
=pod
=head1 NAME
Catalyst::Model::DBIx::Connector - Catalyst model base class for DBI connections using DBIx::Connector
=head1 SYNOPSIS
# in MyApp.pm
__PACKAGE__->config(
'Model::MyModel' => {
dsn => 'dbi:Oracle:ORCL',
username => 'scott', # optional
password => 'tiger', # optional
options => { AutoCommit => 0 }, # optional
},
);
# in MyApp/Model/MyModel.pm
package MyApp::Model::MyModel;
use namespace::autoclean;
use Moose;
extends qw( Catalyst::Model::DBIx::Connector );
sub model_method {
my ( $self ) = @_;
my $dbh = $self->dbh;
my $sth = $dbh->prepare( '...' );
$sth->execute;
# ...
$dbh->disconnect;
}
=head1 DESCRIPTION
Catalyst::Model::DBIx::Connector is a simple base class that
( run in 1.822 second using v1.01-cache-2.11-cpan-39bf76dae61 )