From: Robert Klemme Date: 2004-04-09T02:59:16+09:00 Subject: Re: How to figure out the sender? You can use set_trace_function to record this kind of information at runtime. robert "T.Oakley" schrieb im Newsbeitrag news:opr55abuaexses1n@news.elisa.net... > Continuing my established tradition of stupid questions, I'm wondering how I can figure out who sent a message to an object. Couldn't figure this one out from the ref manual or the "Programming Ruby (&c)" book. I know Kernel::caller exists, but it only returns the calling method and line number in the source, nothing about which object/class the method is associated to. Being the whiny bastage I am, I'm not satisfied with this, and I want to find out all sorts of trivial information about the caller of my methods. I don't let my methods hang out with delinquent classes :) > > Seriously speaking, I'm just interested in knowing information about the object that calls method xyz, like so: > > > class Frobble > ... > ... > def xyz(value) > > if self.caller_class = "Moog" # #caller_class is just an example. Could be just #caller for example > return value/43 > else > return value/13 > end > end > ... > ... > end > > q = Frobble.new > > class Moog > > ... > a.baz = q.xyz(27) > ... > > > Thanks again, > > Thomas