class LuckyRouter::Matcher(T)

Overview

Add routes and match routes

'T' is the type of the 'payload'. The 'payload' is what will be returned if the route matches.

Example

# 'T' will be 'Symbol'
router = LuckyRouter::Matcher(Symbol).new

# Tell the router what payload to return if matched
router.add("get", "/users", :index)

# This will return :index
router.match("get", "/users").payload # :index

Defined in:

lucky_router/matcher.cr

Instance Method Summary

Instance Method Detail

def add(method : String, path : String, payload : T) #

[View source]
def compile(*, static_index : Bool = true) : CompiledMatcher(T) #

Freeze the current routing structure for optional static indexing and compact traversal. Later mutations require creating another snapshot. Disable the exact static index when an integrating framework already handles those paths. Static routes still match through the compact trie.


[View source]
def list_routes : Array(Tuple(String, String, T)) #

Array of the path, method, and payload


[View source]
def match(method : String, path_to_match : String) : Match(T) | Nil #

[View source]
def match!(method : String, path_to_match : String) : Match(T) #

[View source]
def match_payload(method : String, path_to_match : String) : T | Nil #

Match without constructing a parameter hash or copying captured strings.


[View source]
def normalized_paths #

[View source]
def root #

starting point from which all fragments are located


[View source]