From: nobu.nokada@... Date: 2002-05-20T20:27:17+09:00 Subject: Re: what's the calling method name? --Multipart_Mon_May_20_20:27:15_2002-1 Content-Type: text/plain; charset=US-ASCII Hi, At Mon, 20 May 2002 03:13:04 +0900, wconrad@yagni.com wrote: > There is an experimental patch at > http://yagni.com/stack_frames/index.php that lets you find out the > caller's class. It's against Ruby 1.6.5; let me know if it won't > apply to whatever later version of Ruby you're using and I'll fix it > up. Interesting. It's too hard to get an arbitrary binding, this is possible. I applied it to latest and modified: * renamed #class method to #klass since it is used to get class, * #klass and #function return the Class itself and method ID respectively, not name, * added optional argument for stack_frames to restrict depth (and also to caller), # and imagined about optional arguments for Enumerable#to_a... --Multipart_Mon_May_20_20:27:15_2002-1 Content-Type: text/x-patch; type=gzip; charset=US-ASCII Content-Disposition: attachment; filename="stack_frames.diff.gz" Content-Transfer-Encoding: base64 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 4IWtQ/DpikHwW/VfhuoMArsaAAA= --Multipart_Mon_May_20_20:27:15_2002-1 Content-Type: text/plain; charset=US-ASCII -- Nobu Nakada --Multipart_Mon_May_20_20:27:15_2002-1--