#!/usr/bin/env ruby # coding: utf-8 require "cgi" require "pstore" myname = "cancoffee.rb" c = CGI.new(:accept_charset => "UTF-8") item = c["item"] cmt = c["comment"] time = Time.now # 時刻を保持するTimeクラス代入。nowは現時刻 print 'Content-type: text/html; charset=UTF-8 飲んだものメモ

飲み物メモ

' # HTTPヘッダと冒頭部分 db = PStore.new("data/coffee.db") db.transaction do # PStoreは db.transaction do ... end で使う db["root"] ||= Hash.new data = db["root"] # ここまではおきまり if item >"" && cmt > "" # 名前とコメント、両方値があるなら登録 data[item] = [time, cmt] # 今日の日付とコメント end # フォーム出力 printf("
\n", myname) print '

飲んだもの:
コメント



' # 既存のコメント出力(キー毎) print "
\n" # 定義環境開始 for i in data.keys.sort{|x, y| data[y][0] <=> data[x][0] # 日付の新しい順にソート } day = data[i][0] # 第0要素が日付 msg = data[i][1] # 第1要素がコメント、それぞれ取り出す printf("
%s
\n", i) # キー(つまり飲んだものの名前) printf("
記載日: %s
\n", day.strftime("%Y年%m月%d日")) printf(" %s
\n", CGI.escapeHTML(msg)) end print "
\n" # 定義環境終了 end # db.transaction 終わり print "

\n"