return $c->state;
}
+=head2 $c->_localize_fields( sub { }, \%keys );
+
+=cut
+
+sub _localize_fields {
+ my ( $c, $localized, $code ) = ( @_ );
+
+ my $request = delete $localized->{request} || {};
+ my $response = delete $localized->{response} || {};
+
+ local @{ $c }{ keys %$localized } = values %$localized;
+ local @{ $c->request }{ keys %$request } = values %$request;
+ local @{ $c->response }{ keys %$response } = values %$response;
+
+ $code->();
+}
+
=head2 $c->finalize
Finalizes the request.
sub get_action {
my ( $self, $name, $namespace ) = @_;
return unless $name;
- $namespace ||= '';
- $namespace = '' if $namespace eq '/';
+
+ $namespace = join("/", grep { length } split '/', $namespace || "" );
return $self->action_hash->{"$namespace/$name"};
}
+=head2 $self->get_action_by_path( $path );
+
+returns the named action by it's full path.
+
+=cut
+
+sub get_action_by_path {
+ my ( $self, $path ) = @_;
+ $self->action_hash->{$path};
+}
+
=head2 $self->get_actions( $c, $action, $namespace )
=cut
sub get_actions {
my ( $self, $c, $action, $namespace ) = @_;
return [] unless $action;
- $namespace ||= '';
- $namespace = '' if $namespace eq '/';
+
+ $namespace = join("/", grep { length } split '/', $namespace || "" );
my @match = $self->get_containers($namespace);