Я просто изучаю 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" в приведенном выше примере, можно ли получить доступ к переменным, определенным в блоке?
Опять же, цель состоит в том, чтобы оставить блок немодифицированным, но иметь возможность доступа к созданным переменным из "теста" после выполнения блока.
