Class Cache
In: lib/facets/more/cache.rb
Parent: Object

Cache

Cache objects are a kind of "delegator-with-cache".

Usage

  class X
    def initialize ; @tick = 0 ; end
    def tick; @tick + 1; end
    def cached; @cache ||= Cache.new( self ) ; end
  end

  x = X.new
  x.tick  #=> 1
  x.cached.tick  #=> 2
  x.tick  #=> 3
  x.cached.tick  #=> 2
  x.tick  #=> 4
  x.cached.tick  #=> 2

You can also use to cache a collections of objects to gain code speed ups.

  points = points.collect{|point| Cache.cache(point)}

After our algorithm has finished using points, we want to get rid of these Cache objects. That‘s easy:

   points = points.collect{|point| point.self }

Or if you prefer (it is ever so slightly safer):

   points = points.collect{|point| Cache.uncache(point)}

Methods

cache   method_missing   new   self   uncache  

Public Class methods

Public Instance methods

[Validate]