module Sinatra::NamedRoute::Helpers

Public Instance Methods

fetch_uri(key, cache_key: nil) { |key| ... } click to toggle source
# File lib/sinatra/named_route.rb, line 37
def fetch_uri(key, cache_key: nil)
  cache = settings.named_routes_cache
  return cache[cache_key] if cache[cache_key]
  cache[cache_key] = yield(key)
end
uri(*args) click to toggle source
Calls superclass method
# File lib/sinatra/named_route.rb, line 28
def uri(*args)
  return super unless args.first.is_a?(Symbol)
  fetch_uri(args.first, cache_key: args) do |key|
    signature = settings.named_routes.find { |name:, **o| key == name }
    fail RouteNotFound unless signature
    signature[:pattern].expand(args[1] || {})
  end
end