class Tilt::Cache
Extremely simple template cache implementation. Calling applications create a Tilt::Cache
instance and use fetch
with any set of hashable arguments (such as those to Tilt.new
):
cache = Tilt::Cache.new cache.fetch(path, line, options) { Tilt.new(path, line, options) }
Subsequent invocations return the already loaded template object.
@note
Tilt::Cache is a thin wrapper around Hash. It has the following limitations: * Not thread-safe. * Size is unbounded. * Keys are not copied defensively, and should not be modified after being passed to #fetch. More specifically, the values returned by key#hash and key#eql? should not change. If this is too limiting for you, use a different cache implementation.
Public Class Methods
new()
click to toggle source
# File lib/tilt.rb 123 def initialize 124 @cache = {} 125 end
Public Instance Methods
clear()
click to toggle source
Clears the cache.
# File lib/tilt.rb 140 def clear 141 @cache = {} 142 end
fetch(*key) { || ... }
click to toggle source
Caches a value for key, or returns the previously cached value. If a value has been previously cached for key then it is returned. Otherwise, block is yielded to and its return value which may be nil, is cached under key and returned. @yield @yieldreturn the value to cache for key
# File lib/tilt.rb 133 def fetch(*key) 134 @cache.fetch(key) do 135 @cache[key] = yield 136 end 137 end