2008-06-09から1日間の記事一覧

ERB で Binding を使うとローカル変数が勝手に変更されるという問題

通常、ERB#result() には Binding を渡すけど、個人的にこれが大っ嫌い。なんでかというと、eRubyスクリプトを実行することで、メインプログラム内のローカル変数が勝手に変更されてしまうから。 つまりだな、 s = <<END <% for item in list %> <p><%= item %></p> <% end %> END list = ['AAA</end>…

ERB で Binding のかわりに Hash を使う

class ERB def result_hash(hash) b = binding hash.each {|k,v| eval "#{k} = %Q[#{v}]", b} result b end end puts ERB.new('<%= example %>').result_hash(:example => 'foo') ERB で引数の hash を展開して欲しい - #生存戦略 、それは - subtech これだ…