そのうちと言いつつ,すぐいじる私.集計結果表示部を変えてみました.
print "<h4>リクエストファイル集計</h4>\n<table>\n"
#ページをリクエストの多い順に並べ替えて表示
#同数ならファイルの名前の順に表示
count = count.to_a.sort{|a, b| (b[1] <=> a[1]) * 2 + (a[0] <=> b[0]) }
maxcount = count[0][1] #最大リクエスト数を保持
count.each{|key, value|
if %r|^/diary/.+| =~ key #もしリクエストファイルがdiary内だったら
key = URI.decode(key) #キーをURIデコード
end
graphlen = 400 * value / maxcount #棒グラフの長さを設定
print "<tr><td>#{key}</td><td>#{value.to_s}回</td>\n"
print "<td><img src=\"graph.gif\" width=\"#{graphlen}\" height=\"10\"></td></tr>\n"
}
print "</table>\n"
テーブルに仕立てて,棒グラフを表示するようにしただけですね.graph.gifというのは,1×10の大きさのイメージで,青1色で塗ってあります.
途中,URIエンコードをかましてありますが,これは,日記のページのカテゴリをクリックすると2バイト文字がURIにセットされるため.実は,表示のところよりも,これをデコードする方法が分からなくて時間を食っていました.
最初,いきなりエンコードしようとしたら,並べ替えがうまくいかなくなり,次にNKFをかましたら,ちっとも変換されていなかったり.NKFとURIエンコードは話が違ったんだっけとおぼろげに思い出して,やっとかっと作りました.
表示結果.おお!それっぽいべや.