sub _attr_cache {
my $self = shift;
my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {};
- my $rest = eval { $self->next::method };
- return $@ ? $cache : { %$cache, %$rest };
+
+ return {
+ %$cache,
+ %{ $self->maybe::next::method || {} },
+ };
}
1;
aherzog: Adam Herzog <adam@herzogdesigns.com>
+amiri: Amiri Barksdale <amiri@metalabel.com>
+
amoore: Andrew Moore <amoore@cpan.org>
andyg: Andy Grundman <andy@hybridized.org>
Tom Hukins
+ tonvoon: Ton Voon <tonvoon@cpan.org>
+
triode: Pete Gamache <gamache@cpan.org>
typester: Daisuke Murase <typester@cpan.org>
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);
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;
my $dependencies = {
map { $_ => _resolve_deps ($_, \%tables) } (keys %tables)
};
-
++
for my $table (sort
{
keys %{$dependencies->{$a} || {} } <=> keys %{ $dependencies->{$b} || {} }
}
my %views;
-
- foreach my $moniker (sort keys %view_monikers)
++
+ my @view_sources =
+ sort {
+ keys %{ $dependencies->{$a} || {} }
+ <=>
+ keys %{ $dependencies->{$b} || {} }
+ ||
+ $a cmp $b
+ }
+ map { $dbicschema->source($_) }
+ 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