remove Class::Load dependency
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / Base.pm
index 2d9cc7d..fd48d40 100644 (file)
@@ -22,10 +22,9 @@ use DBIx::Class::Schema::Loader::Utils qw/split_name dumper_squashed eval_withou
 use DBIx::Class::Schema::Loader::Optional::Dependencies ();
 use Try::Tiny;
 use DBIx::Class ();
-use Class::Load 'load_class';
 use namespace::clean;
 
-our $VERSION = '0.07009';
+our $VERSION = '0.07010';
 
 __PACKAGE__->mk_group_ro_accessors('simple', qw/
                                 schema
@@ -621,6 +620,9 @@ sub new {
         }
         $self->result_component_map(\%rc_map);
     }
+    else {
+        $self->result_component_map({});
+    }
     $self->_validate_result_component_map;
 
     if ($self->use_moose) {
@@ -1068,7 +1070,7 @@ sub _relbuilder {
             ->{ $self->naming->{relationships}};
 
         my $relbuilder_class = 'DBIx::Class::Schema::Loader::RelBuilder'.$relbuilder_suff;
-        load_class $relbuilder_class;
+        $self->ensure_class_loaded($relbuilder_class);
         $relbuilder_class->new( $self );
 
     };
@@ -1620,10 +1622,10 @@ sub _make_src_class {
     $self->_inject($table_class, @{$self->left_base_classes});
 
     my @components = @{ $self->components || [] };
-    foreach my $moniker (keys %{ $self->result_component_map || {} }) {
-        next unless $moniker eq $table_moniker;
-        push @components, @{ $self->result_component_map->{$moniker} };
-    }
+
+    push @components, @{ $self->result_component_map->{$table_moniker} }
+        if exists $self->result_component_map->{$table_moniker};
+
     $self->_dbic_stmt($table_class, 'load_components', @components) if @components;
 
     $self->_inject($table_class, @{$self->additional_base_classes});
@@ -1637,14 +1639,18 @@ sub _is_result_class_method {
     if (not $self->_result_class_methods) {
         my (@methods, %methods);
         my $base       = $self->result_base_class || 'DBIx::Class::Core';
-        my @components = map { /^\+/ ? substr($_,1) : "DBIx::Class::$_" } @{ $self->components || [] };
-        foreach my $moniker (keys %{ $self->result_component_map || {} }) {
-            next unless $moniker eq $table_moniker;
-            push @components, @{ $self->result_component_map->{$moniker} };
+
+        my @components = @{ $self->components || [] };
+
+        push @components, @{ $self->result_component_map->{$table_moniker} }
+            if exists $self->result_component_map->{$table_moniker};
+
+        for my $c (@components) {
+            $c = $c =~ /^\+/ ? substr($c,1) : "DBIx::Class::$c";
         }
 
         for my $class ($base, @components, $self->use_moose ? 'Moose::Object' : ()) {
-            load_class $class;
+            $self->ensure_class_loaded($class);
 
             push @methods, @{ Class::Inspector->methods($class) || [] };
         }
@@ -1653,9 +1659,6 @@ sub _is_result_class_method {
 
         @methods{@methods} = ();
 
-        # futureproof meta
-        $methods{meta} = undef;
-
         $self->_result_class_methods(\%methods);
     }
     my $result_methods = $self->_result_class_methods;