在YAML中使用全局ruby变量

时间:2016-08-03 03:25:12

标签: ruby yaml erb

给出以下YAML文件:

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

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

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

我得到以下结果:

{"foo"=>nil}

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

1 个答案:

答案 0 :(得分:2)

看看你刚刚运行ERB时得到的结果:

ERB.new("foo: <%= $stdout %>").result

结果如下:

foo: #<IO:0x0056078694db38>

所以foo将设置为nil,因为#是YAML中的评论字符。