Module Rack::Cache
In: lib/rack/cache/options.rb
lib/rack/cache/response.rb
lib/rack/cache/cachecontrol.rb
lib/rack/cache/key.rb
lib/rack/cache/entitystore.rb
lib/rack/cache/request.rb
lib/rack/cache/metastore.rb
lib/rack/cache/context.rb
lib/rack/cache/storage.rb
lib/rack/cache.rb

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

new  

Classes and Modules

Module Rack::Cache::AppEngine
Module Rack::Cache::Options
Class Rack::Cache::CacheControl
Class Rack::Cache::Context
Class Rack::Cache::EntityStore
Class Rack::Cache::GAEStore
Class Rack::Cache::Key
Class Rack::Cache::MetaStore
Class Rack::Cache::Request
Class Rack::Cache::Response
Class Rack::Cache::Storage

Constants

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

Public Class methods

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.

[Source]

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

[Validate]