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