use warnings;
use base qw/Class::Accessor::Fast/;
use Class::C3;
-use Carp::Clan qw/^DBIx::Class::Schema::Loader/;
+use Carp::Clan qw/^DBIx::Class/;
use UNIVERSAL::require;
use DBIx::Class::Schema::Loader::RelBuilder;
use Data::Dump qw/ dump /;
my $schema_fn = $self->_get_dump_filename($schema_class);
croak "$schema_fn exists, will not overwrite"
if -f $schema_fn && !$self->dump_overwrite;
- sysopen(my $schema_fh, '>', $schema_fn)
+ open(my $schema_fh, '>', $schema_fn)
or croak "Cannot open $schema_fn for writing: $!";
print $schema_fh qq|package $schema_class;\n\n$tagline\n\n|;
print $schema_fh qq|use strict;\nuse warnings;\n\n|;
sub _use {
my $self = shift;
my $target = shift;
+ my $evalstr;
foreach (@_) {
- $_->require or croak ($_ . "->require: $@");
+ warn "$target: use $_;" if $self->debug;
$self->_raw_stmt($target, "use $_;");
- warn "$target: use $_" if $self->debug;
- eval "package $target; use $_;";
- croak "use $_: $@" if $@;
+ $_->require or croak ($_ . "->require: $@");
+ $evalstr .= "package $target; use $_;";
}
+ eval $evalstr if $evalstr;
+ croak $@ if $@;
}
sub _inject {
my $schema_class = $self->schema_class;
my $blist = join(q{ }, @_);
+ warn "$target: use base qw/ $blist /;" if $self->debug && @_;
$self->_raw_stmt($target, "use base qw/ $blist /;") if @_;
- warn "$target: use base qw/ $blist /" if $self->debug && @_;
foreach (@_) {
$_->require or croak ($_ . "->require: $@");
$schema_class->inject_base($target, $_);