Class HashCache
In: lib/hashcache.rb
Parent: Hash

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

Methods

fetch  

Public Instance methods

[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

[Validate]