ユルさんが手伝ってと言うので、彼女のサイトを見てみました。ユルさんはホームページビルダーを使って自分のサイトを作っているのです。彼女が言うには、更新したトップページが表示されないらしい。見てみると、確かに新しいページが表示されずに古いままのページが表示される。おかしいな。なんどか見ているうちにサーバ上にindexファイルが2つあることに気づきました。「index.htm」と「index.html」の2つです。「/」止まりのURLを指定したとき、拡張子がhtmlのものが優先されるような設定になっていたようです。わかってみればなんてことないけど、気づくまでは不思議でした。なかなかおもしろい。

 cronで更新pingを打つスクリプトを作ってみました。

#!/usr/local/bin/ruby
require "xmlrpc/client"
require "uri"
require 'rubygems'
require_gem 'activerecord'
$LOAD_PATH.push('../../app/models')
 
config = YAML.load_file('../../config/database.yml')
ActiveRecord::Base.establish_connection(
  config['production']
)
 
now_date = Date.today
diary = Diary.find_by_open_date(now_date)
if diary
  name = diary.title + ' : kaeruspoon Diary'
  url = 'http://www.kaeruspoon.net/diary/'
  url << "#{now_date.year}/"
  url << "#{now_date.month}/"
  url << "#{now_date.day}"
 
  ping_uris = Array.new
  ping_uris << 'http://ping.myblog.jp/';
  ping_uris << 'http://www.blogpeople.net/servlet/weblogUpdates';
  ping_uris << 'http://ping.bloggers.jp/rpc/';
  ping_uris << 'http://bulkfeeds.net/rpc';
  ping_uris << 'http://blog.goo.ne.jp/XMLRPC';
  ping_uris << 'http://r.hatena.ne.jp/rpc';
 
  ping_uris.each do |ping_uri|
    uri = URI.parse(ping_uri)
    connection = XMLRPC::Client.new(uri.host, uri.path, uri.port)
    connection.call('weblogUpdates.ping', name, url)
  end
end

 やっつけ仕事ですがうまくいくでしょうか。できればRailsのログファイルにメッセージを吐きたいんだけど、やり方調べるのがメンドかったのでおあずけです。今度やろう。あ、あと、controllerのメソッドを直接使いたいなあ。