]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/BeerDB.pm
This gives us non-object-based templated pages. And a little start on
[maypole.git] / lib / BeerDB.pm
index 56ecebefb4d5a9df223909bfe990c9ee868526c6..e9f1eb471fc5d775cca4dc9379c2ac4010f88b20 100644 (file)
@@ -1,16 +1,18 @@
-# vim:ft=perl
 package BeerDB;
-use Apache::MVC;
 use base 'Apache::MVC';
 sub handler { Apache::MVC::handler("BeerDB", @_) }
-BeerDB->set_database("dbi:SQLite:dbname=/opt/beer/beerdb.db");
-BeerDB->config->{template_root} = "/opt/beer";
-
-BeerDB::Brewery->columns(Stringify => qw/name/);
-BeerDB::Brewery->has_many(beers => "BeerDB::Beer");
-BeerDB::Beer->has_a(brewery => "BeerDB::Brewery");
-
-BeerDB::Handpump->has_a(beer => "BeerDB::Beer"); 
-BeerDB::Handpump->has_a(pub => "BeerDB::Pub");
-BeerDB::Pub->has_many(beers => [ BeerDB::Handpump => 'beer' ]);
-BeerDB::Beer->has_many(pubs => [ BeerDB::Handpump => 'pub' ]);
+BeerDB->set_database("dbi:mysql:beerdb");
+BeerDB->config->{uri_base} = "http://neo.trinity-house.org.uk/beerdb/";
+BeerDB->config->{display_tables} = [qw[beer brewery pub style]];
+BeerDB::Brewery->untaint_columns( printable => [qw/name notes url/] );
+BeerDB::Beer->untaint_columns(
+    printable => [qw/abv name price notes/],
+    integer => [qw/style brewery/],
+    date =>[ qw/date/],
+);
+use Class::DBI::Loader::Relationship;
+BeerDB->config->{loader}->relationship($_) for (
+    "a brewery produces beers",
+    "a style defines beers",
+    "a pub has beers on handpumps");
+1;