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