Is there a method I can call where:

If I have:

class Blek
def bM
puts “trace #{self.somemethod}”
end
end

bo = Blek.new
bo.bM

It will give me:

trace bo.bM
or
trace bM

???

I want to set up stuff that tells me what method I am in, largely for
raising
exceptions in various circumstances, but I want to control the message
myself,
so I’d like specifically knowledge of the method name available as
stated.

Xeno C. / Eskimo North and Gmail wrote:

so I’d like specifically knowledge of the method name available as
stated.

The method method should do the trick:

ruby -v: ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux]
irb(main):001:0> def foo
irb(main):002:1> p method
irb(main):003:1> end
=> nil
irb(main):004:0> foo
:foo
=> :foo
irb(main):005:0>

That one is implemented since 1.8.7 I think. The class name is available
via #class.

Marvin

method or callee

On Jun 18, 4:03 pm, Xeno C. / Eskimo North and Gmail

On 10-06-18 01:32 PM, Intransition wrote:

method or callee

Thank you. method seems to work, but callee seems to fail, and
I cannot
find it in pickaxe:

./test.rb:8:in bm': undefined local variable or methodcallee’ for #Blek:0xb78989f8 (NameError)
from ./test.rb:18

I tried several variations of that too, and they all fail. Still, you
got me
going. Thank you very much.

Sincerely, Xeno.
xc

On Jun 18, 4:44 pm, Xeno C. / Eskimo North and Gmail
[email protected] wrote:

On 10-06-18 01:32 PM, Intransition wrote:

method or callee

Thank you. method seems to work, but callee seems to fail, and I cannot
find it in pickaxe:

./test.rb:8:in bm': undefined local variable or methodcallee’ for #Blek:0xb78989f8 (NameError)
from ./test.rb:18

It’s a 1.9. thing:

http://eigenclass.org/hiki/Changes+in+Ruby+1.9#l168