だそうなので、とりあえず手元の rAntenna を修正してみました。
diff -u -r1.5 antenna.rb --- antenna.rb 16 May 2004 16:43:32 -0000 1.5 +++ antenna.rb 15 Jun 2004 03:26:38 -0000 @@ -131,7 +131,7 @@ <title>#{CGI::escapeHTML( @title )}</title> <link>#{CGI::escapeHTML( @antenna_url )}</link> <description>#{CGI::escapeHTML( @title )}</description> -<dc:date>#{Time.now.strftime( '%Y-%m-%dT%H:%M:%S' )}</dc:date> +<dc:date>#{Time.now.strftime( '%Y-%m-%dT%H:%M:%S%z' )}</dc:date> <dc:language>ja</dc:language> <dc:rights>#{CGI::escapeHTML( @copyright )}</dc:rights> <dc:publisher>#{CGI::escapeHTML( @generator )}</dc:publisher> @@ -165,7 +165,7 @@ RDF if @last_modified[item[2]] then r << <<-RDF -<dc:date>#{@last_modified[item[2]].strftime( '%Y-%m-%dT%H:%M:%S' )}</dc:date> +<dc:date>#{@last_modified[item[2]].strftime( '%Y-%m-%dT%H:%M:%S%z' )}</dc:date> RDF end r << <<-RDF
ひょっとして Time#strftime の '%z' ってシステム依存だったりします? (refe で出てこなかったので)
それはそれとして、makerss.rb では、ちゃんとタイムゾーンをつけるようなコードになっているように見えるのに、何故ついてないんだろう? 修正されました。
[追記] Time#xmlschema なんてのがあるのですね。 さっそく上記の strftime(...) のところ xmlschema に変えてみると、%z だと「+0900」だったのが xmlschema だと「+09:00」になりました。 後者の方が正しいみたいだし、これでよしと。
fdiary.net wikifarm を mod_ruby 化して以降 auto_link が効いていないという報告をいただいて調べてみたら、まだ変更すべき箇所が残っていたのでさくっと修正しました。 今日時点での CVS HEAD からの差分を置いておきます。 → mod_ruby-hiki-20030615.patch
さて、思ったよりも反応が無くて寂しいし (?)、そろそろ ML に投げてみるかな。 でもって、そろそろ適当にブランチ切ってコミットしたいなぁ。
[追記] な、なんと「管理」モードの認証がスキップされるという報告を受けました。 とり急ぎ fdiary.net wikifarm では管理モードを使用不可にしました。
[追記 2] 原因は、設定のロード順のミスでした。修正して上記のパッチを更新しました。なお、修正点は以下のとおりです。
--- hiki/config.rb~ 2004-06-15 23:36:16.000000000 +0900 +++ hiki/config.rb 2004-06-16 00:22:30.000000000 +0900 @@ -11,8 +11,8 @@ class Config def initialize load - load_cgi_conf default + load_cgi_conf instance_variables.each do |v| v.sub!( /@/, '' )
ruby -ve 'p Time.now.strftime("%z")'が期待通りになったのは<br>ruby 1.8.1 (2004-05-02) [i386-freebsd5]<br>ruby 1.9.0 (2004-05-21) [i686-linux]<br>期待通りにならなかったのは<br>ruby 1.9.0 (2004-05-07) [sparc-solaris2.8]<br>でした。Cのstrftimeが対応してるかどうかによるのかな?
$ ruby -ve 'require "time"; p Time.now.xmlschema'<br>ruby 1.9.0 (2004-05-07) [sparc-solaris2.8]<br>"2004-06-14T21:51:16-10:00"<br>おお。
$ ruby -vrtime -e'p Time.now.xmlschema' の方がちょっと短い♪
makerss.rbのバグは、なかなか興味深い原因だったよ……
ちなみに strftime の %a, %b, %z は<br>システムやロケールで結果が変わります。
23:00現在で更新しても更新時にmakerss関連でエラーが出てます。実害は無いのですが多少気持ち悪いです。
↑さきほど makerss.rb を修正バージョンに更新しました。ご確認ください。
直ってます。感謝。