Tue, 15 Apr 2008 18:00:00 GMT
Apple's recently released a software development kit (SDK) for the iPhone, but if you were hoping to port or develop original open source software with it, the news isn't good. Code signing and nondisclosure conditions make free software a no-go.
Mason::Manual::RequestDispatch(3pm) User Contributed Perl Documentation Mason::Manual::RequestDispatch(3pm)NAME
Mason::Manual::RequestDispatch - How request paths get mapped to page components
DESCRIPTION
Given the request path
/news/sports/hockey
Mason searches for the following components in order, setting $m->path_info as noted.
/news/sports/hockey.{mp,mc}
/news/sports/hockey/index.{mp,mc}
/news/sports/hockey/dhandler.{mp,mc}
/news/sports/dhandler.{mp,mc} # $m->path_info = hockey
/news/sports.{mp,mc} # $m->path_info = hockey (but see next section)
/news/dhandler.{mp,mc} # $m->path_info = sports/hockey
/news.{mp,mc} # $m->path_info = sports/hockey (but see next section)
/dhandler.{mp,mc} # $m->path_info = news/sports/hockey
where ".{mp,mc}" means either ".mp" (indicating a pure-perl component). or ".mc" (indicating a top-level component).
The following sections describe these elements in more detail.
Autoextended path
The request path is suffixed with ".mp" and ".mc" to translate it to a component path.
/news/sports/hockey.{mp,mc}
Index
An index matches its exact directory, nothing underneath.
/news/sports/hockey/index.{mp,mc}
Dhandlers
A dhandler matches its directory as well as anything underneath, setting "$m->path_info" to the remainder.
/news/sports/hockey/dhandler.{mp,mc}
/news/sports/dhandler.{mp,mc} # $m->path_info = hockey
/news/dhandler.{mp,mc} # $m->path_info = sports/hockey
/dhandler.{mp,mc} # $m->path_info = news/sports/hockey
Partial paths
A component can match an initial part of the URL, setting "$m->path_info" to the remainder:
/news/sports.{mp,mc} # $m->path_info = hockey
/news.{mp,mc} # $m->path_info = sports/hockey
Since this isn't always desirable behavior, it must be explicitly enabled for the component. Mason will call method "allow_path_info" on
the component class, and will only allow the match if it returns true:
<%class>
method allow_path_info { 1 }
</%class>
The default "allow_path_info" returns false.
"allow_path_info" is not checked on dhandlers, since the whole point of dhandlers is to match partial paths.
Routes
It is possible to use route syntax to more elegantly parse "$m->path_info" for dhandlers and partial paths, e.g.
<%class>
route "{year:[0-9]+}/{month:[0-9]{2}}";
</%class>
See Mason::Plugin::RouterSimple.
SEE ALSO
Mason
AUTHOR
Jonathan Swartz <swartz@pobox.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Jonathan Swartz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
perl v5.14.2 2012-05-02 Mason::Manual::RequestDispatch(3pm)