Class: Rack::Cache::MetaStore::Disk
- Inherits:
-
Rack::Cache::MetaStore
- Object
- Rack::Cache::MetaStore
- Rack::Cache::MetaStore::Disk
- Defined in:
- lib/rack/cache/meta_store.rb
Overview
Concrete MetaStore implementation that stores request/response pairs on disk.
Constant Summary
Constants inherited from Rack::Cache::MetaStore
DISK, FILE, GAE, GAECACHE, HEAP, MEM, MEMCACHE, MEMCACHED
Instance Attribute Summary collapse
-
#root ⇒ Object
readonly
Returns the value of attribute root.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(root = "/tmp/rack-cache/meta-#{ARGV[0]}") ⇒ Disk
constructor
A new instance of Disk.
- #purge(key) ⇒ Object
- #read(key) ⇒ Object
- #write(key, entries, ttl = nil) ⇒ Object
Methods inherited from Rack::Cache::MetaStore
#cache_key, #invalidate, #lookup, #store
Constructor Details
Instance Attribute Details
#root ⇒ Object (readonly)
Returns the value of attribute root.
237 238 239 |
# File 'lib/rack/cache/meta_store.rb', line 237 def root @root end |
Class Method Details
.resolve(uri) ⇒ Object
282 283 284 285 |
# File 'lib/rack/cache/meta_store.rb', line 282 def self.resolve(uri) path = File.(uri.opaque || uri.path) new path end |
Instance Method Details
#purge(key) ⇒ Object
262 263 264 265 266 267 268 |
# File 'lib/rack/cache/meta_store.rb', line 262 def purge(key) path = key_path(key) File.unlink(path) nil rescue Errno::ENOENT, IOError nil end |
#read(key) ⇒ Object
244 245 246 247 248 249 |
# File 'lib/rack/cache/meta_store.rb', line 244 def read(key) path = key_path(key) File.open(path, 'rb') { |io| Marshal.load(io) } rescue Errno::ENOENT, IOError [] end |
#write(key, entries, ttl = nil) ⇒ Object
251 252 253 254 255 256 257 258 259 260 |
# File 'lib/rack/cache/meta_store.rb', line 251 def write(key, entries, ttl = nil) tries = 0 begin path = key_path(key) File.open(path, 'wb') { |io| Marshal.dump(entries, io, -1) } rescue Errno::ENOENT, IOError Dir.mkdir(File.dirname(path), 0755) retry if (tries += 1) == 1 end end |