This is a pure ruby implementation of a weak reference. It is much more efficient than the bundled WeakRef implementation because it does not subclass Delegator which is very heavy to instantiate and utilizes a fair amount of memory under Ruby 1.8.
A WeakReference represents a reference to an object that is not seen by the tracing phase of the garbage collector. This allows the referenced object to be garbage collected as if nothing is referring to it.
foo = Object.new ref = References::WeakReference.new(foo) ref.object # should be foo ObjectSpace.garbage_collect ref.object # should be nil
Generated with the Darkfish Rdoc Generator 2.