X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FPlugin%2FStatic%2FSimple.pm;h=05e4c8ad4bd205802e1d93531b57bd39175f5e4d;hb=7c97dd210f9079300f1b67fcba852e95203f4cb3;hp=ac0977d794a47743fd81cd6e4be465486c087849;hpb=a5d909f1c01cb34610ada7807e448fda6652b2db;p=catagits%2FCatalyst-Plugin-Static-Simple.git diff --git a/lib/Catalyst/Plugin/Static/Simple.pm b/lib/Catalyst/Plugin/Static/Simple.pm index ac0977d..05e4c8a 100644 --- a/lib/Catalyst/Plugin/Static/Simple.pm +++ b/lib/Catalyst/Plugin/Static/Simple.pm @@ -1,19 +1,19 @@ package Catalyst::Plugin::Static::Simple; -use strict; -use warnings; -use base qw/Class::Accessor::Fast Class::Data::Inheritable/; +use Moose::Role; 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'; -__PACKAGE__->mk_accessors( qw/_static_file _static_debug_message/ ); +has _static_file => ( is => 'rw' ); +has _static_debug_message => ( is => 'rw', isa => ArrayRef[Str] ); -sub prepare_action { +before prepare_action => sub { my $c = shift; my $path = $c->req->path; my $config = $c->config->{static}; @@ -58,11 +58,10 @@ sub prepare_action { # and does it exist? $c->_locate_static_file( $path ); } +}; - return $c->next::method(@_); -} - -sub dispatch { +around dispatch => sub { + my $orig = shift; my $c = shift; return if ( $c->res->status != 200 ); @@ -74,26 +73,22 @@ sub dispatch { return $c->_serve_static; } else { - return $c->next::method(@_); + return $c->$orig(@_); } -} +}; -sub finalize { +before finalize => sub { my $c = shift; # display all log messages if ( $c->config->{static}{debug} && scalar @{$c->_debug_msg} ) { $c->log->debug( 'Static::Simple: ' . join q{ }, @{$c->_debug_msg} ); } +}; - return $c->next::method(@_); -} - -sub setup { +before setup_finalize => sub { my $c = shift; - $c->maybe::next::method(@_); - my $config = $c->config->{static} ||= {}; $config->{dirs} ||= []; @@ -111,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 @@ -301,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 @@ -575,6 +570,8 @@ Tomas Doran, Justin Wheeler (dnm) +Matt S Trout, + =head1 THANKS The authors of Catalyst::Plugin::Static: