sub new { my ( $self, $c ) = @_; $self = $self->NEXT::new($c); $self->{namespace} ||= ref $self; $self->{additional_base_classes} ||= (); push @{ $self->{additional_base_classes} }, ref $self; eval { $self->loader( Class::DBI::Loader->new(%$self) ) }; if ($@) { $c->log->debug(qq/Couldn't load tables "$@"/) if $c->debug } else { $c->log->debug( 'Loaded tables "' . join( ' ', $self->loader->tables ) . '"' ) if $c->debug; } for my $class ( $self->loader->classes ) { $class->autoupdate(1); $c->components->{$class} ||= bless {%$self}, $class; no strict 'refs'; *{"$class\::new"} = sub { bless {%$self}, $class }; } return $self; }