1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
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 => '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::AsForm => 2.2,
Class::DBI::FromCGI => 0.94,
Class::DBI::Loader::Relationship => 0,
Class::DBI => 0.96,
Class::DBI::SQLite => 0,
CGI::Untaint => 0,
UNIVERSAL::moniker => 0,
UNIVERSAL::require => 0,
URI::QueryParam => 0,
CGI::Simple => 0,
HTTP::Headers => 1.59,
Template => 0,
Template::Plugin::Class => 0,
Test::MockModule => 0,
Digest::MD5 => 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 => 'Simon flack <simonflk#cpan.org>'
)
: ()
),
);
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";
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:$driver:dbname=t/beerdb.db");
my $sql = join( '', (<DATA>) );
for my $statement ( split /;/, $sql ) {
$statement =~ s/\#.*$//mg; # strip # comments
$statement =~ s/auto_increment//g;
next unless $statement =~ /\S/;
eval { $dbh->do($statement) };
die "$@: $statement" if $@;
}
}
__DATA__
create table brewery (
id integer auto_increment primary key,
name varchar(30),
url varchar(50),
notes text
);
create table beer (
id integer auto_increment primary key,
brewery integer,
style integer,
name varchar(30),
url varchar(120),
# tasted date,
score integer(2),
price varchar(12),
abv varchar(10),
notes text
);
create table handpump (
id integer auto_increment primary key,
beer integer,
pub integer
);
create table pub (
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
(1, "St Peter's Brewery", "http://www.stpetersbrewery.co.uk/");
INSERT INTO pub (id, name) VALUES (1, "Turf Tavern");
INSERT INTO handpump (id, pub, beer) VALUES (1, 1,1);
|