X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FActions.pod;h=667f1167188245892f035586415321924392cdd5;hp=b27e14e0400ff6e5218f41eddc1077557d136420;hb=02bb2b5a140dc22d7d002fcdce868656d704676a;hpb=388f66e0214312ffa77b48128d2fa2e1932b4669 diff --git a/lib/Catalyst/Manual/Actions.pod b/lib/Catalyst/Manual/Actions.pod index b27e14e..667f116 100644 --- a/lib/Catalyst/Manual/Actions.pod +++ b/lib/Catalyst/Manual/Actions.pod @@ -17,9 +17,9 @@ them. This is pretty simple. Actions work just like the normal dispatch attributes you are used to, like Local or Private: - sub Hello :Local :ActionClass('SayBefore') { - $c->res->output( 'Hello '.$c->stash->{what} ); - } + sub Hello :Local :ActionClass('SayBefore') { + $c->res->output( 'Hello '.$c->stash->{what} ); + } In this example, we expect the SayBefore action to magically populate stash with something relevant before C is run. In the next @@ -35,23 +35,23 @@ Implementing the action itself is almost as easy. Just use L as a base class and decorate the C call in the Action class: - package Catalyst::Action::MyAction; - use Moose; - use namespace::autoclean; + package Catalyst::Action::MyAction; + use Moose; + use namespace::autoclean; - extends 'Catalyst::Action'; + extends 'Catalyst::Action'; - before 'execute' => sub { - my ( $self, $controller, $c, $test ) = @_; - $c->stash->{what} = 'world'; - }; + before 'execute' => sub { + my ( $self, $controller, $c, $test ) = @_; + $c->stash->{what} = 'world'; + }; - after 'execute' => sub { - my ( $self, $controller, $c, $test ) = @_; - $c->stash->{foo} = 'bar'; - }; + after 'execute' => sub { + my ( $self, $controller, $c, $test ) = @_; + $c->stash->{foo} = 'bar'; + }; - __PACKAGE__->meta->make_immutable; + __PACKAGE__->meta->make_immutable; Pretty simple, huh? @@ -63,33 +63,33 @@ inflexible. The solution to this is to use L, which would make the example above look like this: - package Catalyst::ActionRole::MyActionRole; - use Moose::Role; + package Catalyst::ActionRole::MyActionRole; + use Moose::Role; - before 'execute' => sub { - my ( $self, $controller, $c, $test ) = @_; - $c->stash->{what} = 'world'; - }; + before 'execute' => sub { + my ( $self, $controller, $c, $test ) = @_; + $c->stash->{what} = 'world'; + }; - after 'execute' => sub { - my ( $self, $controller, $c, $test ) = @_; - $c->stash->{foo} = 'bar'; - }; + after 'execute' => sub { + my ( $self, $controller, $c, $test ) = @_; + $c->stash->{foo} = 'bar'; + }; - 1; + 1; and this would be used in a controller like this: - package MyApp::Controller::Foo; - use Moose; - use namespace::autoclean; - BEGIN { extends 'Catalyst::Controller::ActionRole'; } + package MyApp::Controller::Foo; + use Moose; + use namespace::autoclean; + BEGIN { extends 'Catalyst::Controller::ActionRole'; } - sub foo : Does('MyActionRole') { - my ($self, $c) = @_; - } + sub foo : Does('MyActionRole') { + my ($self, $c) = @_; + } - 1; + 1; =head1 EXAMPLE ACTIONS