Jesse Luehrs > OX-0.13 > OX::RouteBuilder

Download:
OX-0.13.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.13   Source   Latest Release: OX-0.14

NAME ^

OX::RouteBuilder - abstract role for classes that turn configuration into a route

VERSION ^

version 0.13

DESCRIPTION ^

This is an abstract role which is used to turn simplified and easy to understand routing descriptions into actual routes that the router understands. Currently, the API is a bit specific to Path::Router.

For usable examples, see OX::RouteBuilder::ControllerAction, OX::RouteBuilder::HTTPMethod, and OX::RouteBuilder::Code.

ATTRIBUTES ^

path

The path that this route is for. Required.

route_spec

The route_spec that describes how this path should be routed. See OX::Application::Role::RouteBuilder. Required.

params

The defaults and validations for this path. See Path::Router for more information. Required.

METHODS ^

compile_routes($app)

This is a required method which should generate a list of routes based on the contents of the object. Each route should be a hashref with these keys:

path

Path specification for the route.

target

Coderef to call to handle the request.

defaults

Extra values which will be included in the resulting match.

validations

Validation rules for variable path components. See Path::Router for more information.

parse_action_spec($action_spec)

Required class method which should take the actual action specification provided in the user's router description and return either a route_spec that can be understood by OX::Application::Role::RouteBuilder or undef (if the action spec wasn't of the form that could be understood by this class).

extract_defaults_and_validations

Helper method which sorts the params into defaults and validations.

AUTHORS ^

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2013 by Infinity Interactive.

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

syntax highlighting: