Class: Sass::CacheStores::Chain
- Defined in:
- lib/sass/cache_stores/chain.rb
Overview
A meta-cache that chains multiple caches together. Specifically:
- All
#store
s are passed to all caches. #retrieve
s are passed to each cache until one has a hit.- When one cache has a hit, the value is
#store
d in all earlier caches.
Instance Method Summary collapse
-
#initialize(*caches) ⇒ Chain
constructor
Create a new cache chaining the given caches.
- #retrieve(key, sha)
- #store(key, sha, obj)
Methods inherited from Base
Constructor Details
#initialize(*caches) ⇒ Chain
Create a new cache chaining the given caches.
13 14 15 |
# File 'lib/sass/cache_stores/chain.rb', line 13
def initialize(*caches)
@caches = caches
end
|
Instance Method Details
#retrieve(key, sha)
23 24 25 26 27 28 29 30 31 |
# File 'lib/sass/cache_stores/chain.rb', line 23
def retrieve(key, sha)
@caches.each_with_index do |c, i|
obj = c.retrieve(key, sha)
next unless obj
@caches[0...i].each {|prev| prev.store(key, sha, obj)}
return obj
end
nil
end
|
#store(key, sha, obj)
18 19 20 |
# File 'lib/sass/cache_stores/chain.rb', line 18
def store(key, sha, obj)
@caches.each {|c| c.store(key, sha, obj)}
end
|