yarv-dev:37
From: Shugo Maeda <shugo ruby-lang.org>
Date: Wed, 19 May 2004 12:14:01 +0900
Subject: [yarv-dev:37] Re: how to initialize ruby environment?
前田です。 At Wed, 19 May 2004 11:59:25 +0900, matz ruby-lang.org (Yukihiro Matsumoto) wrote: > | 関係ないんですけど、load(file, true) はファイルを渡しますが、 > |これに文字列を渡して priv=true 環境で eavl するようなことはし > |ないのでしょうか。 > > とりあえず考えてませんでした。 かつて提案しましたが、名前が決らず却下されました:( > module.instance_eval{...} > > と大差ないですから(正確には内部で定義されたクラスにwrapperが > インクルードされる点が違う)。 この違いがけっこう大きいと判断して、mod_rubyでは、 static VALUE f_eval_string_wrap(VALUE self, VALUE str) { if (rb_safe_level() >= 4) { Check_Type(str, T_STRING); } else { Check_SafeStr(str); } return rb_eval_string_wrap(StringValuePtr(str), NULL); } void rb_init_apache() { ... rb_define_global_function("eval_string_wrap", f_eval_string_wrap, 1); ... } のようにeval_string_wrapをRubyレベルで見えるようにしておいて、 binding = eval_string_wrap("binding") eval(str, binding, filename) なんてことをしていたりします。 -- 前田 修吾 -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
35 2004-05-18 23:57 [ko1 atdot.net ] how to initialize ruby environment? 36 2004-05-19 11:59 ┗[matz ruby-lang.org ] -> 37 2004-05-19 12:14 ┣[shugo ruby-lang.org ] 39 2004-05-19 20:14 ┃┗[ko1 atdot.net ] 38 2004-05-19 20:12 ┗[ko1 atdot.net ]