Puppet的erb模板输出中出现意外缩进

时间:2014-08-20 12:30:11

标签: ruby erb puppet

我在Puppet的to_yaml模板中遇到erb问题。

我的erb模板的内容如下所示:

<%= {"key1"=>"value1", "key2"=>"value2"}.to_yaml %>

Puppet产生的输出是:

--- 
  key1: value1
  key2: value2

但我希望(没有缩进):

--- 
key1: value1
key2: value2

我做错了吗?两种表示都相同吗?我不这么认为。

2 个答案:

答案 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

因此,即使它看起来不同,它在技术上也不是真正的错误。