NAME

Terse::Plugin - plugins made simple.

VERSION

Version 0.121

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>

LICENSE AND COPYRIGHT

Terse.