Merge 'trunk' into 'view-deps'
[dbsrgits/DBIx-Class.git] / lib / SQL / Translator / Parser / DBIx / Class.pm
index 32fe04f..abb6c15 100644 (file)
@@ -292,9 +292,16 @@ EOW
     }
 
     my %views;
-    foreach my $moniker (sort keys %view_monikers)
+    my @view_sources =
+      sort {
+        (exists $a->depends_on->{$b->source_name} ? 1 : 0)
+        <=>
+        (exists $b->depends_on->{$a->source_name} ? 1 : 0)
+      }
+      map { $dbicschema->source($_) } (sort keys %@view_monikers);
+
+    foreach my $source (@view_sources)
     {
-        my $source = $dbicschema->source($moniker);
         my $view_name = $source->name;
 
         # FIXME - this isn't the right way to do it, but sqlt does not