From: Vincent Fourmond Date: 2006-12-20T04:47:31+09:00 Subject: Re: what exactly does obj.is_a? do? Jon Garvin wrote: > I've got a theory that I hope someone familiar with the deep recesses of > Ruby's internals can confirm or deny. > > According to the API, obj.is_a? "Returns true if /class/ is the > class of /obj/, or if /class/ is one of the superclasses of /obj/ or > modules included in /obj/." > For the purpose of this question, the only part I'm concerned with is > "Returns true if /class/ is the class of /obj/", so let's ignore the rest.// > > My theory is that Ruby is simply returning the result of... > > @my_obj.class.object_id == Klass.object_id > > when I do... > > @my_obj.is_a?(Klass) No: is_a? also returns true when the @my_obj is an instance of a subclass of Klass. > (Don't forget we're ignoring the superclass and module stuff it does). > > Can anyone confirm or deny this? > > I'd also appreciate a hint pointing me to where I could have dredged up > the answer to this one on my own. Thanks, and happy holidays! If you do ri is_a? on command-line, you'll get immediate answer. Vince -- Vincent Fourmond, PhD student http://vincent.fourmond.neuf.fr/