Module: Sinatra::NamedRoute::Helpers

Defined in:
lib/sinatra/named_route.rb

Instance Method Summary collapse

Instance Method Details

#fetch_uri(key, cache_key: nil) ⇒ Object



37
38
39
40
41
# 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) ⇒ Object



28
29
30
31
32
33
34
35
# 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