summaryrefslogtreecommitdiffstats
path: root/lib/Plack/Middleware/Class/Refresh.pm
blob: d30e2de83377a40025ff5a8583bdb2f8df38f85c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;

    if ($self->verbose && (my @changed = Class::Refresh->modified_modules)) {
        warn ((@changed > 1
                 ? "Classes " . join(', ', @changed) . " have"
                 : "Class $changed[0] has")
           . " been changed, refreshing");
    }

    Class::Refresh->refresh;

    $self->app->(@_);
}

1;