如何在YAML文件中使用变量?

11

我有一个YAML文件,需要将变量作为输入:

outputters:
    - type        : DateFileOutputter
      name        : logfile
      level       : DEBUG
      date_pattern: '%Y%m%d'
      trunc       : 'false'
      dirname     : "/home/sameera/workspace/project/log"
      filename    : "message.log"
      formatter   :
        date_pattern: '%m/%d/%Y %H:%M:%S'
        pattern     : '%d %l - %m'
        type        : PatternFormatter

我想将dirname作为参数传递,类似于以下内容:

      dirname     : "<%= LOGFILE_PATH%>"

我的LOGFILE_PATH被定义在一个名为init.rb的文件中。


参见:https://dev59.com/lVgR5IYBdhLWcg3wLq5n - dreftymac
1个回答

22
你可以使用ERB。
例如:
template = ERB.new File.new("path/to/config.yml.erb").read
processed = YAML.load template.result(binding)

您可以在此处了解更多关于绑定的内容:Ruby元编程


2
嗨,@Sergio Tulentsev,它起作用了,但由于我想要一个纯yml解决方案,我尝试使用.yml做同样的事情,但没有成功,感谢您的答案,对于没有发布任何更新的延迟表示抱歉。祝好,Sameera - sameera207
@Sergio Tulentsev,你有没有用其他方式解决这个问题?(例如基于yml) - Manivannan Jeganathan
@ManivannanJeganathan:我没试过 :) - Sergio Tulentsev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接