Maypole::FormBuilder::Model::Plain - Class::DBI model without ::Loader


Maypole-FormBuilder documentation Contained in the Maypole-FormBuilder distribution.

Index


Code Index:

NAME

Top

Maypole::FormBuilder::Model::Plain - Class::DBI model without ::Loader

SYNOPSIS

Top

    package Foo;
    use 'Maypole::Application';
    use Foo::SomeTable;
    use Foo::Other::Table;

    Foo->config->model( 'Maypole::FormBuilder::Model::Plain' );

    Foo->setup( [ qw/ Foo::SomeTable Foo::Other::Table / ] );

    # Foo now inherits from Class::DBI::FormBuilder via the model
    Foo->form_builder_defaults( { method => 'post' } );

DESCRIPTION

Top

This module allows you to use Maypole with previously set-up Class::DBI classes; simply call setup 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.

METHODS

Top

setup_database
class_of

See Maypole::FormBuilder::Model


Maypole-FormBuilder documentation Contained in the Maypole-FormBuilder distribution.

package Maypole::FormBuilder::Model::Plain;

use warnings;
use strict;

use base 'Maypole::FormBuilder::Model';

use Maypole::FormBuilder;
our $VERSION = $Maypole::FormBuilder::VERSION;

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} } ];
}

sub class_of 
{
    my ( $self, $r, $table ) = @_;
    
    return $r->config->{table_to_class}->{ $table };
}

1;