在 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中的注释符
给定以下 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中的注释符