WeakRef
class WeakRef
Weak Reference class that allows a referenced object to be garbage-collected.
A WeakRef may be used exactly like the object it references-
Usage:
foo = Object.new # create a new object instance p foo.to_s # original's class foo = WeakRef.new(foo) # reassign foo with WeakRef instance p foo.to_s # should be same class GC.start # start the garbage collector p foo.to_s # should raise exception (recycled)
Example
With help from WeakRef, we can implement our own rudimentary WeakHash class-
We will call it W