In Files

  • weakref.rb

Parent

Delegator

Namespace

Class/Module Index [+]

Quicksearch
No matching classes.

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)

Constants

VERSION

Public Class Methods

new(orig) click to toggle source

Creates a weak reference to orig

Raises an ArgumentError if the given orig is immutable, such as Symbol, Integer, or Float.

 
 # File weakref.rb, line 37
def initialize(orig)
 case orig
 when true, false, nil
 @delegate_sd_obj = orig
 else
 @@__map[self] = orig
 end
 super
end
 

Public Instance Methods

weakref_alive?() click to toggle source

Returns true if the referenced object is still alive.

 
 # File weakref.rb, line 58
def weakref_alive?
 @@__map.key?(self) or defined?(@delegate_sd_obj)
end
 

AltStyle によって変換されたページ (->オリジナル) /