けいじゅ@日本ラショナルソフトウェアです. In [ruby-list :07084 ] the message: "[ruby-list:7084] Re: about rbc ", on Mar/11 14:07(JST) Keiju ISHITSUKA writes: >> rbc について二つ質問があります. >> >> 1. ~/.irbrc に `trace_load false' の一行だけを書いているのですが, こ >> れが効いていません. 具体的には >とりあえず. > >BC_APPLICATION__::CONFIG[:TRACE_LOAD] = false > >と設定して下さい. これは対処できました. ~/.irbrcに trace_load false でいけるようになりました. ただし, デフォルトで trace_load true になっているのも迷惑でしょうから. デフォルトを trace_load false に変更しました. >> 2. rbc のなかで `_' に代入すると前の演算結果を保持するという `_' の >> 機能が失われます. >> >> rbc0> _ = 10 >> 10 >> rbc0> _ >> 10 >> rbc0> 1+1 >> 2 >> rbc0> _ >> 10 >うーん. おかしいな... ちゃんと対応してあるはずなんですが... 調べてみ >ます. 原因が分かりました. _は関数でインスタンス変数@_を返す関数で, 別に_=(value)が@_に登録する関 数だったのですが, >> rbc0> _ = 10 >> 10 を行なった時点で, ローカル変数_が登録されてしまい. 以後, 変数と関数の 優先度の違いで常にローカル変数が使われるようになってしまっていたのが原 因でした. インスタンス変数@_を使わなず, ローカル変数_を使う様に変更しましたので, この問題も解決したと思います. あと, もう1つ仕様を変更しました. 以前はinspect(sw)でインスペクトモードをとぐるしていましたが, それだと, selfをインスペクトできなくなるので, inspect_mode(sw)という名前に変更し ました. 以下がパッチです. -- 5,6c5,6 < # $Revision: 1.7 $ < # $Date: 1998/02/27 03:45:51 $ --- > # $Revision: 1.8 $ > # $Date: 1998/03/11 05:43:00 $ 26c26 < # inspect(sw = nil) インスペクトモードのトグル --- > # inspect_mode(sw = nil) インスペクトモードのトグル 36c36 < RCS_ID='-$Id: rbc.rb,v 1.7 1998/02/27 03:45:51 keiju Exp $-' --- > RCS_ID='-$Id: rbc.rb,v 1.8 1998/03/11 05:43:00 keiju Exp keiju $-' 46c46 < CONFIG[:TRACE_LOAD] = TRUE --- > CONFIG[:TRACE_LOAD] = FALSE 834c834,835 < @_ = value --- > CONFIG[:_] = value > eval "_=BC_APPLICATION__::CONFIG[:_]", CONFIG[:BIND] 837,839c838,840 < def _ < @_ < end --- > # def _ > # eval "_", CONFIG[:BIND] > # end 846,847c847,848 < if opt < @Trace_require = opt --- > if !opt.nil? > CONFIG[:TRACE_LOAD] = opt 849c850 < @Trace_require = !@Trace_require --- > CONFIG[:TRACE_LOAD] = !CONFIG[:TRACE_LOAD] 851,852c852,853 < print "Switch to load/require #{unless @Trace_require; ' non';end} trace mode.\n" < if @Trace_require --- > print "Switch to load/require #{unless CONFIG[:TRACE_LOAD]; ' non';end} trace mode.\n" > if CONFIG[:TRACE_LOAD] 867c868 < @Trace_require --- > CONFIG[:TRACE_LOAD] 914c915 < def inspect(opt = nil) --- > def inspect_mode(opt = nil) __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju / rational.com <<---