Sha256: 918fe76ee320e922175a9398088a775d7817e4ee5c24e3a39b9b5c2b05a36c8f

Contents?: true

Size: 1.21 KB

Versions: 112

Compression:

Stored size: 1.21 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

112 entries across 88 versions & 21 rubygems

Version Path
rack-cache-1.5.1 lib/rack/cache/appengine.rb
rack-cache-1.5.0 lib/rack/cache/appengine.rb
rack-cache-1.4.3 lib/rack/cache/appengine.rb
rack-cache-1.4.2 lib/rack/cache/appengine.rb
rack-cache-1.4.1 lib/rack/cache/appengine.rb
rack-cache-1.4.0 lib/rack/cache/appengine.rb
rack-cache-1.3.1 lib/rack/cache/appengine.rb
rack-cache-1.3.0 lib/rack/cache/appengine.rb
active_mailer-0.0.10 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
josh-rack-cache-0.5.1 lib/rack/cache/appengine.rb
rtomayko-rack-cache-0.5.1 lib/rack/cache/appengine.rb
rtomayko-rack-cache-0.5 lib/rack/cache/appengine.rb
swipe-rails-0.0.5 vendor/bundle/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
active_mailer-0.0.9 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
active_mailer-0.0.8 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
active_mailer-0.0.7 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
active_mailer-0.0.6 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
font-awesome-rails-3.1.1.2 vendor/ruby/2.0.0/gems/rack-cache-1.2/lib/rack/cache/appengine.rb
font-awesome-rails-3.1.1.2 vendor/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/appengine.rb