X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FDBIx%2FClass.pm;h=073a45c4f2d25cc4f1eb1be0ba8fd8f3d7fb0e36;hb=9485509b5b6fa85268a7256a20907e1f698d6af6;hp=182206d4a365bc141715ac1e711d8379333adeb2;hpb=ebed3aafa2b8501b96b7bb4dd6de5733a65ddb90;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/SQL/Translator/Parser/DBIx/Class.pm b/lib/SQL/Translator/Parser/DBIx/Class.pm index 182206d..073a45c 100644 --- a/lib/SQL/Translator/Parser/DBIx/Class.pm +++ b/lib/SQL/Translator/Parser/DBIx/Class.pm @@ -14,8 +14,10 @@ $DEBUG = 0 unless defined $DEBUG; 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,7 +298,7 @@ EOW } my %views; - + my @view_sources = sort { keys %{ $dependencies->{$a} || {} }