Satoru Takabayashi
sator****@namaz*****
2003年 8月 13日 (水) 00:39:34 JST
TAKEUCHI Hitoshi: > > いただきたいと思います。こういうサイト<http://nais.to/hiki/> > > を作るためのプラグインです。 > > おもしろいですねぇ。私も自分のところに環境を作って試したいと思っている > のですが、ttf2fft の make がうまくいかないという体たらくです… あらら。mingplot にはかずひこさん作の efont の EfontSerifB.fdb が入っているので、普通に使うだけなら、特に ttf2fft の make は必要ないかなと思います。 表題の件ですが、Hiki 0.5-devel-20030730 で $plugin_debug = true にして次のようなプラグイン def foo bar end def bar baz end def baz 1 - nil end の foo メソッドを呼ぶと、 Hiki::PluginException(nil can't be coerced into Fixnum): foo ./style/default/html_formatter.rb:321:in `call_plugin_method' ./style/default/html_formatter.rb:174:in `to_s' ./style/default/html_formatter.rb:124:in `each' ./style/default/html_formatter.rb:124:in `to_s' ./hiki/command.rb:137:in `cmd_view' ./hiki/command.rb:77:in `send' ./hiki/command.rb:77:in `dispatch' /www/www.nais.to/hiki/hiki.cgi:28 /www/www.nais.to/hiki/hiki.cgi:26:in `open_db' /www/www.nais.to/hiki/hiki.cgi:26 というメッセージが表示されて、プラグイン内のバックトレースが 表示されず、不便です。そこで、mingplot プラグインのデバッグ 次のようなコードを書いてごまかしていました。 def foo_debug begin foo rescue => e sprintf("%s\n%s", e.message, e.backtrace) end end この場合はプラグイン内のバックトレースが表示されます。 nil can't be coerced into Fixnum (eval):8:in `-'(eval):8:in `baz'(eval):5:in `bar'(eval):2:in `foo'(eval):13:in `foo_debug'./style/default/html_formatter.rb:315:in `send'./style/default/html_formatter.rb:315:in `call_plugin_method'./style/default/html_formatter.rb:174:in `to_s'./style/default/html_formatter.rb:124:in `each'./style/default/html_formatter.rb:124:in `to_s'./hiki/command.rb:137:in `cmd_view'./hiki/command.rb:77:in `send'./hiki/command.rb:77:in `dispatch'/www/www.nais.to/hiki/hiki.cgi:28/www/www.nais.to/hiki/hiki.cgi:26:in `open_db'/www/www.nais.to/hiki/hiki.cgi:26 $plugin_debug = true のときはプラグイン内のバックトレースを 表示するようにすると便利なんじゃないかと思いますが、いかがで しょうか。もし CVS の最新版で改善していたりしたらすみません。