/usr/lib/ruby/1.8/ramaze/cache/localmemcache.rb is in libramaze-ruby1.8 2010.06.18-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | # 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
end
end
|