diff options
Diffstat (limited to 'lib/Plack/Middleware/Debug')
-rw-r--r-- | lib/Plack/Middleware/Debug/Dancer/Routes.pm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/Plack/Middleware/Debug/Dancer/Routes.pm b/lib/Plack/Middleware/Debug/Dancer/Routes.pm new file mode 100644 index 0000000..8d24e57 --- /dev/null +++ b/lib/Plack/Middleware/Debug/Dancer/Routes.pm @@ -0,0 +1,38 @@ +package Plack::Middleware::Debug::Dancer::Routes; + +# ABSTRACT: Show available and matched routes for your application + +use strict; +use warnings; +use parent qw(Plack::Middleware::Debug::Base); +use Dancer::Session; + +sub run { + my ( $self, $env, $panel ) = @_; + + return sub { + my $routes = Dancer::Route::Registry->routes(); + my $hash_routes; + + foreach my $method ( keys %$routes ) { + map { + my $name = $_->{method} . ' ' . $_->{route}; + $hash_routes->{$name} = { + method => $_->{method}, + options => $_->{options}, + params => $_->{params}, + route => $_->{route} + }; + } @{ $routes->{$method} }; + } + + $panel->title('Dancer::Route'); + $panel->nav_subtitle( + "Dancer::Route (" . ( keys %$hash_routes ) . ")" ); + $panel->content( + sub { $self->render_hash( $hash_routes, [ keys %$hash_routes ] ) } + ); + }; +} + +1; |