[Dancer-users] Pass to own request
igor.bujna at post.cz
igor.bujna at post.cz
Mon Oct 4 01:15:59 CEST 2010
> ------------ Původní zpráva ------------
> Od: Daniel Pittman <daniel at rimspace.net>
> Předmět: Re: [Dancer-users] Pass to own request
> Datum: 04.10.2010 00:47:34
> ----------------------------------------
> igor.bujna at post.cz writes:
>
> > I'm found in documentation 'pass' function which make procesing of next
> > request. But i want in some my code to put other request but request not
> > from next matching route. Something like that:
> >
> > get '/index' => sub {
> > .......
> > };
> >
> > get '/some/route' => sub {
> > if (...) {
> > # How can I put this code to '/index' route not use redirect.
> > }
> > }
> >
> > Thank for yours answer and sorry for my english :( I must learn
>
> Please, don't apologise. Your English is quite reasonable.
>
> The easy way is this:
>
> sub _index { # whatever }
> get '/index' => \&_index;
> get '/some/route' => sub {
> if (...) { goto \&_index; # or return _index() }
> }
>
> You can use a regular subroutine reference as the route handler, or call it
> from there, just like in regular Perl code.
Now I have similar code as you write. I think, better idea will be if 'pass()' has 2 options.
1) such as now. call pass() process next route.
2) put to 'pass' route method, which I want to next process, such as "pass('/index')"
I found some methods which make what I want, but I think that idea of 'pass' method which has 2 options its better.
sub pass_own {
my $name = shift || return;
foreach my $app ( Dancer::App->applications ) {
my $routes = $app->{registry}->{routes};
# push the static get routes into an array.
foreach my $k ( @{ $routes->{get} } ) {
if (ref($k->{pattern}) !~ m/HASH/i && ($k->{pattern} eq $name)) {
return $k->{code}();
}
}
}
}
Cheers Igor
> Regards,
> Daniel
> --
> ✣ Daniel Pittman ✉ daniel at rimspace.net ☎ +61 401 155 707
> ♽ made with 100 percent post-consumer electrons
> _______________________________________________
> Dancer-users mailing list
> Dancer-users at perldancer.org
> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
>
>
>
More information about the Dancer-users
mailing list