> On 6/6/07, Robert Klemme <shortcut
@googlemail.com> wrote:
>> On 06.06.2007 17:10, Meinrad Recheis wrote:
>> > irb(main):001:0> VERSION
>> > => "1.8.5"
>> > irb(main):002:0> o=Object.new
>> > => #<Object:0x2c1c8f0>
>> > irb(main):003:0> ObjectSpace._id2ref 0x2c1c8f0
>> > RangeError: 0x2c1c8f0 is not id value
>> > from (irb):3:in `_id2ref'
>> > from (irb):3
>> > irb(main):004:0> ObjectSpace._id2ref 0x2c1c8f0/2
>> > => #<Object:0x2c1c8f0>
>> > irb(main):005:0>
>> > I think that is pretty confusing. I am sure there is a good reason for
>> > this. But, don't you think it'd be better to display the real
>> > object_id instead of the doubled value?
>> The output of #inspect is not meant to give you any means to get at the
>> original object although it may seem so at times. Having said that,
>> #object_id and #inspect are completely unrelated and it's just an
>> implementation artifact that some classes actually return something that
>> resembles the object id.
>> As far as I remember this list you are the first one that mentions this.
>> So it's probably not that big an issue (at least not as confusing as
>> "singleton class" :-))
> Thanks for your answer. I came across it while debugging a running
> application via an eval console. It's not really a problem because I
> know that I need to divide the displayed id by 2 to get the object.
Well, but that won't work for all cases.