Add a DBIx::UUIDColumns plugin.
[dbsrgits/DBIx-Class-Historic.git] / lib / DBIx / Class / Schema.pm
index d33f4d4..4fe3a67 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 use base qw/Class::Data::Inheritable/;
 use base qw/DBIx::Class/;
 
-__PACKAGE__->load_components(qw/Exception/);
+__PACKAGE__->load_components(qw/Exception Componentised/);
 __PACKAGE__->mk_classdata('class_registrations' => {});
 
 =head1 NAME
@@ -73,8 +73,7 @@ sub load_classes {
   }
   foreach my $comp (@comp) {
     my $comp_class = "${class}::${comp}";
-    eval "use $comp_class";
-    die $@ if $@;
+    eval "use $comp_class"; # If it fails, assume the user fixed it
     $class->register_class($comp => $comp_class);
   }
 }
@@ -89,6 +88,7 @@ sub compose_connection {
   while (my ($comp, $comp_class) = each %reg) {
     my $target_class = "${target}::${comp}";
     $class->inject_base($target_class, $conn_class, $comp_class);
+    $target_class->table($comp_class->table);
     @map{$comp, $comp_class} = ($target_class, $target_class);
   }
   {
@@ -98,6 +98,7 @@ sub compose_connection {
         my ($class, $to_map) = @_;
         return $map{$to_map};
       };
+    *{"${target}::classes"} = sub { return \%map; };
   }
   $conn_class->class_resolver($target);
 }
@@ -109,14 +110,6 @@ sub setup_connection_class {
   $target->connection(@info);
 }
 
-sub inject_base {
-  my ($class, $target, @to_inject) = @_;
-  {
-    no strict 'refs';
-    unshift(@{"${target}::ISA"}, grep { $target ne $_ } @to_inject);
-  }
-}
-
 1;
 
 =back