The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojolicious::Plugin::PlainRoutes - Plaintext route definitions for Mojolicious

VERSION

version 0.07

SYNOPSIS

In lib/MyApp.pm:

    sub startup {
        ...
        $self->plugin('PlainRoutes');
        ...
    }

In lib/myapp.routes:

    # Routes file for MyApp.pm
    ANY / -> Foo.do {
        GET /bar -> Foo.bar
        ANY /baz -> Foo.baz {
            GET /quux -> Foo.quux
        }
    }

    GET /foo/bar/baz/quux -> Foo::Bar::Baz.quux (fbb-quux)

DESCRIPTION

Routes are defined as an HTTP verb, followed by a path, followed by a controller/action pair. (The arrow is optional.) An optional name for the route can be appended with parentheses.

If a route is followed by braces, then it will act as a bridge for the contained routes.

Anything following a "#" is a comment until the end of the line, as in Perl.

CONFIGURATION

    $self->plugin('PlainRoutes', {
        # Specify the path of the routes file
        file => $self->home->rel_file('path/to/myapp.routes'),

        # Get automatic names for routes of the form "controller-action"
        autoname => 1,

        # or do it with a callback
        autoname => sub {
            my ($verb, $path, $controller, $action) = @_;
            return "$controller-$action";
        },
    });

SUPPORT

Use the issue tracker on the Github repository for bugs/feature requests:

    https://github.com/RogerDodger/Mojolicious-Plugin-PlainRoutes/issues

AUTHOR

Cameron Thornton <cthor@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Cameron Thornton.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.