<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">NAME
    Mason::Plugin::RouterSimple - Specify routes for page components

VERSION
    version 0.04

SYNOPSIS
    In a top-level component '/archives.mc':

        %% route ":section/{year:[0-9]{4}}/{month:[0-9]{2}}";

        Archives for &lt;b&gt;&lt;% $.section %&gt;&lt;/b&gt;
        For the month of &lt;% $.month %&gt;/&lt;% $.year %&gt;

    then `/archives/news/2010/02' outputs

        Archives for &lt;b&gt;news&lt;/b&gt;
        For the month of 2010/02

DESCRIPTION
    See Mason::Manual::RequestDispatch for background on how request paths
    get mapped to page components.

    This plugin allows you to parse `$m-&gt;path_info' (the remainder of the
    top-level path) using Router::Simple routes.

    It can be used whenever `$m-&gt;path_info' is set, i.e. with a dhandler or
    with a partial path.

    Use the `route' keyword to declare routes, either in a &lt;%class&gt; block or
    on a %%-line. Like Router::Simple::connect, `route' takes a string/regex
    pattern and a destination hashref; the latter defaults to `{}' if
    omitted. e.g.

        %% route "wiki/:page", { action =&gt; "wiki" };

        &lt;%class&gt;
        route "download/*.*", { action =&gt; "download" };
        route "blog/{year:[0-9]+}/{month:[0-9]{2}}";
        &lt;/%class&gt;

    This plugin overrides the default allow_path_info to return true for any
    component that declares at least one route. For components that do not
    declare a route, you will need to override `allow_path_info' as usual.

    Any named captured arguments, including `splat', are placed in component
    attributes, which are automatically declared (as standard read-write
    attributes) if you do not otherwise declare them.

    If you specify more than one route in a component, they will be tried in
    turn, with the first matching route taking precedence.

    If none of the routes match, the request will be declined; in a web
    context this generally means a 404.

    e.g. Given the route declarations above in a component named '/site.mc',

    *   The URL `/site/wiki/HomePage' will set `$.action = "wiki"' and
        `$.page = "HomePage"'.

    *   The URL `/site/download/ping.mp3' will set `$.action = "download"'
        and `$.splat = ['ping', 'mp3']'.

    *   The URL `/site/blog/2010/02' will set `$.year = "2010"' and `$.month
        = "02"'.

    *   The URLs `/site/other' and `/site/blog/10/02' will result in a
        decline/404.

SUPPORT
    The mailing list for Mason and Mason plugins is
    mason-users@lists.sourceforge.net. You must be subscribed to send a
    message. To subscribe, visit
    https://lists.sourceforge.net/lists/listinfo/mason-users.

    You can also visit us at `#mason' on irc:.

    Bugs and feature requests will be tracked at RT:

        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mason-Plugin-RouterSimple
        bug-mason-plugin-routersimple@rt.cpan.org

    The latest source code can be browsed and fetched at:

        http://github.com/jonswar/perl-mason-plugin-routersimple
        git clone git://github.com/jonswar/perl-mason-plugin-routersimple.git

SEE ALSO
    Mason, Router::Simple

AUTHOR
    Jonathan Swartz &lt;swartz@pobox.com&gt;

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.

</pre></body></html>