[Bast-commits] r6101 - in trunk/DBIx-Class-Schema-Loader: . lib/DBIx/Class/Schema/Loader

ilmari at dev.catalyst.perl.org ilmari at dev.catalyst.perl.org
Fri May 1 20:11:19 GMT 2009


Author: ilmari
Date: 2009-05-01 20:11:19 +0000 (Fri, 01 May 2009)
New Revision: 6101

Modified:
   trunk/DBIx-Class-Schema-Loader/Changes
   trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm
   trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/RelBuilder.pm
Log:
Fix for DBIx::Class 0.081

- Pass schema object, not class, to RelBuilder
- Reregister classes after building the relationships

Modified: trunk/DBIx-Class-Schema-Loader/Changes
===================================================================
--- trunk/DBIx-Class-Schema-Loader/Changes	2009-05-01 20:09:49 UTC (rev 6100)
+++ trunk/DBIx-Class-Schema-Loader/Changes	2009-05-01 20:11:19 UTC (rev 6101)
@@ -4,6 +4,7 @@
         - Fix Oracle constraint detection for non-owned schemas (RT #35732)
         - Add result_base_class and schema_base_class options (RT #43977)
         - Handle ResultSetManager deprecation warning in common tests
+        - Fix for DBIx::Class 0.081
 
 0.04005 Sat Apr 05, 2008
         - Fix DB2 support

Modified: trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm
===================================================================
--- trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm	2009-05-01 20:09:49 UTC (rev 6100)
+++ trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm	2009-05-01 20:11:19 UTC (rev 6101)
@@ -263,7 +263,7 @@
             if $self->{dump_overwrite};
 
     $self->{relbuilder} = DBIx::Class::Schema::Loader::RelBuilder->new(
-        $self->schema_class, $self->inflect_plural, $self->inflect_singular
+        $self->schema, $self->inflect_plural, $self->inflect_singular
     ) if !$self->{skip_relationships};
 
     $self;
@@ -728,9 +728,11 @@
 
     foreach my $src_class (sort keys %$rel_stmts) {
         my $src_stmts = $rel_stmts->{$src_class};
-        foreach my $stmt (@$src_stmts) {
+        foreach my $stmt (@{$src_stmts->{stmts}}) {
             $self->_dbic_stmt($src_class,$stmt->{method},@{$stmt->{args}});
         }
+        $self->schema_class->register_class($src_stmts->{moniker}, $src_class);
+        $self->schema->register_class($src_stmts->{moniker}, $src_class) if $self->schema_class ne $self->schema;
     }
 }
 

Modified: trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/RelBuilder.pm
===================================================================
--- trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/RelBuilder.pm	2009-05-01 20:09:49 UTC (rev 6100)
+++ trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/RelBuilder.pm	2009-05-01 20:11:19 UTC (rev 6101)
@@ -24,9 +24,9 @@
 
 =head2 new
 
-Arguments: schema_class (scalar), inflect_plural, inflect_singular
+Arguments: schema  inflect_plural, inflect_singular
 
-C<$schema_class> should be a schema class name, where the source
+C<$schema> should be a schema instance, where the source
 classes have already been set up and registered.  Column info, primary
 key, and unique constraints will be drawn from this schema for all
 of the existing source monikers.
@@ -187,7 +187,7 @@
             delete $rev_cond{$_};
         }
 
-        push(@{$all_code->{$local_class}},
+        push(@{$all_code->{$local_class}{stmts}},
             { method => 'belongs_to',
               args => [ $remote_relname,
                         $remote_class,
@@ -195,8 +195,9 @@
               ],
             }
         );
+        $all_code->{$local_class}{moniker} = $local_moniker;
 
-        push(@{$all_code->{$remote_class}},
+        push(@{$all_code->{$remote_class}{stmts}},
             { method => 'has_many',
               args => [ $local_relname,
                         $local_class,
@@ -204,6 +205,7 @@
               ],
             }
         );
+        $all_code->{$remote_class}{moniker} = $remote_moniker;
     }
 
     return $all_code;




More information about the Bast-commits mailing list