Warn if a route is redefined (#595)

This commit is contained in:
Xavier Guimard 2017-09-05 18:34:46 +00:00
parent b16a2becf9
commit d788674e22

View File

@ -59,21 +59,28 @@ sub genRoute {
$dest = $transform->($dest);
}
if ( my $t = ref $dest ) {
if ( $t eq 'CODE' ) {
$routes->{$word} = $dest;
}
elsif ( $t eq 'HASH' ) {
if ( $t eq 'HASH' ) {
$routes->{$word} ||= {};
foreach my $w ( keys %$dest ) {
$self->genRoute( $routes->{$word}, $w, $dest->{$w},
$transform );
}
return;
}
elsif ( $t eq 'ARRAY' ) {
$routes->{$word} ||= {};
foreach my $w ( @{$dest} ) {
$self->genRoute( $routes->{$word}, $w, $transform );
}
return;
}
}
if ( $routes->{$word} ) {
eval { $self->logger->warn(qq'Route "$word" redefined'); };
}
if ( my $t = ref $dest ) {
if ( $t eq 'CODE' ) {
$routes->{$word} = $dest;
}
else {
die "Type $t unauthorizated in routes";