CGI::Application::Plugin::DBIC::Schema
思いつきで書いた
SYNOPSISはこんな感じ
# In your CGI::Application based web application module...
use CGI::Application::Plugin::DBIC::Schema;
sub setup{
my $self = shift;
$self->schema_config(
schema_class => 'My::DBIC::Schema',
connect_info => [
"DBI:...",
"username",
"password",
{AutoCommit => 1}
]
);
}
sub my_run_mode {
my $self = shift;
my $ret = $self->schema('Actor')->find(1);
}
使い道はあまりないかもなぁ。
package CGI::Application::Plugin::DBIC::Schema;
use strict;
use base qw/Exporter/;
use UNIVERSAL::require;
our $VERSION = '0.01';
our @EXPORT = qw/schema_config schema/;
sub schema_config {
my $self = shift;
my $args = ( ref $_[0] ) : shift : {@_};
die "schema_config() error: schema_class must be defined"
unless defined $args->{schema_class};
my $schema_class = $args->{schema_class};
$schema_class->require
or die
"schema_config() error: Cannot load schema class '$schema_class': $@";
$self->{DBIC_SCHEMA} = $schema_class->connect($args->{connect_info} || []);
}
sub schema {
my $self = shift;
$self->{DBIC_SCHEMA}->resultset(shift);
}
1;