doesn't populate if there's nothing to populate
Luke Saunders [Mon, 28 Jul 2008 12:46:41 +0000 (12:46 +0000)]
lib/DBIx/Class/Fixtures.pm

index 20120d8..983899d 100644 (file)
@@ -498,6 +498,7 @@ sub dump {
   $config->{rules} ||= {};
   my @sources = sort { $a->{class} cmp $b->{class} } @{delete $config->{sets}};
   my %options = ( is_root => 1 );
+  $self->{queue} = [];
   foreach my $source (@sources) {
     # apply rule to set if specified
     my $rule = $config->{rules}->{$source->{class}};
@@ -543,6 +544,10 @@ sub dump {
     }
   }
 
+  while (my $entry = shift @{$self->{queue}}) {
+    $self->dump_object(@$entry);
+  }
+
   foreach my $dir ($output_dir->children) {
     next if ($dir eq $tmp_output_dir);
     $dir->remove || $dir->rmtree;
@@ -864,7 +869,7 @@ sub populate {
         $HASH1 = $fixup_visitor->visit($HASH1) if $fixup_visitor;
         push(@rows, $HASH1);
       }
-      $rs->populate(\@rows);
+      $rs->populate(\@rows) if (scalar(@rows));
     }
   });