X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FModel%2FCDBI%2FPlain.pm;h=0dee774b9813ef34dd37df9bb6c9d668aea78338;hb=d3a3498e58b23918b3311da94f706bbfe2a576ee;hp=0bdee5630b9e28085e73b5468a3343d8a141ec90;hpb=fafd8d81987fbb130e02b89ed55c78a6cc34127a;p=maypole.git diff --git a/lib/Maypole/Model/CDBI/Plain.pm b/lib/Maypole/Model/CDBI/Plain.pm index 0bdee56..0dee774 100644 --- a/lib/Maypole/Model/CDBI/Plain.pm +++ b/lib/Maypole/Model/CDBI/Plain.pm @@ -1,14 +1,18 @@ package Maypole::Model::CDBI::Plain; 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; - $config->{table_to_class} = { map { $_->table => $_ } @$classes }; - $config->{tables} = [ keys %{$config->{table_to_class}} ]; + my ( $self, $config, $namespace, $classes ) = @_; + $config->{classes} = $classes; + $config->{table_to_class} = { map { $_->table => $_ } @$classes }; + $config->{tables} = [ keys %{ $config->{table_to_class} } ]; } sub class_of { - my ($self, $r, $table) = @_; + my ( $self, $r, $table ) = @_; return $r->config->{table_to_class}->{$table}; } @@ -21,14 +25,31 @@ Maypole::Model::CDBI::Plain - Class::DBI model without ::Loader =head1 SYNOPSIS package Foo; - use base 'Apache::DBI'; + use base 'Maypole::Application'; use Foo::SomeTable; use Foo::Other::Table; - 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. +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 +