如何从人偶中删除 ruby​​ 模板中的多余空格

HSA*_*SAR 3 erb puppet

我想使用 puppet 在文件中放置一些值,但是当我在 ruby​​ 模板中执行以下操作时:

    <% @_zoo_cfgs.each do |zooconfig| -%>
    <%=zooconfig -%>
    <% end -%>
Run Code Online (Sandbox Code Playgroud)

我在生成的文件中得到以下内容:

server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(trailing whitespace)
Run Code Online (Sandbox Code Playgroud)

但我想要以下内容:

server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(no trailing whitespace)
Run Code Online (Sandbox Code Playgroud)

在值之前或之后的文件中没有额外的空格。任何人都可以让我知道如何做到这一点?

Joh*_*ger 5

当您使用 关闭 ERB 标签时-%>紧跟在关闭标签之后的任何换行符都将被抑制。但是,如果下一个字符是其他字符,例如空格字符,则没有抑制。也许在您的情况下更重要的是,在任何情况下都不会抑制模板下一行的前导空格。

至少有两种方法可以处理这种情况。

  • 去掉缩进(并确保模板中没有尾随空格):
<% @_zoo_cfgs.each do |zooconfig| -%>
<%=zooconfig -%>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
  • 完全摆脱迭代,也许是这样的:
<%# assumes that @_zoo_cfgs is an array: -%>
<%= @_zoo_cfgs.join("\n") -%>
Run Code Online (Sandbox Code Playgroud)