summaryrefslogtreecommitdiffstats
path: root/lib/Plack/Middleware/Class/Refresh.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Plack/Middleware/Class/Refresh.pm')
-rw-r--r--lib/Plack/Middleware/Class/Refresh.pm22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/Plack/Middleware/Class/Refresh.pm b/lib/Plack/Middleware/Class/Refresh.pm
index e69de29..453e6f1 100644
--- a/lib/Plack/Middleware/Class/Refresh.pm
+++ b/lib/Plack/Middleware/Class/Refresh.pm
@@ -0,0 +1,22 @@
+package Plack::Middleware::Class::Refresh;
+use strict;
+use warnings;
+use Plack::Util::Accessor 'verbose';
+
+use Class::Refresh;
+
+use base 'Plack::Middleware';
+
+sub call {
+ my $self = shift;
+
+ my @changed = Class::Refresh->modified_modules;
+ warn "Classes " . join(', ', @changed) . " have been changed, refreshing"
+ if $self->verbose && @changed;
+
+ Class::Refresh->refresh;
+
+ $self->app->(@_);
+}
+
+1;