我在Puppet的to_yaml
模板中遇到erb
问题。
我的erb
模板的内容如下所示:
<%= {"key1"=>"value1", "key2"=>"value2"}.to_yaml %>
Puppet产生的输出是:
---
key1: value1
key2: value2
但我希望(没有缩进):
---
key1: value1
key2: value2
我做错了吗?两种表示都相同吗?我不这么认为。
答案 0 :(得分:1)
对于那些想知道的人,这里的问题是...... ZAML。
Puppet monkey patches to_yaml
方法并将其路由到ZAML.dump
(曾经一度被称为“更快”,但那是在Ruby 1.9和Psych之前的一个时代,猛犸象走了地球和众神充满了愤怒。)
> require 'yaml'
> puts YAML.dump({"key1"=>"value1", "key2"=>"value2"})
---
key1: value1
key2: value2
> require 'puppet/util/zaml'
> puts ZAML.dump({"key1"=>"value1", "key2"=>"value2"})
---
key1: value1
key2: value2
答案 1 :(得分:0)
我甚至用最新的Puppet(3.7)进行了双重检查,这仍然存在(我的调试要点here)。
但它不会引起任何问题,它们会被解释为相同的
但它们在语法上是相同的:
Puppet version vs Ruby version
因此,即使它看起来不同,它在技术上也不是真正的错误。