From 44bc04de7ea88e73809520c4e0262587d277c9f9 Mon Sep 17 00:00:00 2001 From: franck cuny Date: Mon, 26 Jul 2010 23:06:37 +0200 Subject: add new panel: routes (display a list of routes availabe in your application) --- lib/Plack/Middleware/Debug/Dancer/Routes.pm | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib/Plack/Middleware/Debug/Dancer/Routes.pm 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; -- cgit 1.4.1