对齐 Puppet ERB 模板中的列
align columns in a Puppet ERB template
我在 Puppet ERB 模板中有以下代码:
<% if @server.class == Array -%>
<% @server.each do |server| -%>
server <%= server %>
restrict <%= server %> <%= @restrict[1] %>
<% end %>
<% end -%>
在配置文件中,由于 IP 地址的字符数不同,我没有得到对齐的输出:
server 123.123.1.1
restrict 123.123.1.1 mask 255.255.255.224 nomodify notrap noquery
server 123.123.345.33
restrict 123.123.345.33 mask 255.255.255.224 nomodify notrap noquery
server 123.123.345.33
restrict 123.123.345.33 mask 255.255.255.224 nomodify notrap noquery
可以看出,掩模线没有与其他掩模线对齐。
如何对齐它们?
您可以在 ERB 模板内的 Ruby 代码中做任何您能做的事情,所以这会起作用:
<% if @server.class == Array -%>
<% @server.each do |server| -%>
server <%= "%-14s" % server %>
restrict <%= "%-14s" % server %> <%= @restrict[1] %>
<% end %>
<% end -%>
即您可以像其他语言一样格式化 Ruby 中的字符串。 Ruby 文档 here.
我在 Puppet ERB 模板中有以下代码:
<% if @server.class == Array -%>
<% @server.each do |server| -%>
server <%= server %>
restrict <%= server %> <%= @restrict[1] %>
<% end %>
<% end -%>
在配置文件中,由于 IP 地址的字符数不同,我没有得到对齐的输出:
server 123.123.1.1
restrict 123.123.1.1 mask 255.255.255.224 nomodify notrap noquery
server 123.123.345.33
restrict 123.123.345.33 mask 255.255.255.224 nomodify notrap noquery
server 123.123.345.33
restrict 123.123.345.33 mask 255.255.255.224 nomodify notrap noquery
可以看出,掩模线没有与其他掩模线对齐。
如何对齐它们?
您可以在 ERB 模板内的 Ruby 代码中做任何您能做的事情,所以这会起作用:
<% if @server.class == Array -%>
<% @server.each do |server| -%>
server <%= "%-14s" % server %>
restrict <%= "%-14s" % server %> <%= @restrict[1] %>
<% end %>
<% end -%>
即您可以像其他语言一样格式化 Ruby 中的字符串。 Ruby 文档 here.