class Rack::Cache::EntityStore::MEM
Stores entity bodies on the heap using a Hash object.
Public Class Methods
new(hash={}, options = {})
click to toggle source
Create the store with the specified backing Hash.
# File lib/rack/cache/entity_store.rb, line 37 def initialize(hash={}, options = {}) @hash = hash @options = options end
resolve(uri, options = {})
click to toggle source
# File lib/rack/cache/entity_store.rb, line 74 def self.resolve(uri, options = {}) new({}, options) 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, line 44 def exist?(key) @hash.include?(key) 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, line 50 def open(key) (body = @hash[key]) && body.dup end
purge(key)
click to toggle source
Remove the body corresponding to key; return nil.
# File lib/rack/cache/entity_store.rb, line 69 def purge(key) @hash.delete(key) nil 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, line 56 def read(key) (body = @hash[key]) && body.join 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, line 61 def write(body, ttl=nil) buf = [] key, size = slurp(body) { |part| buf << part } @hash[key] = buf [key, size] end