]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Model/CDBI.pm
This makes it all work as Maypole.
[maypole.git] / lib / Maypole / Model / CDBI.pm
index 83c118ae271e8eecd910d8f78c758a3d3da33a53..43b8c7be0d808b22879d7d1edc24e357a984fbfe 100644 (file)
@@ -3,6 +3,7 @@ use base qw(Maypole::Model::Base Class::DBI);
 use Lingua::EN::Inflect::Number qw(to_PL);
 use Class::DBI::AsForm;
 use Class::DBI::FromCGI;
+use Class::DBI::Loader;
 use Class::DBI::AbstractSearch;
 use Class::DBI::Plugin::RetrieveAll;
 use Class::DBI::Pager;
@@ -98,5 +99,22 @@ sub list :Exported {
         $r->objects([ $self->retrieve_all ]);
     }
 }
+
+sub setup_database {
+    my ($self, $config, $namespace, $dsn) = @_;
+    $config->{dsn} = $dsn;
+    $config->{loader} = Class::DBI::Loader->new(
+        namespace => $namespace,
+        dsn => $dsn
+    );
+    $config->{classes} = [ $config->{loader}->classes ];
+    $config->{tables}  = [ $config->{loader}->tables ];
+}
+
+sub class_of {
+    my ($self, $r, $table) = @_;
+    return $r->config->{loader}->_table2class($table);
+}
+
 1;