My problem is that the /api/action.:format route doesn't seem to match anything.
Turn on debugging :) https://metacpan.org/pod/Path::Router#DEBUGGING
#!/usr/bin/perl -- BEGIN{$ENV{PATH_ROUTER_DEBUG}=999;} use Path::Router; use Path::Router::Shell; my $router = Path::Router->new; $router->add_route( '/api/action.:format' ); $router->add_route( '/ro/sham/:bo' ); Path::Router::Shell->new(router => $router )->shell; __END__ /ro/sham/json Attempting to match /api/action.:format against ro/sham/json regexp +is (?:api(?:\/action.:format)) ... LENGTH DID NOT MATCH Attempting to match /ro/sham/:bo against ro/sham/json regexp is (?:r +o(?:\/sham(?:\/([^\/]+)))) match success $VAR1 = bless( { 'mapping' => { 'bo' => 'json' }, 'route' => bless( { 'validations' => {}, 'components' => [ 'ro', 'sham', ':bo' ], 'defaults' => {}, 'path' => '/ro/sham/:bo' }, 'Path::Router::Route' ), 'path' => 'ro/sham/json' }, 'Path::Router::Route::Match' );
So something something "components" something
What could be a solution to my problem?
MANIFEST :) http://search.cpan.org/dist/OX/MANIFEST, http://search.cpan.org/dist/Path-Router/MANIFEST, http://search.cpan.org/dist/Path-Dispatcher/MANIFEST,
https://metacpan.org/source/DOY/OX-0.13/t/apps/Counter-Over-Engineered-Sugar/lib/Counter/Over/Engineered/Sugar.pm
https://metacpan.org/source/DOY/Path-Router-0.12/t/006_match_w_targets.t
https://metacpan.org/source/DOY/Path-Router-0.12/t/003_messy_paths.t
Hmm, so the dot is the dot dot dot not slash slash slash ... what?
update: I don't see that it can be done (seems to assume / decides what can be :variable ) ... I would consult module author for this bug-or-wishlist item , or try some other router
This is why I think that
#!/usr/bin/perl -- BEGIN{$ENV{PATH_ROUTER_DEBUG}=999;} use Path::Router; use Path::Router::Shell; use Data::Dump qw/ dd pp /; my $router = Path::Router->new; $router->add_route( '/api/action.:format' ); $router->add_route( '/ro/sham/:bo' ); my $route = '/ro/sham/json'; dd( $route => scalar( $router->match( $route ) ) ); dd( $router ); __END__ Attempting to match /api/action.:format against ro/sham/json regexp +is (?:api(?:\/action.:format)) Attempting to match /ro/sham/:bo against ro/sham/json regexp is (?:r +o(?:\/sham(?:\/([^\/]+)))) match success ( "/ro/sham/json", bless({ mapping => { bo => "json" }, path => "ro/sham/json", route => bless({ components => ["ro", "sham", ":bo"], defaults => {}, path => "/ro/sham/:bo", validations => {}, }, "Path::Router::Route"), }, "Path::Router::Route::Match"), ) bless({ inline => 1, match_code => sub { ... }, route_class => "Path::Router::Route", routes => [ bless({ components => ["api", "action.:format"], defaults => {}, path => "/api/action.:format", validations => {}, }, "Path::Router::Route"), bless({ components => ["ro", "sham", ":bo"], defaults => {}, path => "/ro/sham/:bo", validations => {}, }, "Path::Router::Route"), ], }, "Path::Router")
can't fake it, so bug
#!/usr/bin/perl -- BEGIN{$ENV{PATH_ROUTER_DEBUG}=999;} use Path::Router; use Data::Dump qw/ dd pp /; my $router = Path::Router->new; push @{ $router->{routes} }, bless({ components => ["a", "b.", ":c"], defaults => {}, path => "/a/b.:c", validations => { c}, }, "Path::Router::Route"); my $route = 'a/b.json'; dd( $route => scalar( $router->match( $route ) ) ); __END__ Attempting to match /a/b.:c against a/b.json regexp is (?:a(?:\/b.(? +:\/([^\/]+)))) match failed ("a/b.json", undef)
And I'm bored again
In reply to Re: OX and routing: how to declare something like /api/action.:format ($DEBUG++ MANIFEST)
by Anonymous Monk
in thread OX and routing: how to declare something like /api/action.:format
by mascip
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |