Простой ответ - нет. Тем не менее, вы можете играть с caller
, это дает вам доступ к стеку вызовов, очень похоже на обратную трассировку исключения:
def this_method_was_called_internally?
caller[1].include?(...)
end
(caller[1]
будет предыдущим вызовом, то есть вызов метода this_method...
)
Это очень хакерски, и информации, которую вы получаете от caller
, может быть недостаточно.
Пожалуйста, не используйте это, кроме как для экспериментов.