Module Rack::Cache
  1. lib/rack/cache/cachecontrol.rb
  2. lib/rack/cache/context.rb
  3. lib/rack/cache/entitystore.rb
  4. lib/rack/cache/key.rb
  5. lib/rack/cache/options.rb
  6. lib/rack/cache/metastore.rb
  7. lib/rack/cache/request.rb
  8. lib/rack/cache/response.rb
  9. lib/rack/cache/storage.rb
  10. lib/rack/cache.rb
  11. show all

HTTP Caching For Rack

Rack::Cache is suitable as a quick, drop-in component to enable HTTP caching for Rack-enabled applications that produce freshness (Expires, Cache-Control) and/or validation (Last-Modified, ETag) information.

  • Standards-based (RFC 2616 compliance)
  • Freshness/expiration based caching and validation
  • Supports HTTP Vary
  • Portable: 100% Ruby / works with any Rack-enabled framework
  • Disk, memcached, and heap memory storage backends

Usage

Create with default options:

require 'rack/cache'
Rack::Cache.new(app, :verbose => true, :entitystore => 'file:cache')

Within a rackup file (or with Rack::Builder):

require 'rack/cache'
use Rack::Cache do
  set :verbose, true
  set :metastore, 'memcached://localhost:11211/meta'
  set :entitystore, 'file:/var/cache/rack'
end
run app

Methods

public class

  1. new

Constants

MEMCACHED = MEMCACHE
GAECACHE = GAEStore
GAE = GAEStore
MEMCACHED = MEMCACHE
GAECACHE = GAEStore
GAE = GAEStore

Public class methods

new (backend, options={}, &b)

Create a new Rack::Cache middleware component that fetches resources from the specified backend application. The options Hash can be used to specify default configuration values (see attributes defined in Rack::Cache::Options for possible key/values). When a block is given, it is executed within the context of the newly create Rack::Cache::Context object.

[show source]
    # File lib/rack/cache.rb, line 42
42:   def self.new(backend, options={}, &b)
43:     Context.new(backend, options, &b)
44:   end