Commit | Line | Data |
918fb36e |
1 | use MooseX::Declare; |
2 | |
9c11a562 |
3 | class 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 | |