0
我有以下红宝石哈希值。地图红宝石哈希logstash配置文件
config = {
'output' => {
'elasticsearch' => {
'hosts' => ['localhost:9200']
}
}
}
哪我想代表作为logstash配置文件(https://www.elastic.co/guide/en/logstash/current/configuration.html)。在这种情况下,看起来与此类似。
output {
elasticsearch { hosts => ["localhost:9200"] }
}
我使用的地图是接近,但“elasticsearch”不应该有“=>”和“elasticsearch”和“主机”努力不应该被引用。
puts config.map{|k, v| "#{k} #{v}"}.join('&')
output {"elasticsearch"=>{"hosts"=>["localhost:9200"]}}
我也试着转换成JSON和使用GSUB,但在这种情况下,我需要取消缩进字符串和“输出”和“elasticsearch”不应该被引用。
puts JSON.pretty_generate(config).gsub(/^[{}]$/, "")
.gsub(": {", " {")
.gsub(": ", " => ")[1..-2]
"output" {
"elasticsearch" {
"hosts" => [
"localhost:9200"
]
}
}
虽然每个实现都是关闭的,但它仍然是关闭的。有没有简单的方法来实现这一点?
是的,这是诀窍!非常感谢。 –