use warnings;
use base qw/DBIx::Class::Schema Class::Data::Accessor/;
use Carp::Clan qw/^DBIx::Class/;
-use UNIVERSAL::require;
use Class::C3;
use Scalar::Util qw/ weaken /;
# Always remember to do all digits for the version even if they're 0
# i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
# brain damage and presumably various other packaging systems too
-our $VERSION = '0.04999_05';
+our $VERSION = '0.04999_07';
__PACKAGE__->mk_classaccessor('_loader_args' => {});
__PACKAGE__->mk_classaccessors(qw/dump_to_dir _loader_invoked _loader loader_class/);
my $impl = $self->loader_class
|| "DBIx::Class::Schema::Loader" . $self->storage_type;
$impl = "DBIx::Class::Schema::Loader${impl}" if $impl =~ /^::/;
- $impl->require or
- croak qq/Could not load storage_type loader "$impl": / .
- qq/"$UNIVERSAL::require::ERROR"/;
+ eval { $self->ensure_class_loaded($impl) };
+ croak qq/Could not load storage_type loader "$impl": "$@"/ if $@;
$self->_loader($impl->new(%$args));
$self->_loader->load;
my $self = shift;
if($_[-1] && ref $_[-1] eq 'HASH') {
- for my $option (qw/ loader_class loader_options /) {
+ for my $option (qw/ loader_class loader_options result_base_class schema_base_class/) {
if(my $value = delete $_[-1]->{$option}) {
$self->$option($value);
}