Я просто изучаю ruby и пытаюсь понять объем кода, выполняемого в блоках. Например, я хочу иметь возможность создать блок, который влияет на метод, к которому он привязан, например:
def test(&block)
block.call() if block_given?
puts "in test, foo is #{foo}"
puts "in test, bar is #{bar}"
end
test() {
foo="this is foo"
bar="this is bar"
}
В этом случае я не хочу вообще изменять блок - я хочу, чтобы он мог писать его с помощью простых ссылок на переменные и без параметров. Только путем внесения изменений в метод "test" в приведенном выше примере, можно ли получить доступ к переменным, определенным в блоке?
Опять же, цель состоит в том, чтобы оставить блок немодифицированным, но иметь возможность доступа к созданным переменным из "теста" после выполнения блока.