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)
# File lib/weakref.rb, line 37
def initialize(orig)
  case orig
  when true, false, nil
    @delegate_sd_obj = orig
  else
    @@__map[self] = orig
  end
  super
end Creates a weak reference to orig
Raises an ArgumentError if the given orig is immutable, such as Symbol, Integer, or Float.
Delegator::new # File lib/weakref.rb, line 58 def weakref_alive? @@__map.key?(self) or defined?(@delegate_sd_obj) end
Returns true if the referenced object is still alive.
    Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.