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, line 92 def initialize @cache = {} end
Public Instance Methods
clear()
click to toggle source
Clears the cache.
# File lib/tilt.rb, line 109 def clear @cache = {} 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, line 102 def fetch(*key) @cache.fetch(key) do @cache[key] = yield end end