From: Kazuhiro NISHIYAMA Date: 2008-02-11T04:54:41+09:00 Subject: [ruby-dev:33692] Re: erb.rb の仕様について 西山和広です。 At Sun, 10 Feb 2008 08:53:24 +0900, Masatoshi SEKI wrote: > > > 1. ERB#result() で、safe_level が設定されているときに > > Thread を生成してからその中で eval していますが、 > > Thread を生成する理由を教えていただけませんか。 > > たしか、$SAFEはより大きな値しか設定できないからだったと 思います。 > 呼び出し元の$SAFEが変わってしまうのを避けるためですね。 > 今ならもっとうまい方法があるかもしれません。 いつかなのかは知らないのですが、Threadを使わなくても procだけで一時的に変更できるようです。 % ruby -e 'proc{$SAFE=1; p $SAFE}.call; p $SAFE' 1 0 % -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)