#!/usr/bin/env ruby # coding: utf-8 require "cgi" require "pstore" require 'kconv' # utf-8への変換のため(toutf8メソッド) myname = "cc2.rb" c = CGI.new(:accept_charset => "UTF-8") item = c["item"] cmt = c["comment"] time = Time.now # 時刻を保持するTimeクラス代入。nowは現時刻 edit_item = ARGV[0].to_s.toutf8 # 修正モードの場合の修正項目名 oldcomment = "" # 修正モードの場合の既存コメント print 'Content-type: text/html; charset=UTF-8 飲んだものメモ

飲み物メモ

' # HTTPヘッダ db = PStore.new("data/coffee.db") db.transaction do db["root"] ||= Hash.new data = db["root"] # ここまではおきまり if item >"" && cmt > "" # 名前とコメント、両方値があるなら登録 data[item] = [time, cmt] # 今日の日付とコメント end if edit_item > "" && data[edit_item] oldcomment = data[edit_item][1] 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要素がコメント、それぞれ取り出す # ITEM を出力 printf("
%s
\n", myname, i, i) printf("
記載日: %s
\n", day.strftime("%Y年%m月%d日")) printf(" %s
\n", CGI.escapeHTML(msg)) end print "
\n" # 定義環境終了 end # db.transaction 終わり print "

\n"