Ruby(Chef) - 将哈希转换为数组

时间:2015-05-13 01:21:45

标签: arrays ruby hash chef

我有一个哈希的厨师食谱。

foo = { 
  'herp' => 42, 
  'derp' => 84 
}

我有一个只能接受数组的LWRP资源(bar)

iis_root 'some string' do
  bar []
end

如何将'foo'转换为数组,以便可以在资源'bar'中使用

寻找这样的事情:

[ "herp=42","derp=84"]

5 个答案:

答案 0 :(得分:4)

getImage()

答案 1 :(得分:1)

您可以遍历哈希并将其转换为类似的数组。

ary = Array.New
foo.each do |key, value|
  ary << key + "=" + value
end

这将创建您正在寻找的阵列。

答案 2 :(得分:1)

您可以使用std::move执行此操作:

foo.map { |key, value| key + "=" + value.to_s}
=> ["herp=42", "derp=84"]

答案 3 :(得分:1)

OscillatingMonkey回答正确,但几乎没有变化: 对于主题启动程序,此代码正是您所需要的。

bar = Array.new([])
foo.each do |key, value|
  bar << key + "=" + value.to_s
end
=> ["herp=42", "derp=84"]

答案 4 :(得分:0)

我只会将map用于字符串插值:

foo.map { |k, v| "#{k}=#{v}" }
#=> ["herp=42", "derp=84"]