X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FModel%2FCDBI%2FPlain.pm;h=9f149ede84460e7ade6de80a4aec091f65f3d40f;hb=f19715f56244cc6d862169c2dd656b8a2f3845b5;hp=2c2d869a51679f24188cdddfb2ecafd8e59ba8f3;hpb=1ac110f4ecb782e381db456a3326ff71cb96a73e;p=maypole.git diff --git a/lib/Maypole/Model/CDBI/Plain.pm b/lib/Maypole/Model/CDBI/Plain.pm index 2c2d869..9f149ed 100644 --- a/lib/Maypole/Model/CDBI/Plain.pm +++ b/lib/Maypole/Model/CDBI/Plain.pm @@ -1,9 +1,17 @@ package Maypole::Model::CDBI::Plain; +use Maypole::Config; use base 'Maypole::Model::CDBI'; +use strict; + +Maypole::Config->mk_accessors(qw(table_to_class)); + + sub setup_database { my ( $self, $config, $namespace, $classes ) = @_; $config->{classes} = $classes; + foreach my $class (@$classes) { $namespace->load_model_subclass($class); } + $namespace->model_classes_loaded(1); $config->{table_to_class} = { map { $_->table => $_ } @$classes }; $config->{tables} = [ keys %{ $config->{table_to_class} } ]; } @@ -13,6 +21,9 @@ sub class_of { return $r->config->{table_to_class}->{$table}; } + + + 1; =head1 NAME @@ -22,19 +33,29 @@ Maypole::Model::CDBI::Plain - Class::DBI model without ::Loader =head1 SYNOPSIS package Foo; - use base 'Maypole::Application'; - use Foo::SomeTable; - use Foo::Other::Table; + use 'Maypole::Application'; - Foo->config->{model_class} = "Maypole::Model::CDBI::Plain"; + Foo->config->model("Maypole::Model::CDBI::Plain"); Foo->setup([qw/ Foo::SomeTable Foo::Other::Table /]); =head1 DESCRIPTION This module allows you to use Maypole with previously set-up -C classes; simply call C with a list reference +L classes; simply call C with a list reference of the classes you're going to use, and Maypole will work out the tables and set up the inheritance relationships as normal. +=head1 METHODS + +=over 4 + +=item setup_database + +=item class_of + +=back + +See L + =cut