Sha256: ca76a51ae0a65a7c505312a110ee69dee0fed3f33624df357b7f0d370ee635e4
Contents?: true
Size: 939 Bytes
Versions: 92
Compression:
Stored size: 939 Bytes
Contents
module Sass module CacheStores # 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. class Chain < Base # Create a new cache chaining the given caches. # # @param caches [Array<Sass::CacheStores::Base>] The caches to chain. def initialize(*caches) @caches = caches end # @see Base#store def store(key, sha, obj) @caches.each {|c| c.store(key, sha, obj)} end # @see Base#retrieve def retrieve(key, sha) @caches.each_with_index do |c, i| next unless obj = c.retrieve(key, sha) @caches[0...i].each {|prev| prev.store(key, sha, obj)} return obj end nil end end end end
Version data entries
92 entries across 87 versions & 9 rubygems