use Moose;
no warnings 'uninitialized';
-our $VERSION = '0.51';
+our $VERSION = '0.65';
$VERSION = eval $VERSION;
use Carp;
use File::Find 'finddepth';
use Try::Tiny;
use Cwd 'getcwd';
+use Module::Runtime 'use_module';
=head1 NAME
$i += 2;
}
- while (defined $args->[$i]) {
- my ($key, $val) = split /=/, $args->[$i++], 2;
+ my $have_loader = try {
+ use_module('DBIx::Class::Schema::Loader::Base');
+ 1;
+ };
- if ($self->_is_struct($val)) {
- $loader_args{$key} = $val;
- } elsif ((my @vals = split /,/ => $val) > 1) {
- $loader_args{$key} = \@vals;
- } else {
- $loader_args{$key} = $val;
+ if ($have_loader) {
+ while (defined $args->[$i]) {
+ $i++ while $self->_is_struct($args->[$i]);
+
+ last if not defined $args->[$i];
+
+ my ($key, $val) = split /=/, $args->[$i], 2;
+
+ if (not DBIx::Class::Schema::Loader::Base->can($key)) {
+ $i++;
+ next;
+ }
+
+ if ($self->_is_struct($val)) {
+ $loader_args{$key} = $val;
+ } elsif ((my @vals = split /,/ => $val) > 1) {
+ $loader_args{$key} = \@vals;
+ } else {
+ $loader_args{$key} = $val;
+ }
+
+ splice @$args, $i, 1;
}
}
File::Spec->catfile($self->helper->{base}, 'lib', @schema_parts) . '.pm';
if (not -f $schema_pm) {
- eval { Class::MOP::load_class('DBIx::Class::Schema::Loader') };
+ eval { use_module('DBIx::Class::Schema::Loader') };
return 'Result' if $@;
local $Data::Dumper::Terse = 1;
local $Data::Dumper::Quotekeys = 0;
+ local $Data::Dumper::Sortkeys = 1;
local $Data::Dumper::Indent = 0;
local $Data::Dumper::Useqq = 1;
my $schema_dir = File::Spec->catfile($helper->{base}, 'lib');
try {
- Class::MOP::load_class('DBIx::Class::Schema::Loader')
+ use_module('DBIx::Class::Schema::Loader')
}
catch {
die "Cannot load DBIx::Class::Schema::Loader: $_";
require lib;
lib->import($schema_dir);
- Class::MOP::load_class($self->schema_class);
+ use_module($self->schema_class);
my @sources = $self->schema_class->sources;