Sha256: e61083b309608342acb52d4d361748c5bb779db11b6c7df16b69b6285c74f2a1
Contents?: true
Size: 1002 Bytes
Versions: 1
Compression:
Stored size: 1002 Bytes
Contents
require 'digest' require_relative 'cache' class FileCache < Cache def initialize super end def create_store @cache = Hash.new @keys = Hash.new if store == nil raise 'Store path is missing!' end end def put(key, value) if ((key =~ /\A[a-zA-Z0-9_-]+\z/) != 0) || !(key.instance_of? String) raise 'Invalid key value used!' end @keys[key] = Digest::MD5.hexdigest(key) + Time.now.to_i.to_s @cache[key] = value File.open(File.join(store, @keys[key]), 'w') do |f| f.write(value) end @scheduler.in expiry_time, :blocking => true do invalidate key end end def get(key) refresh return File.read(File.join(store, @keys[key])) end def invalidate(key) super File.delete(File.join(store, @keys[key])) end def invalidateAll super Dir.foreach(store) do |f| File.delete(File.join(store, f)) if f != '.' && f != '..' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
libcache-0.2.1 | lib/libcache/file_cache.rb |