Как получить имя вызывающего метода во время выполнения - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть:

def outer_method()
  called_method()
end

def called_method()
  puts "name of outer_method"
end

Возможно ли для called_method получить имя outer_method без присвоения __method__ в outer_method и затем использовать его в качестве аргументаcalled_method

1 Ответ

0 голосов
/ 05 декабря 2018

Да.Старый школьный путь заключается в следующем:

def outer_method
  called_method
end

def called_method
  puts caller.first[/(?<=`).+(?=')/]
end

outer_method
# >> outer_method

Более современный и надежный способ сделать это:

def outer_method
  called_method
end

def called_method
  puts caller_locations.first.label
end

outer_method
# >> outer_method
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...