Sha256: e429b7f465f874bcc5e9bb995656dc0400c523e5a4e2e7da65013ff0c7e2fe8e
Contents?: true
Size: 1.56 KB
Versions: 3
Compression:
Stored size: 1.56 KB
Contents
# Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com # All files in this distribution are subject to the terms of the Ruby license. require 'localmemcache' module Ramaze class Cache # Cache based on the localmemcache library which utilizes mmap to share # strings in memory between ruby instances. class LocalMemCache include Cache::API OPTIONS = { :size_mb => 1024, :serialize => true, :serializer => ::Marshal, # something that responds to ::load and ::dump } # Connect to localmemcache def cache_setup(host, user, app, name) @namespace = [host, user, app, name].compact.join('-') options = {:namespace => @namespace}.merge(OPTIONS) @serialize = options.delete(:serialize) @serializer = options.delete(:serializer) @store = ::LocalMemCache.new(options) end # Wipe out _all_ data in localmemcached, use with care. def cache_clear @store.clear end def cache_delete(*args) super { |key| @store.delete(key.to_s); nil } end # NOTE: # * We have no way of knowing whether the value really is nil, we # assume you wouldn't cache nil and return the default instead. def cache_fetch(*args) super { |key| value = @store[key.to_s] @serializer.load(value) if value } end def cache_store(*args) super { |key, value| @store[key.to_s] = @serializer.dump(value) } end end # LocalMemCache end # Cache end # Ramaze
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ramaze-2011.12.28 | lib/ramaze/cache/localmemcache.rb |
ramaze-2011.10.23 | lib/ramaze/cache/localmemcache.rb |
ramaze-2011.07.25 | lib/ramaze/cache/localmemcache.rb |