On Monday, January 17, 2011 at 5:13 PM, Flavio Poletti wrote:
I think that Puneet is suggesting to have a syntax for non-mandatory parts in the route specifier, i.e. the foo_id might be there, as in:
/foo/1/bar/30
or not, as in
/foo/bar/30
in which case a default value for foo_id can be set inside the route handler. Trying to guess a possible regex for it (don't know if "\w" is correct here):
/foo(?:/(?<foo_id>:\w+))?/bar(?:/(?<bar_id>:\w+))
i.e. each named capture "name" for a parameter is expanded to "(?:/(?<name>:\w+))?" (or whatever is used instead of "\w" today).
Yeah, kinda. Actually, I gave a wrong-ish example because of more than one params, which makes the capture more difficult requiring the hairy regexp you provided above. But yes, you got the spirit of the question. Consider the more common get '/books' get '/books/:book_id' I need two routes as above. Would be nice to just have one like below that does the job of both get '/books/:book_id?' The above is how it is implemented in CGI::Application, hence my experience with such a capability. Thanks,
Cheers,
Flavio.
On Mon, Jan 17, 2011 at 11:01 PM, sawyer x <xsawyerx@gmail.com> wrote:
I don't follow
On Mon, Jan 17, 2011 at 9:03 PM, Puneet Kishor <punk.kish@gmail.com> wrote:
unless default params already exist, the following would make life a lot easier
get '/foo/:foo_id?/bar/:bar_id?' => sub { my $foo_id = params->{'foo_id'} || <default foo value>; my $bar_id = params->{'bar_id'} || <default bar value>; };
Many thanks,
-- Puneet Kishor _______________________________________________ Dancer-users mailing list Dancer-users@perldancer.org http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
_______________________________________________ Dancer-users mailing list Dancer-users@perldancer.org http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
_______________________________________________ Dancer-users mailing list Dancer-users@perldancer.org http://www.backup-manager.org/cgi-bin/listinfo/dancer-users