From: shadowfirebird@... Date: 2008-08-01T22:49:13+09:00 Subject: Re: Get the caller of a class This is profoundly unhelpful, I know: but perhaps you should consider redesigning your method so that it doesn't care where it was called from? That would be more in line with Object Oriented design. You might find that it belongs on another class, for example the parent class of all the classes that you are currently considering calling it from. Or you could leave it where it is and pass some sort of mode string, instead: def doit(mode) case mode when :full then ... when :quick then ... end end On 8/1/08, Robert Klemme wrote: > 2008/8/1 Mario Ruiz : > > There is no such thing as the "caller of a class": a class can be used > by many clients and only methods are actually "called". "caller" is > actually already defined. See whether this helps: > > 15:19:02 bas$ irb > Ruby version 1.8.7 > irb(main):001:0> def a(n) b(n) end > => nil > irb(main):002:0> def b(n) caller(n) end > => nil > irb(main):003:0> 3.times {|i| puts i, a(i), "----"} > 0 > (irb):2:in `b' > (irb):1:in `a' > (irb):4:in `irb_binding' > (irb):4:in `times' > (irb):4:in `irb_binding' > /usr/lib/ruby/1.8/irb/workspace.rb:52:in `irb_binding' > /usr/lib/ruby/1.8/irb/workspace.rb:52 > ---- > 1 > (irb):1:in `a' > (irb):4:in `irb_binding' > (irb):4:in `times' > (irb):4:in `irb_binding' > /usr/lib/ruby/1.8/irb/workspace.rb:52:in `irb_binding' > /usr/lib/ruby/1.8/irb/workspace.rb:52 > ---- > 2 > (irb):4:in `irb_binding' > (irb):4:in `times' > (irb):4:in `irb_binding' > /usr/lib/ruby/1.8/irb/workspace.rb:52:in `irb_binding' > /usr/lib/ruby/1.8/irb/workspace.rb:52 > ---- > => 3 > > > Kind regards > > robert > > > -- > use.inject do |as, often| as.you_can - without end > > -- Me, I imagine places that I have never seen / The colored lights in fountains, blue and green / And I imagine places that I will never go / Behind these clouds that hang here dark and low But it's there when I'm holding you / There when I'm sleeping too / There when there's nothing left of me / Hanging out behind the burned-out factories / Out of reach but leading me / Into the beautiful sea