On 12/19/06, Jon Garvin <jgarvin.lists / gmail.com> wrote: > Vincent Fourmond wrote: > > No: is_a? also returns true when the @my_obj is an instance of a > > subclass of Klass. > > > > > I realize that, but that's beyond the scope of the issue I'm having. > That's why my original post explicitly said to ignore the superclass and > module stuff it does (twice). > > If you do > > > > ri is_a? > > > > on command-line, you'll get immediate answer. > > > > > Nope, all I get is the exact same API stuff I've already looked at > before asking, and quoted in my original post. > > To clarify, I'm interested in *how*, not *if*, is_a? determines whether > @my_obj.is_a?(Klass) with no concern for superclasses or modules. I'm > fairly confident it's going to take somebody familiar with Ruby's source > code, not just the API, to answer this one. > Have you downloaded the ruby source code and poked around a little bit? It's always very educational -- Matz writes very readable C code. I would recommend grabbing the source code, open up "object.c" and do a search for "rb_obj_is_kind_of". Answer should be right there. It's not quite as simple as just comparing object IDs, but it is something close to that. Blessings, TwP PS I don't know exactly how much you want to know about the internals of the ruby C code. A single ruby-talk posting would hardly do it justice. Once resource to get you started, though, is the English translation of the Ruby Hacking Guide: http://rhg.rubyforge.org/