Most of the first third of 02-Film now works :)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / DB.pm
1 package DBIx::Class::DB;
2
3 use base qw/Class::Data::Inheritable/;
4
5 __PACKAGE__->mk_classdata('_dbi_connect_info');
6 __PACKAGE__->mk_classdata('_dbi_connect_package');
7 __PACKAGE__->mk_classdata('_dbh');
8
9 sub _get_dbh {
10   my ($class) = @_;
11   my $dbh;
12   unless (($dbh = $class->_dbh) && $dbh->FETCH('Active') && $dbh->ping) {
13     $class->_populate_dbh;
14   }
15   return $class->_dbh;
16 }
17
18 sub _populate_dbh {
19   my ($class) = @_;
20   my @info = @{$class->_dbi_connect_info || []};
21   my $pkg = $class->_dbi_connect_package || $class;
22   $pkg->_dbh($class->_dbi_connect(@info));
23 }
24
25 sub _dbi_connect {
26   my ($class, @info) = @_;
27   return DBI->connect(@info);
28 }
29
30 sub connection {
31   my ($class, @info) = @_;
32   $class->_dbi_connect_package($class);
33   $class->_dbi_connect_info(\@info);
34 }
35
36 1;