解析厨师环境属性

时间:2016-11-03 14:45:33

标签: ruby chef

在厨师环境中,我有以下属性:

"recipe": {
   "attribute1": {
       "name1": {
           "description": "some description",
           "permissions": "read"
        },
       "name2": {
           "description": "some description",
           "permissions": "write"
        },
   }
}

我需要以某种方式在变量x中输入' permissions'的值。对于属性的每个元素。

喜欢在:

attribute1.each_with_index do |value, index|
  if value.permissions="read"
     #do something
  else
     #do something else
  end
end

我需要知道如何在变量中存储'权限'在attribute1.each循环中。

x=value.permissions  ?!

谢谢。

1 个答案:

答案 0 :(得分:0)

你可能想要这样的东西:

replace

这将为您提供类似node["recipe"]["attribute1"].map do |key, value| value["permissions"] end 的列表。

如果你想要一个像你想要的["read", "write"]这样的哈希:

{"name1" => "read", "name2" => "write"}