BEGIN { extends qw/Catalyst::Component MooseX::MethodAttributes::Inheritable/; }
+use MooseX::MethodAttributes;
use Catalyst::Exception;
use Catalyst::Utils;
(
is => 'rw',
isa => 'Str',
- init_arg => 'path',
+ init_arg => 'path', # 5.7 compat
predicate => 'has_path_prefix',
);
(
is => 'rw',
isa => 'Str',
- init_arg => 'namespace',
+ init_arg => 'namespace', # 5.7 compat
predicate => 'has_action_namespace',
);
-has actions =>
+has _controller_actions =>
(
is => 'rw',
isa => 'HashRef',
- init_arg => undef,
+ init_arg => 'action', # 5.7 compat
);
-sub BUILD {
- my ($self, $args) = @_;
+around BUILDARGS => sub { # Icky 5.7 compat
+ my $orig = shift;
+ my $self = shift;
+ my $args = $self->$orig(@_);
my $action = delete $args->{action} || {};
my $actions = delete $args->{actions} || {};
- my $attr_value = $self->merge_config_hashes($actions, $action);
- $self->actions($attr_value);
-}
+ $args->{action} = $self->merge_config_hashes($actions, $action);
+ return $args;
+};
=head1 NAME
my $meta = find_meta($self);
confess("Metaclass for " . ref($meta) ." for " . $meta->name
. " cannot support register_actions.")
- unless $meta->can('get_all_methods_with_attributes');
- my @methods = $meta->get_all_methods_with_attributes;
+ unless $meta->can('get_nearest_methods_with_attributes');
+ my @methods = $meta->get_nearest_methods_with_attributes;
return @methods;
}
# superior while mantaining really high degree of compat
my $actions;
if( ref($self) ) {
- $actions = $self->actions;
+ $actions = $self->_controller_actions;
} else {
my $cfg = $self->config;
$actions = $self->merge_config_hashes($cfg->{actions}, $cfg->{action});