From: matz@... (Yukihiro Matsumoto) Date: 1997-10-14T11:02:08+09:00 Subject: [ruby-dev:734] Re: [REQ] require/load まつもと ゆきひろです In message "[ruby-dev:733] Re: [REQ] require/load" on 97/10/14, 石塚圭樹 writes: |けいじゅ@日本ラショナルソフトウェアです. |ちょっと特殊な話しなんです. rbc.rbでは, プログラム全体を class BC__ |で括っています. これは, rbcを利用する時にできるだけオリジナルrubyの動 |作と同じようにしたかったからです. ここで, Readlineモジュールを利用しよ |うとすると, | |require "readline" | |class BC__ | ... |end | |となって, Readlineモジュールがclass BC__のネームスコープ外に出てしまう |のでちょっと気になったのでした. こういう問題って, デバッガ(を実現する |クラス)などでも同様ですよね. これはやっぱり外でよいのではないでしょうか? なんで気になったのか不明ですが,気にする必要はないと思います. だってそのためのrequire(すでにloadされているかどうか気にする 必要がない)なんですから. もし,readlineをrequireしたにもかかわらずそれがどこかのネー ムスペース内にしか存在しないのであれば,かえって他の部分で readlineをrequireした時の動作がおかしくなると思います. requireされているのでロードしないが,ロードされないのに ネームスペース上にreadlineが存在しない…. ダイナミックリンクライブラリが二重にロードできないことも絡ん で来ますね. |>|2. あるファイルをそのネーム空間にロードする機能 |>もともとトップレベルに読み込まれるべく作られたモジュールをトッ |>プレベル以外に読み込んで来るのは無理があると思うんですけど…. | |何か変ですかね... | |package READLINE | module Readline | ... | end |end | |package BC__ | include READLINE # or inport READLINE | | class ReadlineInputMethod | include Readline | ... | end | ... |end | |みたいに使えればいいなという意味なんですが? これは「あるファイルをそのネーム空間にロードする機能」なんで すか? 今のモジュールの機能と変わらないように思うんですけど. まつもと ゆきひろ /:|)