moved to CatalystX::Declare
[catagits/CatalystX-Declare.git] / lib / CatalystX / Declare / Keyword / Controller.pm
CommitLineData
918fb36e 1use MooseX::Declare;
2
9c11a562 3class CatalystX::Declare::Keyword::Controller
918fb36e 4 extends MooseX::Declare::Syntax::Keyword::Class
9c11a562 5 with CatalystX::Declare::DefaultSuperclassing {
918fb36e 6
7
8 use MooseX::MethodAttributes ();
9c11a562 9 use aliased 'CatalystX::Declare::Keyword::Action', 'ActionKeyword';
10 use aliased 'CatalystX::Declare::Controller::RegisterActionRoles';
11 use aliased 'CatalystX::Declare::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'),
2dde75e7 34 ActionKeyword->new(identifier => 'final'),
918fb36e 35 ];
36 }
37}
38