use MooseX::Declare;
+use Catalyst::Controller;
class CatalystX::Declare::Keyword::Controller
extends CatalystX::Declare::Keyword::Component {
use MooseX::MethodAttributes ();
use aliased 'CatalystX::Declare::Keyword::Action', 'ActionKeyword';
- use aliased 'CatalystX::Declare::Controller::RegisterActionRoles';
use aliased 'CatalystX::Declare::Controller::DetermineActionClass';
use aliased 'CatalystX::Declare::Controller::Meta::TypeConstraintMapping';
+ use aliased 'CatalystX::Declare::Controller::ActionPreparation';
use Data::Dump qw( pp );
sprintf('Class::MOP::load_class(q(%s))', TypeConstraintMapping),
sprintf('%s->meta->apply(%s->meta->meta)', TypeConstraintMapping, $package),
],
+ );
+ }
+
+ after add_extends_option_customizations (Object $ctx, Str $package, $superclasses, $options) {
+
+ $ctx->add_scope_code_parts(
sprintf('with qw( %s )', join ' ',
- RegisterActionRoles,
DetermineActionClass,
+ ActionPreparation,
),
);
}
method auto_make_immutable { 0 }
- around default_inner () {
+ around default_inner {
my @modifiers = qw( );
method add_with_option_customizations (Object $ctx, $package, ArrayRef $roles, HashRef $options) {
+ $package = $ctx->qualify_namespace($package);
+
$ctx->add_cleanup_code_parts(
map {
sprintf('Class::MOP::load_class(%s)', pp "$_"),
sprintf('%s->meta->apply(%s->meta)', $_, $package),
- } @$roles
+ } map { $ctx->qualify_namespace($_) } @$roles
);
$ctx->add_cleanup_code_parts(
This method modifier will initialise the controller with
L<MooseX::MethodAttributes> and add the
-L<CatalystX::Declare::Controller::RegisterActionRoles> and
+L<CatalystX::Declare::Controller::ActionPreparation> and
L<CatalystX::Declare::Controller::DetermineActionClass> controller roles
before calling the original.