class Ref::WeakReference::ReferencePointer
Public Class Methods
new(object)
click to toggle source
# File lib/ref/weak_reference/pure_ruby.rb, line 9 def initialize(object) @referenced_object_id = object.__id__ add_backreference(object) end
Public Instance Methods
cleanup()
click to toggle source
# File lib/ref/weak_reference/pure_ruby.rb, line 14 def cleanup obj = ObjectSpace._id2ref(@referenced_object_id) rescue nil remove_backreference(obj) if obj end
object()
click to toggle source
# File lib/ref/weak_reference/pure_ruby.rb, line 19 def object obj = ObjectSpace._id2ref(@referenced_object_id) obj if verify_backreferences(obj) rescue RangeError nil end
Private Instance Methods
supports_backreference?(obj)
click to toggle source
# File lib/ref/weak_reference/pure_ruby.rb, line 55 def supports_backreference?(obj) obj.respond_to?(:instance_variable_get) && obj.respond_to?(:instance_variable_defined?) rescue NoMethodError false end