class Sinatra::TemplateCache

def fetch(*key)

which may be nil, is cached under key and returned.
returned. Otherwise, block is yielded to and its return value
If a value has been previously cached for key then it is
Caches a value for key, or returns the previously cached value.
def fetch(*key)
  @cache.fetch(key) do
    @cache[key] = yield
  end
end