tDiaryの設置
登録したXREAにtDiaryを設置してみました。ヘタレな私は、とりあえず安定バージョンの1.4.5を選択。(大して変わらない気はするけど)
どうも/usr/bin/envが使えないようなので、index.rbとupdate.rbにrubyのパス(#!/usr/local/bin/ruby)を記述。とりあえず、デフォルト設定のままの"ほげほげ日記"が表示された。
.htaccessと.htpasswdも作成して、更新時のBASIC認証もクリア。
(ここまではまぁ順調。READMEの記述のとおり)
ところが、設定用画面で[OK]ボタンを押すとエラー発生。下のメッセージが表示された。
undefined method `to_euc' for "hoge":CGI::QueryExtension::Value (NoMethodError) /virtual/hoge/public_html/diary/tdiary.rb:748:in `initialize' /virtual/hoge/public_html/diary/update.rb:32:in `new' /virtual/hoge/public_html/diary/update.rb:32
to_eucメソッドが定義されてない,ってか。
XREAのRubyのモジュールは覗けない(よね。試してないけど)ので、手元のruby(1.8.1)のCGIモジュールのソースを眺めてみた。
どうもto_eucはtdiary.rbで次のように定義したメソッドを、
cgi.rbの1128行目で、Valueクラスに取り込ませているっぽい。
class Value < DelegateClass(String) # :nodoc:
delegate.rbの中身も眺めてみたけど、それにしてはcgiをrequireするのとStringクラスにto_eucを追加する順番がおかしい。逆じゃないの?と疑問を持ったので、逆にしてみたら動いた。ホントにこれでいいのかね?Rubyの素人には、よく分かんない。