From: Tomas Doran Date: Sun, 3 Jan 2010 14:36:38 +0000 (+0000) Subject: Switch to being a Moose role X-Git-Tag: v0.27~3 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d925e93e969c28bd2d5634ebf1424dccea0db46c;p=catagits%2FCatalyst-Plugin-Static-Simple.git Switch to being a Moose role --- diff --git a/Changes b/Changes index 45db973..644b299 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,9 @@ Revision history for Perl extension Catalyst::Plugin::Static::Simple + - Switch to being a Moose role, removing dependencies on + Class::Data::Inheritable and Class::Accessor (Andrey Kostenko in + RT#51089) + 0.26 2009-12-06 12:30:00 - Fix Pod to show less nasty method of assigning config by calling the config method with parameters, rather than poking around inside diff --git a/lib/Catalyst/Plugin/Static/Simple.pm b/lib/Catalyst/Plugin/Static/Simple.pm index ac0977d..2cfe241 100644 --- a/lib/Catalyst/Plugin/Static/Simple.pm +++ b/lib/Catalyst/Plugin/Static/Simple.pm @@ -1,8 +1,6 @@ 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 (); @@ -11,9 +9,10 @@ use MRO::Compat; our $VERSION = '0.26'; -__PACKAGE__->mk_accessors( qw/_static_file _static_debug_message/ ); +has _static_file => ( is => 'rw' ); +has _static_debug_message => ( is => 'rw', isa => 'Str' ); -sub prepare_action { +before prepare_action => sub { my $c = shift; my $path = $c->req->path; my $config = $c->config->{static}; @@ -58,11 +57,9 @@ sub prepare_action { # and does it exist? $c->_locate_static_file( $path ); } +}; - return $c->next::method(@_); -} - -sub dispatch { +override dispatch => sub { my $c = shift; return if ( $c->res->status != 200 ); @@ -74,20 +71,18 @@ sub dispatch { return $c->_serve_static; } else { - return $c->next::method(@_); + return super; } -} +}; -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 { my $c = shift; diff --git a/t/12check_error_scope.t b/t/12check_error_scope.t index f590c81..14a7655 100644 --- a/t/12check_error_scope.t +++ b/t/12check_error_scope.t @@ -9,19 +9,21 @@ use FindBin; use lib "$FindBin::Bin/lib"; use Test::More tests => 3; +BEGIN { + use Catalyst::Plugin::Static::Simple; + Catalyst::Plugin::Static::Simple->meta->add_before_method_modifier( + 'prepare_action', + sub { + my ($c) = @_; + eval { die("FOO"); }; + + ok( $@, '$@ has a value.' ); + } + ); +} use Catalyst::Test 'TestApp'; -TestApp->config->{ static }->{ dirs } = [ qr{stuff/} ]; -my $orig_sub = *Catalyst::Plugin::Static::Simple::prepare_action{CODE}; - -*Catalyst::Plugin::Static::Simple::prepare_action = sub { - my ($c) = @_; - - eval { die("FOO"); }; - - ok ($@, '$@ has a value.'); - return $orig_sub->( $c ); -}; +TestApp->config->{static}->{dirs} = [qr{stuff/}]; ok( my $res = request("http://localhost/"), 'request ok' ); ok( $res->code == 200, q{Previous error doesn't crash static::simple} );