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