added action classes and roles
[catagits/CatalystX-Declare.git] / lib / CatalystX / Declarative / Keyword / Controller.pm
CommitLineData
918fb36e 1use MooseX::Declare;
2
3class CatalystX::Declarative::Keyword::Controller
4 extends MooseX::Declare::Syntax::Keyword::Class
5 with CatalystX::Declarative::DefaultSuperclassing {
6
7
8 use MooseX::MethodAttributes ();
9 use aliased 'CatalystX::Declarative::Keyword::Action', 'ActionKeyword';
a1dd1788 10 use aliased 'CatalystX::Declarative::Controller::RegisterActionRoles';
11 use aliased 'CatalystX::Declarative::Controller::DetermineActionClass';
918fb36e 12
13
14 before add_namespace_customizations (Object $ctx, Str $package) {
a0ebba1d 15
918fb36e 16 MooseX::MethodAttributes->init_meta(for_class => $package);
a1dd1788 17 $ctx->add_preamble_code_parts(
18 'use CLASS',
19 sprintf('with qw( %s )', join ' ',
20 RegisterActionRoles,
21 DetermineActionClass,
22 ),
23 );
918fb36e 24 }
25
26 method default_superclasses { 'Catalyst::Controller' }
27
28 around default_inner () {
29
30 return [
31 @{ $self->$orig() || [] },
32 ActionKeyword->new(identifier => 'action'),
33 ActionKeyword->new(identifier => 'under'),
34 ];
35 }
36}
37