From: Alan Gutierrez Date: 2010-07-24T06:30:10+09:00 Subject: Re: Determining the Source File of a Class Ryan Davis wrote: > On Jul 23, 2010, at 13:40 , Alan Gutierrez 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. 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`. -- Alan Gutierrez - alan@blogometer.com - http://twitter.com/bigeasy