Sha256: 6501a6a32425026c94655da91172663a7a099e36cc853632b3c3021276bbe1c4
Contents?: true
Size: 1.16 KB
Versions: 18
Compression:
Stored size: 1.16 KB
Contents
require 'base64' module Rack::Cache::AppEngine module MC require 'java' import com.google.appengine.api.memcache.Expiration; import com.google.appengine.api.memcache.MemcacheService; import com.google.appengine.api.memcache.MemcacheServiceFactory; import com.google.appengine.api.memcache.Stats; Service = MemcacheServiceFactory.getMemcacheService end unless defined?(Rack::Cache::AppEngine::MC) class MemCache def initialize(options = {}) @cache = MC::Service @cache.namespace = options[:namespace] if options[:namespace] end def contains?(key) MC::Service.contains(key) end def get(key) value = MC::Service.get(key) Marshal.load(Base64.decode64(value)) if value end def put(key, value, ttl = nil) expiration = ttl ? MC::Expiration.byDeltaSeconds(ttl) : nil value = Base64.encode64(Marshal.dump(value)).gsub(/\n/, '') MC::Service.put(key, value, expiration) end def namespace MC::Service.getNamespace end def namespace=(value) MC::Service.setNamespace(value.to_s) end def delete(key) MC::Service.delete(key) end end end
Version data entries
18 entries across 17 versions & 2 rubygems