The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Mojolicious::Plugin::AdvancedMod::ActionFilter - Analogue of Rails: before_filter, after_filter

METHOD

action_filter

$self->action_filter( filter_name => sub { ... } );

SYNOPSIS

# Main app file
sub startup {
  my $self = shift;
  ...
  $self->action_filter(
    is_auth => sub { shift->render( text => "is_auth filter" ) },
    test    => sub { shift->render( text => "test before_filter" ); },
  );
}

# Controller
our $BEFORE_FILTERS = { is_auth => [qw/show/] };
our $AFTER_FILTERS  = { test    => [qw/show/] };

sub show {
  my ( $self, $filter, $action ) = @_;
  $self->render( text => 'show action' );
}

sub index {
  my $self = shift;
  $self->render( text => 'index action' );
}

# Log
[info] Applying before_filter is_auth for example#show
[info] Applying after_filter test for example#show
[debug] GET "/show".

AUTHOR

COPYRIGHT AND LICENSE

Copyright (C) 2013, 2014 Grishkovelli grishkovelli@gmail.com

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.