有条件地检查yaml文件以显示正确的内容

时间:2014-05-29 13:13:31

标签: yaml

如何查看yaml文件中的if / else

喜欢:

 if %{attribute}
    attributes:
       shipping_comment: Shipping comment / Instructions
 else
    attributes:
       shipping_date: Date

2 个答案:

答案 0 :(得分:10)

YAML是一种数据序列化语言,因此它并不意味着包含if / else样式的可执行语句:这是您编程语言的责任。重新使用。

Ruby中用于确定从YAML文件输出哪个配置字符串的简单示例可以定义您的YAML配置文件,如下所示:

<强> data.yml

attributes:
  shipping_comment: Shipping comment / Instructions
  shipping_date: Date

然后,在你的程序中,读取文件并在那里运行条件:

<强> shipping.rb

#!/usr/bin/env ruby
require 'yaml'
config = YAML.load_file('data.yml')

attribute = true # your attribute to check here

if attribute
  puts config['attributes']['shipping_comment']
else
  puts config['attributes']['shipping_date']
end

答案 1 :(得分:1)

开箱即用.yaml文件不包含任何条件逻辑,如Paul Fioravanti所示:

  

YAML是一种数据序列化语言,因此它并不意味着包含if / else样式的可执行语句:这是您正在使用的编程语言的责任。

但是,在某些情况下,例如基础设施作为代码,您可能没有奢侈的保罗解决方案。在这些情况下,大多数体面的基础设施工具都提供了一种实现条件逻辑的内置方式。

由于看来infra不是您正在寻找的领域,我不会详细介绍如何编写每个工具解决方案,但对于像我这样结束的任何人来说,这些文档对我有帮助并且可能对你有用: