package MyApp::DBI;
use base 'Class::DBI';
__PACKAGE__->connection(...);
1;
package MyApp::Gallery;
use base 'MyApp::DBI';
__PACKAGE__->table('galleries');
__PACKAGE__->columns(...);
sub create {
my ($self, $ops) = @_;
my $dir = $ops->{'directory'};
if (-e $dir) {
die 'directory exists';
else {
mkdir $directory;
$self->find_or_create($data);
};
return;
};
1;
####
package MyApp::DBI;
use base 'DBIx::Class';
__PACKAGE__->connection(...);
1;
package MyApp::Gallery;
use base 'MyApp::DBI';
__PACKAGE__->table('galleries');
__PACKAGE__->add_columns(...);
sub new {
my ($self, $ops) = @_;
my $dir = $ops->{'directory'};
if (-e $dir) {
die 'directory exists';
else {
mkdir $directory;
$self->find_or_create($data);
};
return;
};
1;
##
##
package MyApp::DBI;
use base 'Class::DBI';
__PACKAGE__->connection(...);
1;
package MyApp::DBI::Gallery;
use base 'MyApp::DBI';
__PACKAGE__->table('galleries');
__PACKAGE__->columns(...);
1;
package MyApp::Gallery;
BEGIN {
use 'MyApp::DBI::Gallery';
};
sub create {
my ($self, $ops) = @_;
my $dir = $ops->{'directory'};
if (-e $dir) {
die 'directory exists';
else {
mkdir $directory;
return MyApp::DBI::Gallery->find_or_create($data);
};
return;
};
1;
##
##
package MyApp::DBI;
use base 'Class::DBI';
__PACKAGE__->connection(...);
1;
package MyApp::SomeTable;
use base 'MyApp::DBI';
__PACKAGE__->table('sometable');
__PACKAGE->has_many(tablelegs => 'MyApp::TableLegs');
1;
##
##
package MyApp::Gallery;
use MyApp::DBI::Gallery;
sub new {
my ($class, $opts) = @_;
my $gallery = MyApp::DBI::Gallery->create($data);
bless {gallery => $gallery), $class;
}
sub AUTOLOAD {
my $self = shift;
my $name = our $AUTOLOAD;
if (UNIVERSAL::can($self->{gallery}, $name) {
$self->{gallery}->$name(shift);
};
};