-1
Как использовать переменные и метод экземпляра в блоке в ruby?Выполнить класс метода в блоке
class Foo
@var = "my var"
def meth()
"my method"
end
Module.something do |variable|
p @var #=> Undefined
p meth() #=> Undefined
end
end
Вы можете использовать 'instance_eval', но вам нужен экземпляр для вызова его. –
Это сбивает с толку и приведет вас в беду. Я бы явно передал var (или self) и доступ к нему через его методы. Module.something плохо написано, если есть ожидание того, что вы сможете сделать что-то из внешнего закрытия. – Mircea
Предположим, что модуль является внешней библиотекой. Я не могу изменить Module.something, но мне нужны данные из моего экземпляра. –