From: Hidetoshi NAGAI Date: 2006-05-29T16:38:16+09:00 Subject: [ruby-dev:28670] Re: load_to(file, mod) 永井@知能.九工大です. From: Minero Aoki 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