#!/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変数に
def trtd(array, elem = "td")
# 受け取った配列arrayの各要素間を "</td><td>" で区切り(1)、
# それらを全部くっつけた左に <tr><td> 右に </td></tr> をつけて(2)返す
sprintf("<tr><%s>%s</%s></tr>\n",
#--(2)--(1)--(2)------
elem, array.join("</#{elem}><#{elem}>"), elem)
end
def csv2table(csvdata) # CSVデータをまとめてtableに変換
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
data = CSV.read("HELPLIST.csv", headers:true)
# HTMLファイル中の ::HELPLIST:: をcsv2tableの結果に置き換えてprint
print html.gsub(/::HELPLIST::/, csv2table(data))