#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
Encoding.default_external = 'utf-8'
require 'cgi'
require 'csv'
cgi = CGI.new
name = cgi["fullname"]
message = cgi["message"]
# CSVファイルにデータを追記する
CSV.open("information.csv", "a", force_quotes: true) do |csv|
csv << [name, message]
end
print "Content-type: text/html; charset=utf-8\n\n" # お約束
html = IO.read("HELPLIST-web.html") # htmlファイルの中身を全部html変数に
# trtdメソッドで、データを <tr><td>形式に変換
def trtd(array, elem = "td")
sprintf("<tr><%s>%s</%s></tr>\n", elem, array.join("</#{elem}><#{elem}>"), elem)
end
# csv2tableでCSVデータをテーブルに変換
def csv2table(csvdata)
kekka = trtd(csvdata.headers, "th") # ヘッダを個別に <th></th> でくくる
csvdata.each do |row|
values = row.collect { |r| r[1] } # その行の値だけ集める
kekka += trtd(values) # 1行分のtrをtrtdで作って追加する
end
"<table>\n" + kekka + "\n</table>" # 全体を <table> </table> でくくる
end
# CSVを読み込んでテーブルに変換
data = CSV.read("HELPLIST.csv", headers: true)
# HTMLファイル中の ::HELPLIST:: をcsv2tableの結果に置き換えてprint
print html.gsub(/::HELPLIST::/, csv2table(data))