class Sass::CacheStores::Chain

A meta-cache that chains multiple caches together. Specifically:

Public Class Methods

new(*caches) click to toggle source

Create a new cache chaining the given caches.

@param caches [Array<Sass::CacheStores::Base>] The caches to chain.

# File lib/sass/cache_stores/chain.rb, line 13
def initialize(*caches)
  @caches = caches
end

Public Instance Methods

retrieve(key, sha) click to toggle source

@see Sass::CacheStores::Base#retrieve

# 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) click to toggle source

@see Sass::CacheStores::Base#store

# File lib/sass/cache_stores/chain.rb, line 18
def store(key, sha, obj)
  @caches.each {|c| c.store(key, sha, obj)}
end