From: TADA T. <sh...@sp...> - 2002-09-26 04:05:10
|
ただです。 NISHIO Mizuho <gh...@in...> wrote: >Configインスタンスをdeep copyしてそれをプラグインオブジェクトに渡すのは? > >config = TDiaryConf.new >plugin_conf = Marshal.load( Marshal.dump(config) ) > >config と plugin_conf では同値性が保証できないのが問題かもしれませんが、 >多分、問題が顕在することはないと思います。 プラグインの解釈は最後の最後に行われるので、configの中を変更されても影 響はないですね。だからdeep copyなんてしないで、そのまま渡しても問題はな い。 気にかかっているのは今まで念のため隠していた@data_pathなどが見えてしま うことや、今のコードだとConfig#saveを呼ぶだけでtdiary.confを上書きできて しまうことですね。プラグインのコードをどこまで信じるかってとこなんですけ ど。どうせ何でもできるんだから、全面的に信頼してもいいじゃん、と言えなく はないんですけどね。 >Pluginオブジェクトと対になるTDiaryBaseのオブジェクトが >分からない(ObjectSpaceを使えば、なんとかなる?)ため、プラグイン内で動的に >TDiaryBaseのオブジェクトを生成する場合(例えば、make_lirs.rb)、 >TDiaryBaseのオブジェクトを動的に生成するときに使いまわすための >@date や @diariesが分からないということでしょうか? >それともインスタンス変数は通常オブジェクトの外から参照不可だから? これについては先のメールに書いたように、TDiaryBaseとPluginの独立性はそ もそもそんなに高くないというのがポイントなので、無駄な努力はしない方向で いきます(笑)。 ━━━━━━━━━━━━━━━━━━━ ただただし <http://www.spc.gr.jp/sho/> ♪ツッコミは、短く鋭く愛を込めて。 ━━━━━━━━━━━━━━━━━━━ |