Sha256: a75b9932f9f7e175d4c4e62b509e2bd682245b6655f2630f776dd5cb9254e438
Contents?: true
Size: 996 Bytes
Versions: 4
Compression:
Stored size: 996 Bytes
Contents
module Innate class Cache # Used by caches that serialize their contents to the filesystem. module FileBased attr_reader :filename def cache_setup(*args) @prefix = args.compact.join('-') @dir = File.join(Dir.tmpdir, self.class::DIR) FileUtils.mkdir_p(@dir) @filename = File.join(@dir, @prefix + self.class::EXT) @store = self.class::STORE.new(@filename) end def cache_clear FileUtils.mkdir_p(@dir) FileUtils.rm_f(@filename) @store = self.class::STORE.new(@filename) end def cache_store(*args) super{|key, value| transaction{|store| store[key] = value } } end def cache_fetch(*args) super{|key| transaction{|store| store[key] } } end def cache_delete(*args) super{|key| transaction{|store| store.delete(key) } } end def transaction(&block) Innate.sync{ @store.transaction(&block) } end end end end
Version data entries
4 entries across 4 versions & 2 rubygems