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されたかどうか調べたいときに使えるかもね。