ObjectSpace._id2ref
Object#object_id で得たオブジェクトIDからオブジェクトを得ることができる。
irb(main):001:0> a = "hoge" => "hoge" irb(main):002:0> b = ObjectSpace._id2ref( a.object_id ) => "hoge" irb(main):003:0> a.equal?( b ) => true
既にGCされたオブジェクトに対して行うと例外が発生する。
irb(main):001:0> a = "hoge" => "hoge" irb(main):002:0> id = a.object_id => 22845250 irb(main):003:0> a = nil => nil irb(main):004:0> GC.start => nil irb(main):005:0> ObjectSpace._id2ref( id ) RangeError: 0x15c9742 is recycled object from (irb):5:in `_id2ref' from (irb):5
オブジェクトがGCされたかどうか調べたいときに使えるかもね。