from override to around, because that actually works
[catagits/Catalyst-Plugin-Static-Simple.git] / lib / Catalyst / Plugin / Static / Simple.pm
index 2cfe241..05e4c8a 100644 (file)
@@ -5,12 +5,13 @@ use File::stat;
 use File::Spec ();
 use IO::File ();
 use MIME::Types ();
-use MRO::Compat;
+use MooseX::Types::Moose qw/ArrayRef Str/;
+use namespace::autoclean;
 
-our $VERSION = '0.26';
+our $VERSION = '0.28';
 
 has _static_file => ( is => 'rw' );
-has _static_debug_message => ( is => 'rw', isa => 'Str' );
+has _static_debug_message => ( is => 'rw', isa => ArrayRef[Str] );
 
 before prepare_action => sub {
     my $c = shift;
@@ -59,7 +60,8 @@ before prepare_action => sub {
     }
 };
 
-override dispatch => sub {
+around dispatch => sub {
+    my $orig = shift;
     my $c = shift;
 
     return if ( $c->res->status != 200 );
@@ -71,7 +73,7 @@ override dispatch => sub {
         return $c->_serve_static;
     }
     else {
-        return super;
+        return $c->$orig(@_);
     }
 };
 
@@ -84,11 +86,9 @@ before finalize => sub {
     }
 };
 
-sub setup {
+before setup_finalize => sub {
     my $c = shift;
 
-    $c->maybe::next::method(@_);
-
     my $config = $c->config->{static} ||= {};
 
     $config->{dirs} ||= [];
@@ -106,7 +106,7 @@ sub setup {
 
     # preload the type index hash so it's not built on the first request
     $config->{mime_types_obj}->create_type_index;
-}
+};
 
 # Search through all included directories for the static file
 # Based on Template Toolkit INCLUDE_PATH code
@@ -296,7 +296,7 @@ C<404> error if your applicaton can not process the request:
 
    # handled by static::simple, not dispatched to your application
    /images/exists.png
-   
+
    # static::simple will not find the file and let your application
    # handle the request. You are responsible for generating a file
    # or returning a 404 error
@@ -570,6 +570,8 @@ Tomas Doran, <bobtfish@bobtfish.net>
 
 Justin Wheeler (dnm)
 
+Matt S Trout, <mst@shadowcat.co.uk>
+
 =head1 THANKS
 
 The authors of Catalyst::Plugin::Static: