## Created by make2build 0.17

use Module::Build;

my $SUBCLASS_CODE = join( '', <DATA> );
my $class = Module::Build->subclass(
    class => 'Class::Inflate::Builder',
    code  => $SUBCLASS_CODE,
);

my $b = $class->new(
    module_name => 'Class::Inflate',
    dist_version_from => 'lib/Class/Inflate.pm',
    requires => {
        'Devel::Messenger' => 0,
    },
    recommends => {},
    build_requires => {
        'Test::Debugger' => 0,
	'DBD::SQLite' => 0,
    },
    conflicts => {},
    license => 'perl',
    create_makefile_pl => 'passthrough',
    dist_author => 'kolibrie <kolibrie@cpan.org>',
    # not generated automatically by make2build.pl # TODO patch it
    add_to_cleanup => ['debug.txt', 'test.log'],
);

$b->create_build_script;

__DATA__

# Generated automatically from Build.PL

use DBI;
my $dbfile = 'dbfile';
my $dsn = "dbi:SQLite:dbname=$dbfile";
my $dbh = DBI->connect($dsn, '', '');

my @setup = (
    'create table person (id number(2), first varchar(20), last varchar(20))',
    'create table bio (id number(2), hometown varchar(20))',
    'create table location (id number(2), state varchar(2))',
    'create table organization (org_id number(2), org_name varchar(50))',
    'create table department (org_id number(2), dept_id number(2), dept_name varchar(50))',
    'create table staff (org_id number(2), dept_id number(2), id number(2), title varchar(20))',
);

my %data = (
    'person' => [
        [10, 'Nathan', 'Gray'],
	[11, 'One', 'Schmo'],
    ],
    'bio' => [
	[11, 'Vienna'],
        [10, 'Fairfax'],
    ],
    'location' => [
	[11, 'PA'],
        [10, 'VA'],
	[10, 'DC'],
    ],
    'organization' => [
        [1, 'First Organization'],
        [2, '2nd Organization'],
    ],
    'department' => [
        [1, 1, 'First Department'],
        [1, 2, 'Second Department'],
        [2, 1, '1st Department'],
        [2, 2, '2nd Department'],
    ],
    'staff' => [
        [2, 1, 10, 'Programmer'],
        [2, 1, 11, 'Tech Support'],
    ],
);

sub ACTION_test {
    my $self = shift;
    $self->notes('dsn' => $dsn);
    print "Generating test database\n";
    foreach my $query (@setup) {
	$dbh->do($query);
    }
    foreach my $table (keys %data) {
	my $sth;
	foreach my $bind (@{$data{$table}}) {
	    $sth ||= $dbh->prepare("insert into $table values (" . join(', ', map { '?' } @$bind) . ")");
	    $sth->execute(@$bind);
	}
	$sth->finish;
    }
    $self->SUPER::ACTION_test;
}

sub ACTION_clean {
    my $self = shift;
    print "Removing test database\n";
    foreach my $table (keys %data) {
	$dbh->do("drop table $table");
    }
    $self->add_to_cleanup($dbfile) if $dbfile;
    $self->SUPER::ACTION_clean;
}
