class HashCache
A very simple cache. Works just like a Hash
, but can optionally store values during the fetch process.
Example:
hc = HashCache.new hc.fetch("foo") => nil hc.fetch("foo"){:bar} # Block gets called because 'foo' is nil => :bar hc.fetch("foo"){raise "Block won't be called because 'foo' is cached"} => :bar
Public Instance Methods
fetch(key, &block)
click to toggle source
# File lib/hashcache.rb, line 13 def fetch(key, &block) if has_key?(key) self[key] elsif block self[key] = block.call else nil end end