module Athena::Routing::URLGeneratorInterface
Overview
Interface for URL generation types.
Implementors must define a #generate
method that accepts the route name, any params, and what type of URL should be generated and return the URL string.
Direct including types
Defined in:
routing/url_generator_interface.crInstance Method Summary
-
#generate(route : String, params : Hash(String, _) | Nil = nil, reference_type : ART::URLGeneratorInterface::ReferenceType = :absolute_path) : String
Generates a URL to the provided route with the provided params.
Instance Method Detail
abstract
def generate(route : String, params : Hash(String, _) | Nil = nil, reference_type : ART::URLGeneratorInterface::ReferenceType = :absolute_path) : String
#
Generates a URL to the provided route with the provided params.
By default the path is an ART::URLGeneratorInterface::ReferenceType::Absolute_Path
,
but can be changed via the reference_type argument.
Any params not related to an argument for the provided route will be added as query params.
require "athena"
class ExampleController < ART::Controller
@[ART::Get("/add/:value1/:value2", name: "add")]
def add(value1 : Int32, value2 : Int32, negative : Bool = false) : Int32
0
end
@[ART::Get("/")]
def get_link : String
""
end
end
generator.generate "add", value1: 10, value2: 5 # => /add/10/5