cacheability
A gem that makes client-side caching of HTTP requests a no-brainer. It is built upon the Rack:Cache gem from Ryan Tomayko.
Cached data can be stored in heap, file or memcached. See the Rack::Cache documentation (tomayko.com/src/rack-cache/) for more information.
Installation
gem install cacheability
Usage
require 'cacheability/restclient'
RestClient.log = 'stdout' # displays requests and status codes
resource = RestClient::CacheableResource.new( 'http://some/cacheable/resource',
:cache => { :metastore => 'file:/tmp/cache/meta',
:entitystore => 'file:/tmp/cache/body' }
)
resource.get # get from remote server, and cache if possible
# ...
resource.get # get from cache, if still fresh.
# ...
resource.get(:cache_control => 'no-cache') # explicitly tells to bypass the cache, requires rack-cache >= 0.4
# ...
Do yourself a favor and read:
-
the HTTP specification related to HTTP caching - www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
-
Things Caches Do - tomayko.com/writings/things-caches-do
Supported libraries
-
rest-client > 0.9
Dependencies
-
rack-cache
COPYRIGHT
Copyright © 2008 Cyril Rohr. See LICENSE for details.