NAME
Terse::Plugin - plugins made simple.
VERSION
Version 0.20
SYNOPSIS
package My::App::Plugin::ValidateParam;
use base 'Terse::Plugin';
sub az {
my ($self, $param) = @_;
return 0 if ref $param;
return $param =~ m/^[a-z]+$/i;
}
1;
... If using Terse::App
package My::App;
use base 'Terse::App';
sub build_app {
$_[0]->response_view = 'pretty'; # default all requests to use this view.
}
sub auth {
shift;
unless ($_[0]->plugin('validateparam')->az($_[0]->params->name)) {
$_[0]->raiseError('param name contains more than just A-Z');
return 0;
}
return $_[0]->controller('admin/auth')->authenticate(@_);
}
... else
package MyApp;
use base 'Terse::Controller';
use MyAppPlugin;
sub build_controller {
$_[0]->plugins->validate = MyAppPlugin->new();
}
sub overview :get {
unless ($_[1]->plugin('validate')->az($_[1]->params->name)) {
$_[1]->raiseError('param name contains more than just A-Z', 400);
return 0;
}
$_[1]->response->data = $_[1]->model('data')->do_something();
}
AUTHOR
LNATION, <email at lnation.org>