fork download
  1. def my_method
  2. if ( a = /^.*?:\d*:in `(.*)'$/.match( caller[0] ) )
  3. puts ( b = /^<(.*?):(.*?)>$/.match( a[1] ) ) ?
  4. "Called in definition of #{b[1].capitalize} \"#{b[2]}\"" :
  5. "Called during run of #{(self.is_a? Class) ? 'class' : 'instance'} method \"#{a[1]}\""
  6. end
  7. end
  8.  
  9. module Foo
  10. my_method
  11. class Foo
  12. my_method
  13. def self.foo
  14. my_method
  15. end
  16. def foo
  17. my_method
  18. end
  19. end
  20. end
  21. Foo::Foo.foo
  22. Foo::Foo.new.foo
Success #stdin #stdout 0.01s 7468KB
stdin
Standard input is empty
stdout
Called in definition of Module "Foo"
Called in definition of Class "Foo"
Called during run of class method "foo"
Called during run of instance method "foo"