咳といいます。 On 2008/02/09, at 17:50, Makoto Kuwata wrote: > > 1. ERB#result() で、safe_level が設定されているときに > Thread を生成してからその中で eval していますが、 > Thread を生成する理由を教えていただけませんか。 たしか、$SAFEはより大きな値しか設定できないからだったと 思います。 呼び出し元の$SAFEが変わってしまうのを避けるためですね。 今ならもっとうまい方法があるかもしれません。 > > > 2. 以下のメソッドやモジュールは #:nodoc: がついてますが、 > これらは非公開であり積極的に使うべきでないと考えて > いいでしょうか。 > もっというと、これらをERBの仕様と考えていいかどうかと > いうことなんですが。 > - ERB#def_method > - ERB#def_module > - ERB#def_class > - ERB::DefMethod これらは積極的に使ってほしいメソッドです。 rdocについてはどなたかが書いてくれたもので、公開(?)と関 連はありません。 気分的には、ERB::Compiler関連が非公開(といっても Rubyなので実質公開)です。 ERB::Compilerを改造しても怒られないだろうなあ、と期待してます。 > > 3. ERB#set_eoutvar() って必要でしょうか? > ERB#initialize() の引数 _eoutvar を使えば変数名 _erbout > は > 変更できるから、set_eoutvar() は必要ないように思います。 すっかり忘れていましたが、_erboutは変数名しか設定できな いから メソッドにしてフックできるようにしたようです。 * http://www.druby.org/ilikeruby/erbquote.html * http://d.hatena.ne.jp/m_seki/20061031#1162304780 私も桑田さんに質問があります。 erbやerubyは、実行時エラーの行番号の情報がわかるように 元のeRubyスクリプトの行を維持したスクリプトに変換してい ます。 RubyKaigiの講演では連続した文字列は、行をまたいでいても つなげてしまうように見えたのですが、erubis方面ではそういった ニーズはないのでしょうか?