X-Git-Url: https://git.decadent.org.uk/gitweb/?p=maypole.git;a=blobdiff_plain;f=Makefile.PL;h=3d26362ed4a6a1930abc463864777843915d0252;hp=0fd48c067d0052b1e7d39a7949d5812f19c45887;hb=83f49b1a6dd37085046213013288504696d5483e;hpb=4c4e58eb02155a43397f30b900c5b30f755cb874 diff --git a/Makefile.PL b/Makefile.PL index 0fd48c0..3d26362 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,39 +1,67 @@ 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::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 ') : ()), + 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, + CGI::Simple => 0, + HTTP::Body => 0.5, + HTML::Tree => 0, + 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 ' + ) + : () + ), ); -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 ( '', () ); + my $dbh = DBI->connect("dbi:$driver:dbname=t/beerdb.db"); + my $sql = join( '', () ); - 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) }; @@ -44,19 +72,19 @@ if (!-e "t/beerdb.db") { __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), @@ -64,18 +92,24 @@ create table beer ( ); 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