def my_method
if ( a = / ^.* ?:\d* :in `(.*)'$/.match( caller[0] ) )
puts ( b = /^<(.*?):(.*?)>$/.match( a[1] ) ) ?
"Called in definition of #{b[1].capitalize} \" #{b[2]}\" " :
"Called during run of #{(self.is_a? Class) ? 'class' : 'instance'} method \" #{a[1]}\" "
end
end
module Foo
my_method
class Foo
my_method
def self.foo
my_method
end
def foo
my_method
end
end
end
Foo::Foo.foo
Foo::Foo.new.foo
ZGVmIG15X21ldGhvZAogICAgaWYgKCBhID0gL14uKj86XGQqOmluIGAoLiopJyQvLm1hdGNoKCBjYWxsZXJbMF0gKSApCiAgICAgICAgcHV0cyAoIGIgPSAvXjwoLio/KTooLio/KT4kLy5tYXRjaCggYVsxXSApICkgPyAKICAgICAgICAgICAgIkNhbGxlZCBpbiBkZWZpbml0aW9uIG9mICN7YlsxXS5jYXBpdGFsaXplfSBcIiN7YlsyXX1cIiIgOgogICAgICAgICAgICAiQ2FsbGVkIGR1cmluZyBydW4gb2YgI3soc2VsZi5pc19hPyBDbGFzcykgPyAnY2xhc3MnIDogJ2luc3RhbmNlJ30gbWV0aG9kIFwiI3thWzFdfVwiIgogICAgZW5kCmVuZAoKbW9kdWxlIEZvbwogIG15X21ldGhvZAogIGNsYXNzIEZvbwogICAgbXlfbWV0aG9kCiAgICBkZWYgc2VsZi5mb28KICAgICAgIG15X21ldGhvZAogICAgZW5kCiAgICBkZWYgZm9vCiAgICAgIG15X21ldGhvZAogICAgZW5kCiAgZW5kCmVuZApGb286OkZvby5mb28KRm9vOjpGb28ubmV3LmZvbw==