class Rack::Cache::EntityStore::HEAP
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