I'm in the process of writing an HTTP-1.1 extension to Net::HTTP. At the moment, I'm replacing Net::HTTP#get with a version that will check for a valid cache entry and return that instead of the fresh result, and the original, uncached functionality is in #get_fresh At the moment, I've made the cache per-class: A single class variable for the cache, something like Net::HTTP.cache = new Net::HTTPCache, then the new functionality starts. Is this sane? Should it be an instance variable instead of a class variable? Is there a more orthagonal way to do this? Ari