Merge 'trunk' into 'view-deps'
[dbsrgits/DBIx-Class.git] / lib / SQL / Translator / Parser / DBIx / Class.pm
index 20a2d64..073a45c 100644 (file)
@@ -11,11 +11,13 @@ use warnings;
 use vars qw($DEBUG $VERSION @EXPORT_OK);
 $VERSION = '1.10';
 $DEBUG = 0 unless defined $DEBUG;
-use Data::Dumper;
+
 use Exporter;
 use SQL::Translator::Utils qw(debug normalize_name);
-use Carp::Clan qw/^SQL::Translator|^DBIx::Class/;
+use Carp::Clan qw/^SQL::Translator|^DBIx::Class|^Try::Tiny/;
 use Scalar::Util ();
+use Try::Tiny;
+
 use base qw(Exporter);
 
 @EXPORT_OK = qw(parse);
@@ -42,8 +44,12 @@ sub parse {
 
     croak 'No DBIx::Class::Schema' unless ($dbicschema);
     if (!ref $dbicschema) {
-      eval "use $dbicschema;";
-      croak "Can't load $dbicschema ($@)" if($@);
+      try {
+        eval "require $dbicschema;"
+      }
+      catch {
+        croak "Can't load $dbicschema ($_)";
+      }
     }
 
     my $schema      = $tr->schema;
@@ -263,7 +269,7 @@ sub parse {
     my $dependencies = {
       map { $_ => _resolve_deps ($_, \%tables) } (keys %tables)
     };
-    
+
     for my $table (sort
       {
         keys %{$dependencies->{$a} || {} } <=> keys %{ $dependencies->{$b} || {} }
@@ -292,39 +298,17 @@ EOW
     }
 
     my %views;
-    #my @view_sources =
-      #sort {
-        #(exists $a->deploy_depends_on->{$b->source_name} ? 1 : 0)
-        #<=>
-        #(exists $b->deploy_depends_on->{$a->source_name} ? 1 : 0)
-      #}
-      #map { $dbicschema->source($_) } (sort keys %view_monikers);
-
-    #my @view_sources =
-        #grep { $_->can('view_definition') } # make sure it's a view
-        #map    { $dbicschema->source($_) } # have to get a source
-        #map    { $tables{$_}{source}{source_name} } # have to get a sourcename
-        #sort {
-            #keys %{ $dependencies->{$a} || {} }
-            #<=>
-            #keys %{ $dependencies->{$b} || {} }
-            #||
-            #$a cmp $b
-        #}
-        #keys %$dependencies;
-    
-    my @view_sources =
-        sort {
-            keys %{ $dependencies->{$a} || {} }
-            <=>
-            keys %{ $dependencies->{$b} || {} }
-            ||
-            $a cmp $b
-        }
-        map { $dbicschema->source($_) } (sort keys %view_monikers);
 
-        print STDERR Dumper @view_sources;
-        print STDERR Dumper "Dependencies: ", $dependencies;
+    my @view_sources =
+    sort {
+        keys %{ $dependencies->{$a} || {} }
+        <=>
+        keys %{ $dependencies->{$b} || {} }
+        ||
+        $a cmp $b
+    }
+    map { $dbicschema->source($_) }
+    keys %view_monikers;
 
     foreach my $source (@view_sources)
     {