class Rack::Cache::EntityStore::Dalli

Uses the Dalli ruby library. This is the default unless the memcached library has already been required.

Public Class Methods

new(server="localhost:11211", options={}) click to toggle source
# File lib/rack/cache/entity_store.rb, line 210
def initialize(server="localhost:11211", options={})
  @cache =
    if server.respond_to?(:stats)
      server
    else
      require 'dalli'
      ::Dalli::Client.new(server, options)
    end
end

Public Instance Methods

exist?(key) click to toggle source
# File lib/rack/cache/entity_store.rb, line 220
def exist?(key)
  !cache.get(key).nil?
end
purge(key) click to toggle source
# File lib/rack/cache/entity_store.rb, line 236
def purge(key)
  cache.delete(key)
  nil
end
read(key) click to toggle source
# File lib/rack/cache/entity_store.rb, line 224
def read(key)
  data = cache.get(key)
  data.force_encoding('BINARY') if data.respond_to?(:force_encoding)
  data
end
write(body, ttl=nil) click to toggle source
# File lib/rack/cache/entity_store.rb, line 230
def write(body, ttl=nil)
  buf = StringIO.new
  key, size = slurp(body){|part| buf.write(part) }
  [key, size] if cache.set(key, buf.string, ttl)
end