]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/BeerDB.pm
Update manifest for release and anonymize the example some.
[maypole.git] / lib / BeerDB.pm
index 56ecebefb4d5a9df223909bfe990c9ee868526c6..23bd39f335c7c7f15d48f5f7f95fe4acff35ef1f 100644 (file)
@@ -1,16 +1,26 @@
-# 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";
+use Class::DBI::Loader::Relationship;
+# This line is required if you don't have Apache calling Perl handlers
+# as methods.
+sub handler { Apache::MVC::handler(__PACKAGE__, @_) }
 
-BeerDB::Brewery->columns(Stringify => qw/name/);
-BeerDB::Brewery->has_many(beers => "BeerDB::Beer");
-BeerDB::Beer->has_a(brewery => "BeerDB::Brewery");
+# This is the sample application. Change this to the path to your
+# database. (or use mysql or something)
+BeerDB->set_database("dbi:SQLite:t/beerdb.db");
+# Change this to the root of the web space.
+BeerDB->config->{uri_base} = "http://localhost/beerdb/";
 
-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' ]);
+# Handpumps should not show up.
+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/],
+);
+BeerDB->config->{loader}->relationship($_) for (
+    "a brewery produces beers",
+    "a style defines beers",
+    "a pub has beers on handpumps");
+1;