fixed non-moosey action classes and documented isa option
[catagits/CatalystX-Declare.git] / lib / CatalystX / Declare / Controller / DetermineActionClass.pm
1 use MooseX::Declare;
2 use Class::MOP;
3 use Moose::Meta::Class;
4
5 role CatalystX::Declare::Controller::DetermineActionClass
6     with CatalystX::Declare::Controller::QualifyClassNames {
7
8     around create_action (%args) {
9
10         my ($action_class) = @{ $args{attributes}{CatalystX_Declarative_ActionClass} || [] };
11         $action_class ||= 'Catalyst::Action';
12
13         my $fq_class = $self->_qualify_class_name('Action', $action_class);
14         Class::MOP::load_class($fq_class);
15         Moose::Meta::Class->initialize($fq_class);
16
17         $args{attributes}{ActionClass} ||= [$fq_class];
18
19         return $self->$orig(%args);
20     }
21 }
22
23 1;