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