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
92 def initialize
93   @cache = {}
94 end

Public Instance Methods

clear() click to toggle source

Clears the cache.

    # File lib/tilt.rb
109 def clear
110   @cache = {}
111 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
102 def fetch(*key)
103   @cache.fetch(key) do
104     @cache[key] = yield
105   end
106 end