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

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/rack-cache-1.17.0/lib/rack/cache/app_engine.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/rack-cache-1.17.0/lib/rack/cache/app_engine.rb
rack-cache-1.17.0 lib/rack/cache/app_engine.rb
rack-cache-1.16.0 lib/rack/cache/app_engine.rb
rack-cache-1.15.0 lib/rack/cache/app_engine.rb
rack-cache-1.14.0 lib/rack/cache/app_engine.rb
rack-cache-1.13.0 lib/rack/cache/app_engine.rb
rack-cache-1.12.1 lib/rack/cache/app_engine.rb
rack-cache-1.12.0 lib/rack/cache/app_engine.rb
rack-cache-1.11.1 lib/rack/cache/app_engine.rb
rack-cache-1.11.0 lib/rack/cache/app_engine.rb
rack-cache-1.10.0 lib/rack/cache/app_engine.rb
rack-cache-1.9.0 lib/rack/cache/app_engine.rb
rack-cache-1.8.0 lib/rack/cache/app_engine.rb
rack-cache-1.7.2 lib/rack/cache/app_engine.rb
rack-cache-1.7.1 lib/rack/cache/app_engine.rb
rack-cache-1.7.0 lib/rack/cache/app_engine.rb
rack-cache-1.6.1 lib/rack/cache/app_engine.rb