Skip to content

class Athena::Routing::Router
inherits Reference #

Included modules

Athena::Routing::Matcher::RequestMatcherInterface Athena::Routing::RouterInterface

Constructors#

.new(route_collection : ART::RouteCollection, default_locale : String | Nil = nil, strict_requirements : Bool | Nil = true, context : ART::RequestContext | Nil = nil, route_provider : ART::RouteProvider.class = ART::RouteProvider)#

Methods#

#context : ART::RequestContext#

Returns the request context.

#context=(context : ART::RequestContext)#

Sets the request context.

#generate(route : String, params : Hash(String, String | Nil) = Hash(String, String | ::Nil).new, reference_type : ART::Generator::ReferenceType = :absolute_path) : String#

Generates a URL for the provided route, optionally with the provided params and reference_type.

#generate(route : String, reference_type : ART::Generator::ReferenceType = :absolute_path, **params) : String#

Generates a URL for the provided route, optionally with the provided params and reference_type.

#generator : ART::Generator::Interface#

#match(path : String) : Hash(String, String | Nil)#

Tries to match the provided path to its related route. Returns a hash of the route's defaults and parameters resolved from the path.

Raises an ART::Exception::ResourceNotFound if no route could be matched.

Raises an ART::Exception::MethodNotAllowed if a route exists but not for the current HTTP method.

#match(request : ART::Request) : Hash(String, String | Nil)#

Tries to match the provided request to its related route. Returns a hash of the route's defaults and parameters resolved from the request.

Raises an ART::Exception::ResourceNotFound if no route could be matched.

Raises an ART::Exception::MethodNotAllowed if a route exists but not for the request's method.

#match?(path : String) : Hash(String, String | Nil) | Nil#

Tries to match the provided path to its related route. Returns a hash of the route's defaults and parameters resolved from the path.

Returns nil if no route could be matched or a route exists but not for the current HTTP method.

#match?(request : ART::Request) : Hash(String, String | Nil) | Nil#

Tries to match the provided request to its related route. Returns a hash of the route's defaults and parameters resolved from the request.

Returns nil if no route could be matched or a route exists but not for the request's method.

#matcher : ART::Matcher::URLMatcherInterface#

#route_collection : ART::RouteCollection#

:inherit: