summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Plack/Middleware/Debug/Dancer/Routes.pm38
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;