use 5.006;
use ExtUtils::MakeMaker;
+
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
- NAME => 'Apache::MVC',
- VERSION_FROM => 'lib/Apache/MVC.pm', # finds $VERSION
- PREREQ_PM => {
- Class::DBI::Loader => 0,
- Class::DBI::AbstractSearch => 0,
- Class::DBI::Pager => 0,
- Class::DBI::Plugin::RetrieveAll => 0,
- Class::DBI::AsForm => 0,
- Class::DBI::FromCGI => 0,
+ NAME => 'Maypole',
+ VERSION_FROM => 'lib/Maypole.pm', # finds $VERSION
+ PREREQ_PM => {
+ Class::DBI::Loader => '0.02',
+ Class::DBI::AbstractSearch => 0,
+ Class::DBI::Pager => 0,
+ Class::DBI::Plugin::RetrieveAll => 0,
Class::DBI::Loader::Relationship => 0,
- CGI::Untaint => 0,
- UNIVERSAL::moniker => 0,
- UNIVERSAL::require => 0,
- Apache::Request => 0,
- Template => 0,
- }, # e.g., Module::Name => 1.1
- ($] >= 5.005 ? ## Add these new keywords supported since 5.005
- (ABSTRACT_FROM => 'lib/Apache/MVC.pm', # retrieve abstract from module
- AUTHOR => 'Simon Cozens <simon@nonet>') : ()),
+ Class::DBI => 0.96,
+ Class::DBI::SQLite => 0.08,
+ CGI::Untaint => 1.26,
+ CGI::Untaint::date => 0,
+ CGI::Untaint::email => 0,
+ UNIVERSAL::moniker => 0,
+ UNIVERSAL::require => 0,
+ URI => 0,
+ URI::QueryParam => 0,
+ CGI::Simple => 0,
+ HTTP::Body => 0.5,
+ HTML::Element => 0,
+ HTTP::Headers => 1.59,
+ Template => 0,
+ Template::Plugin::Class => 0,
+ Test::MockModule => 0,
+ Digest::MD5 => 0,
+ File::MMagic::XS => 0.08,
+ Class::DBI::Plugin::Type => 0,
+ }, # e.g., Module::Name => 1.1
+ (
+ $] >= 5.005
+ ? ## Add these new keywords supported since 5.005
+ (
+ ABSTRACT_FROM => 'lib/Maypole.pm', # retrieve abstract from module
+ AUTHOR => 'Aaron TEEJAY Trevena <aaron@aarontrevena.co.uk>'
+ )
+ : ()
+ ),
);
-if (!-e "t/beerdb.db") {
+sub has_module {
+ my ($module, $version) = @_;
+ (my $file = "$module.pm") =~ s/::/\//g;
+ eval {require $file} or return;
+ return ($module->VERSION || 0) >= $version;
+}
+
+if ( !-e "t/beerdb.db" ) {
print "Making SQLite DB\n";
- require DBD::SQLite
- or die "No, wait, we don't have SQLite installed. Never mind\n";
+ my $driver = 'SQLite';
+ eval { require DBD::SQLite } or do {
+ print "Error loading DBD::SQLite, trying DBD::SQLite2\n";
+ eval {require DBD::SQLite2} ? $driver = 'SQLite2'
+ : die "DBD::SQLite2 is not installed";
+ };
require DBI;
- my $dbh = DBI->connect("dbi:SQLite:dbname=t/beerdb.db");
-
- my $sql = join ( '', (<DATA>) );
+ my $dbh = DBI->connect("dbi:$driver:dbname=t/beerdb.db");
+ my $sql = join( '', (<DATA>) );
- for my $statement (split /;/, $sql) {
- $statement =~ s/\#.*$//mg; # strip # comments
+ for my $statement ( split /;/, $sql ) {
+ $statement =~ s/\#.*$//mg; # strip # comments
$statement =~ s/auto_increment//g;
next unless $statement =~ /\S/;
eval { $dbh->do($statement) };
__DATA__
create table brewery (
- id int not null auto_increment primary key,
+ id integer auto_increment primary key,
name varchar(30),
url varchar(50),
notes text
);
create table beer (
- id int not null auto_increment primary key,
+ id integer auto_increment primary key,
brewery integer,
- style integer,
+ style integer,
name varchar(30),
url varchar(120),
-# tasted date,
+ tasted date,
score integer(2),
price varchar(12),
abv varchar(10),
);
create table handpump (
- id int not null auto_increment primary key,
+ id integer auto_increment primary key,
beer integer,
pub integer
);
create table pub (
- id int not null auto_increment primary key,
+ id integer auto_increment primary key,
name varchar(60),
url varchar(120),
notes text
);
+create table style (
+ id integer auto_increment primary key,
+ name varchar(60),
+ notes text
+);
+
INSERT INTO beer (id, brewery, name, abv) VALUES
(1, 1, "Organic Best Bitter", "4.1");
INSERT INTO brewery (id, name, url) VALUES