use overload '""' => sub { return ref(shift) }, fallback => 1;
+#do these belong as package vars or should we build these via a builder method?
# Preload these action types
our @PRELOAD = qw/Index Path Regex/;
# Postload these action types
our @POSTLOAD = qw/Default/;
-has _tree => (is => 'rw');
-has _dispatch_types => (is => 'rw');
-has _registered_dispatch_types => (is => 'rw');
-has _method_action_class => (is => 'rw');
-has _action_container_class => (is => 'rw');
-has preload_dispatch_types => (is => 'rw', required => 1, lazy => 1, default => sub { [@PRELOAD] });
-has postload_dispatch_types => (is => 'rw', required => 1, lazy => 1, default => sub { [@POSTLOAD] });
-has _action_hash => (is => 'rw', required => 1, lazy => 1, default => sub { {} });
-has _container_hash => (is => 'rw', required => 1, lazy => 1, default => sub { {} });
+has _tree => (is => 'rw');
+has _dispatch_types => (is => 'rw');
+has _registered_dispatch_types => (is => 'rw');
+has _method_action_class => (is => 'rw');
+has _action_container_class => (is => 'rw');
+has preload_dispatch_types => (is => 'rw', required => 1, lazy => 1, default => sub { [@PRELOAD] });
+has postload_dispatch_types => (is => 'rw', required => 1, lazy => 1, default => sub { [@POSTLOAD] });
+has _action_hash => (is => 'rw', required => 1, lazy => 1, default => sub { {} });
+has _container_hash => (is => 'rw', required => 1, lazy => 1, default => sub { {} });
no Moose;
=head1 METHODS
-=head2 new
+=head2 new
Construct a new dispatcher.
no warnings 'recursion';
- #moose todo: reaching inside another object is bad
- local $c->request->{arguments} = \@args;
+ my $orig_args = $c->request->arguments();
+ $c->request->arguments(\@args);
$action->dispatch( $c );
-
+ $c->request->arguments($orig_args);
+
return $c->state;
}
unshift @args, $arg;
}
- #Moose todo: This seems illegible, even if efficient.
s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg for grep { defined } @{$req->captures||[]};
$c->log->debug( 'Path is "' . $req->match . '"' )
return $self->_action_hash->{"${namespace}/${name}"};
}
-=head2 $self->get_action_by_path( $path );
+=head2 $self->get_action_by_path( $path );
-Returns the named action by its full path.
+Returns the named action by its full path.
=cut
return @loaded;
}
+no Moose;
__PACKAGE__->meta->make_immutable;
=head2 meta