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