Sha256: a486e5fb5c2651c5c91ce88f621a0dbc8f4552c27b55514f861a78bbf976eee5
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
module CacheAdvance class CacheSet attr_reader :named_caches attr_reader :qualifiers attr_reader :plugins attr_accessor :observer_type attr_accessor :cache def initialize @named_caches = {} @qualifiers = {} @plugins = [] end def apply(cache_name, request, options, &block) cache = @named_caches[cache_name] raise UnknownNamedCacheException if cache.nil? cache.value_for(request, options, &block) end def add_qualifier(name, proc) @qualifiers[name] = proc end def add_plugin(plugin) @plugins << plugin end def add_named_cache(name, options) @named_caches[name] = NamedCache.new(name, options, self, cache) end def define_caches yield Mapper.new(self) end def create_sweepers observer_type.initialize_observed(@named_caches.values.map { |c| c.expiration_types }.flatten.compact.uniq) end def expire_for_class(class_name) @named_caches.values.each do |cache| cache.expire_for(class_name) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
aub-cache_advance-1.0.0 | lib/cache_advance/cache_set.rb |
aub-cache_advance-1.0.1 | lib/cache_advance/cache_set.rb |