image_ex.rbの修正

昨日この日記にimage_ex.rbプラグインを入れる機能追加を実施したのですが、その副作用で画像が貼り付けられている日の記事にコメントを書き込むと、コメント自体は書き込まれるものの画面表示がエラーになって、コメントお知らせメールも送られないという事態が発生していました。ちょっと検索してみるとあちこちで話題になっているようで、どこでもとりあえずtdiary.confの@options['apply_plugin']をfalseにするという対策を取っているようでした。「プラグイン適用後にもういちどプラグインを適用するかどうか」ということなのですが、なにやらプラグイン同士の干渉が起きているのでしょうか。これをfalseにするというのはなにやら対症療法のような匂いがしたので、別な回避手段が無いかちょっと検討してみました。
まずエラーメッセージはcannot convert nil into Stringということで、発生行はimage_ex.rbの158行目。imageListというルーチンの内部で、どうやら特定のディレクトリにある、名前が特定の条件を満たすファイルをリストアップしているようです。'date = "#{prefix}"+date'というところなのですが、これでnilをStringに変換できないと怒られているのですから、dateがnilになっているということでしょう。本来、引数から正しい値が渡されるべきところを、プラグインの再適用時にはnilが渡ってくるようです。以前のバージョンで別なルーチンで同じような問題が起きた時に、毎回dateの値を再計算させることで対処していたので、それを真似て158行目に'date ||= @date.strftime("%Y%m%d")'と1行追加してやると、うまくいったようです。私はRubyは分からないのでこれが何を意味しているのかよく分かっていないのですが、結果がよければいいでしょう。




この記事へのコメント

この記事へのトラックバック