]> git.decadent.org.uk Git - maypole.git/blob - lib/Maypole/Model/CDBI/Plain.pm
Finish the doc for this.
[maypole.git] / lib / Maypole / Model / CDBI / Plain.pm
1 package Maypole::Model::CDBI::Plain;
2 use base 'Maypole::Model::CDBI';
3 sub setup_database {
4     my ($self, $config, $namespace, $classes) = @_;
5     $config->{classes} = $classes;
6     $config->{table_to_class}  = { map { $_->table => $_ } @$classes };
7     $config->{tables} = [ keys %{$config->{table_to_class}} ];
8 }
9
10 sub class_of {
11     my ($self, $r, $table) = @_;
12     return $r->config->{table_to_class}->{$table};
13 }
14
15 1;
16
17 =head1 NAME
18
19 Maypole::Model::CDBI::Plain - Class::DBI model without ::Loader
20
21 =head1 SYNOPSIS
22
23     package Foo;
24     use base 'Apache::DBI';
25     use Foo::SomeTable;
26     use Foo::Other::Table;
27
28     Foo->config->{model_class} = "Maypole::Model::CDBI::Plain";
29     Foo->setup([qw/ Foo::SomeTable Foo::Other::Table /]);
30
31 =head1 DESCRIPTION
32
33 This module allows you to use Maypole with previously set-up
34 C<Class::DBI> classes; simply call C<setup> with a list reference
35 of the classes you're going to use, and Maypole will work out the
36 tables and set up the inheritance relationships as normal.
37
38 =cut