だそうなので、とりあえず手元の 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 を修正バージョンに更新しました。ご確認ください。
直ってます。感謝。