Determining the Source File of a Class

I’m trying to debug a bug where I seem to have a class that has two
defintions, the one I know of, and another one, somewhere, the one I’m
getting when I attempt to use the class.

Given a class, is there a way to get name of the file in which it was
defined?

MyClass.defintion_file

Something like that?

On Jul 23, 2010, at 13:40 , Alan G. wrote:

I’m trying to debug a bug where I seem to have a class that has two defintions, the one I know of, and another one, somewhere, the one I’m getting when I attempt to use the class.

Given a class, is there a way to get name of the file in which it was defined?

MyClass.defintion_file

Something like that?

Classes in ruby are “open”, which means that they can be extended at any
time. So there isn’t really a “definition” (at least, for a single
location) of a given class.

You also have the case where something isn’t opened to have stuff added
to it, but instead it can be extended by modules instead.

If you want, you can play with the reflective hooks in Module:
method_added, included, extended, etc.

Ryan D. wrote:

Classes in ruby are “open”, which means that they can be extended at any time. So there isn’t really a “definition” (at least, for a single location) of a given class.
Thank you. That answers my question.

You also have the case where something isn’t opened to have stuff added to it, but instead it can be extended by modules instead.

If you want, you can play with the reflective hooks in Module: method_added, included, extended, etc.

Sounds like fire hose, but I’m sure there’s a clever Ruby way to control
the torrent.

Fortunately, I seem to have found the other definition that is being
invoked using find and grep.