class Rack::Cache::EntityStore::MEM

Stores entity bodies on the heap using a Hash object.

Public Class Methods

new(hash={}) click to toggle source

Create the store with the specified backing Hash.

   # File lib/rack/cache/entity_store.rb
38 def initialize(hash={})
39   @hash = hash
40 end
resolve(uri) click to toggle source
   # File lib/rack/cache/entity_store.rb
74 def self.resolve(uri)
75   new
76 end

Public Instance Methods

exist?(key) click to toggle source

Determine whether the response body with the specified key (SHA1) exists in the store.

   # File lib/rack/cache/entity_store.rb
44 def exist?(key)
45   @hash.include?(key)
46 end
open(key) click to toggle source

Return an object suitable for use as a Rack response body for the specified key.

   # File lib/rack/cache/entity_store.rb
50 def open(key)
51   (body = @hash[key]) && body.dup
52 end
purge(key) click to toggle source

Remove the body corresponding to key; return nil.

   # File lib/rack/cache/entity_store.rb
69 def purge(key)
70   @hash.delete(key)
71   nil
72 end
read(key) click to toggle source

Read all data associated with the given key and return as a single String.

   # File lib/rack/cache/entity_store.rb
56 def read(key)
57   (body = @hash[key]) && body.join
58 end
write(body, ttl=nil) click to toggle source

Write the Rack response body immediately and return the SHA1 key.

   # File lib/rack/cache/entity_store.rb
61 def write(body, ttl=nil)
62   buf = []
63   key, size = slurp(body) { |part| buf << part }
64   @hash[key] = buf
65   [key, size]
66 end