#!/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))
