以下のプログラムはごく簡単なWeb掲示板のCGIプログラムです。
#!/usr/bin/env ruby
require 'cgi'
cgi = CGI.new
# http ヘッダの出力
print "Content-Type: text/html\n\n"
# ボードファイル名
BFILE="board.dat"
mes = cgi["message"][0]
name = cgi["name"][0]
if (mes) then mes = CGI.escapeHTML(mes) end
if (name) then name = CGI.escapeHTML(name) end
# メッセージがあったら、名前と共にボードファイルに追加
if (mes != "" && mes != nil) then
fp = open(BFILE, "a")
fp.print <<END
<dt>#{name} さんの書き込み:</dt>
<dd>#{mes}</dd>
END
fp.close
end
# HTMLファイルの先頭部分を出力
print "<html><body>\n"
print "<h1>Very simple Web board</h1><hr><dl>\n"
# 間にボードファイルの内容を挟み込む
begin
fp = open(BFILE, "r")
while s = fp.gets do
print s
end
fp.close
rescue
end
# HTMLファイルの末尾部分(フォーム含む)を出力
print <<END
</dl>
<hr>
<form method=post action=board.cgi>
お名前:
<input type=text size=20 name="name" value="#{name}"><br>
書き込み欄: <br>
<textarea name=message rows=5 cols=60>
</textarea><br>
<input type=submit value="書き込み">
<input type=reset value="クリア">
</form>
</body>
</html>
END
備考: