咳といいます。


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方面ではそういった
ニーズはないのでしょうか?