+sub setup_database {
+ my ( $class, $config, $namespace, $dsn, $u, $p, $opts ) = @_;
+ $dsn ||= $config->dsn;
+ $u ||= $config->user;
+ $p ||= $config->pass;
+ $opts ||= $config->opts;
+ $config->dsn($dsn);
+ warn "No DSN set in config" unless $dsn;
+ $config->loader || $config->loader(
+ Class::DBI::Loader->new(
+ namespace => $namespace,
+ dsn => $dsn,
+ user => $u,
+ password => $p,
+ %$opts,
+ )
+ );
+ $config->{classes} = [ $config->{loader}->classes ];
+ $config->{tables} = [ $config->{loader}->tables ];
+ warn( 'Loaded tables: ' . join ',', @{ $config->{tables} } )
+ if $namespace->debug;
+}
+
+sub class_of {
+ my ( $self, $r, $table ) = @_;
+ return $r->config->loader->_table2class($table); # why not find_class ?
+}
+
+sub fetch_objects {
+ my ($class, $r)=@_;
+ my @pcs = $class->primary_columns;
+ if ( $#pcs ) {
+ my %pks;
+ @pks{@pcs}=(@{$r->{args}});
+ return $class->retrieve( %pks );
+ }
+ return $class->retrieve( $r->{args}->[0] );
+}
+
+1;