]> git.decadent.org.uk Git - maypole.git/blob - ex/BeerDB.pm
Support DBD::SQLite2
[maypole.git] / ex / BeerDB.pm
1 package BeerDB;
2 use Maypole::Application;
3 use Class::DBI::Loader::Relationship;
4
5 sub debug { $ENV{BEERDB_DEBUG} }
6
7 BEGIN {
8 # This is the sample application. Change this to the path to your
9 # database. (or use mysql or something)
10 eval { require DBD::SQLite };
11 if ($@) {
12    BeerDB->setup("dbi:SQLite2:t/beerdb.db");
13 } else {
14     BeerDB->setup("dbi:SQLite:t/beerdb.db");
15 }
16 }
17
18 # Give it a name.
19 BeerDB->config->application_name('The Beer Database');
20
21 # Change this to the root of the web space.
22 BeerDB->config->uri_base("http://localhost/beerdb/");
23 #BeerDB->config->{uri_base} = "http://neo.trinity-house.org.uk/beerdb/";
24
25 BeerDB->config->rows_per_page(10);
26
27 # Handpumps should not show up.
28 BeerDB->config->{display_tables} = [qw[beer brewery pub style]];
29 BeerDB::Brewery->untaint_columns( printable => [qw/name notes url/] );
30 BeerDB::Style->untaint_columns( printable => [qw/name notes/] );
31 BeerDB::Beer->untaint_columns(
32     printable => [qw/abv name price notes url/],
33     integer => [qw/style brewery score/],
34     date =>[ qw/date/],
35 );
36 BeerDB->config->{loader}->relationship($_) for (
37     "a brewery produces beers",
38     "a style defines beers",
39     "a pub has beers on handpumps");
40
41 # For testing classmetadata
42 sub BeerDB::Beer::classdata :Exported {};
43 sub BeerDB::Beer::list_columns  { return qw/score name price style brewery url/};
44
45 1;