3

我正在尝试编写一些 puppet .erb,如果它是,我想处理这个“环境”变量:

  • 不明确的
  • 带有换行符的字符串
  • 数组。

我已经做到了:

<% Array(environment).join("\n").split(%r{\n}).each do |f| %>
one line: <%= f %>
<% end %>

但是还没有解决未定义的情况。我试过这个

<% if (defined?(environment)).nil? %?
<% Array(environment).join("\n").split(%r{\n}).each do |f| %>
one line: <%= f %>
<% end %>
<% end %>

但是当尝试像这样测试它时,我仍然得到“(erb):11:未定义的局部变量或方法`environment' for main:Object(NameError)”:

ruby -rerb -e "environmentUNDEFINEME= [ 'cronvar=cronval', 'var2=val2' ]; 
puts ERB.new(File.read('templates/job.erb')).result"

抱歉,这太基本了,但有人必须问一些简单的问题。有什么帮助吗?

4

1 回答 1

3

我会这样做:

<% if defined?(environment) %>
  <% Array(environment).each do |f| %>
  one line: <%= f %>
  <% end %>
<% end %>

我不明白你为什么要加入新线路然后再次拆分它们,所以我从示例中删除了它。

于 2012-10-27T00:13:21.183 回答