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:main:Object(NameError)の未定義のローカル変数またはメソッド`environment'」が発生します。

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 に答える