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

Catalyst::Controller::Accessors - Accessors for a namespaced stash

VERSION

version 0.002000

SYNOPSIS

 package MyApp::Controller::Users::Roles;

 use Moose;
 use Catalyst::Controller::Accessors;

 use namespace::autoclean;

 BEGIN { extends 'Catalyst::Controller' };

 cat_has user => (
   is => 'ro',
   namespace => 'MyApp::Controller::Users',
 );

 cat_has $_ => ( is => 'rw' ) for qw(resultset thing);

 # slot lets us use a different underlying field
 cat_has other_user => (
   is => 'ro',
   namespace => 'MyApp::Controller::Users',
   slot => 'user',
 );

 sub load_rs {
   my ($self, $c) = @_;

   $self->resultset($c,
      $self->user($c)->roles
   );
 }

 sub load_thing {
   my ($self, $c, $id) = @_;

   $self->thing($c,
      $self->resultset($c)->find($id)
   );
 }

 sub get_user {
   my ($self, $c) = @_;

   $c->response->body($self->thing($c)->name);
 }

DESCRIPTION

The overall idea for this module is to allow more sensible access to the stash. It merely namespaces the stash based on the name of the controller adding the accessor or the specified namespace. It's prime purpose is for chaining.

IMPORTED SUBROUTINES

cat_has

Options:

  • is - required, must be either ro or rw

  • namespace - defaults to current controller

  • slot - defaults to accessor name

AUTHOR

Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Arthur Axel "fREW" Schmidt.

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