[#28653] create header (Re: Re: ossl_cipher.c:124: warning: control reaches end of non-void function) — "Nobuyoshi Nakada" <nobu@...>

なかだです。

8 messages 2006/05/18

[ruby-dev:28670] Re: load_to(file, mod)

From: Hidetoshi NAGAI <nagai@...>
Date: 2006-05-29 07:38:16 UTC
List: ruby-dev #28670
永井@知能.九工大です.

From: Minero Aoki <aamine@loveruby.net>
Subject: [ruby-dev:28669] Re: load_to(file, mod)
Date: Mon, 29 May 2006 15:11:01 +0900
Message-ID: <20060529.151059.-1703969273.aamine@loveruby.net>
> > 指定したモジュール下に load するために subject に示したような
> > 関数型のメソッドが (名前の良し悪しは保留として) 欲しいなと思っています.
> > 
> > # load(file, true) は load_to(file, Module.new) と同じです.
> 
> mod.module_eval(File.read(path)) で、だいたい同じことができます。
> ロードパスから探したいとなると、もう少しやらないとだめですけどね。

ロードパスの件はとりあえず置いておくとして,
これを $SAFE == 4 での load(path, true) の代りとして使おうとすると,
File.read が引っ掛かっちゃいますよね?
また,self が main ではなく mod になってしまいますよね?
self が mod になってしまうと path のスクリプトから
mod に触れてしまうので (ですよね?) 気に入りません.

やりたいのは,$SAFE == 4 で load(path, true) したスクリプト中の
load(path2) を同じ無名モジュール中で評価したいというものです.
さらには,load() の外から load 内の監視もしたいと思ってます.

load メソッドをくるんでやることである程度までは行けるのですが,
無名モジュールが取得できなくてだめだったり,
それを避けると self が main ではなくなってしまったりで頭を悩ませてます.

mod.module_eval(File.read(path)) の File.read(path) を
うまくくるんでやって,self が mod になってしまう点は
妥協するしか方法はないのでしょうか.
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread