在 YAML 中使用全局 ruby 变量

Using a global ruby variable inside YAML

给定以下 YAML 文件:

---
foo: <%= $stdout %>

当我尝试对这个 yaml 文件进行 ERB 时:

YAML.load(ERB.new(File.read(filename)).result)

我得到以下结果:

{"foo"=>nil}

为什么 $stdout 解析不正确?如果我将其他 ruby 代码放在那里,它会按预期工作。

看看当你 运行 ERB:

你得到了什么
ERB.new("foo: <%= $stdout %>").result

结果是这样的:

foo: #<IO:0x0056078694db38>

所以foo会被设置为nil因为#是YAML中的注释符