Позволяет говорят, что у меня есть следующее рубиновое определение на самом верхнем уровне
callable = lambda {"#{hi}"}
и предположите, что позже я создаю названный объект temp
этому назвали метод hi
. Теперь то, что я хотел бы сделать, звонить callable
в контексте temp
. Я попытался делать
temp.instance_eval do callable.call end
но это дает мне ошибку"NameError: undefined local variable or method 'hi' for main:Object
". Я хотел бы знать, существует ли какой-либо способ снова переплести контекст callable
кому: temp
так, чтобы я не получал сообщение об ошибке? Я знаю, что мог определить method_missing
на main:Object и перенаправляют все вызовы метода temp
но это походит слишком большой из взлома для выполнения то, что я хочу.
код, который вы ищете:
temp.instance_eval(&callable)