おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2011年06月15日(Wed) いちにちごとに曇ったり晴れたり [長年日記]

[Hiki] Ruby 1.9でHikiを動かす

このサイトのRubyが1.8.7から1.9.2になって以来動かなくなったまま 放置してしまっていたHikiサイトを 使いたいという方がいらっしゃたので、 重い腰をやっと上げて、とりあえず閲覧できるところまでこぎつけました。 パッチはgist: 1028700 として置いておきます。

Rubyのバージョンが上がって出ていたエラーは下記のようなものでした。

というわけでまずやったのは、ひたすら.force_encoding(Encoding.default_external)を付ける作業。

その途中で、下記のようなエラーももらいました。

うーん。わけがわからない。とりあえず escape(string)unescape(string)をそれぞれ string.escapestring.unescapeにしたら回避できました。

もひとつ。 日本語のページ名をURLエスケープするとページ名のうしろの方が無くなってしまう。 これは、Ruby 1.8と1.9との間でのString#sizeの仕様の違いによるものでした。 Sting#bytesizeにして解決。

こんなところでしょうか。 Ruby 1.8ではString#force_encodingが無いので hiki.cgiで定義をしておいて、 手元では、1.8.7-p330と1.9.2-p180とでだいたい動くHikiになりました。

しっかしこういう作業は骨が折れますね。 手元では、テスト用のツリーでgitで管理しながらコードをいじりました。 基本的には、例外が出たあたりで 文字列のencodingなど確認したい情報をRuntimeErrorとしてraiseして、 wwwブラウザで確かめながら進んでいきました。 そして自分のしかけておいた閲覧頻度の制限にひっかかるという。

編集メールの送付とansi-sysプラグインも対応させなくちゃな。

(追記) ansi-sysは 0.8.4で対応ずみでした。


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>