2013年03月27日

erbが静的Webページ作成にも使える件

ゲームのステータス画面を作るために、テーブルトークのキャラシートを参考にしてこんなものをつくろうとしたんですよ。
charasheet
Web上のゲームなんでHTMLで。しかも、文字の大きさとかウィンドウとかをグリグリ変える必要性もなさそうなんで、
文字の配置はcssでposition:absolute、left top属性で指定しようとしたんです。
すると、大量のこういう要素を作るはめに

<div id="xxx_area><span id="xxx_label">yyy</span><span id="xxx_value></span></div>

めんどくさくね? 
で、当初はちまちま手打ちしてたり、文字列置換で繰り返し部分だけを生成してコピペしてたりしたんだけど、あるときこれってerbで自動生成してもよくね?って思い出してきた。

ソースは超カンタン&適当。タブと改行区切りのデータファイルを取得して、erbに各データを適用するだけだ。
ツールは↓

require 'erb'

data = []
File.open(ARGV[1]) do |file|
  file.each_line do |line|
    data.push(line.chop.split("\t"))
  end
end

File.open(ARGV[0]) do |file|
   erb = ERB.new file.read
   print erb.result(binding)
end

出力は標準出力に吐く。ファイル化するかどうかはコマンドラインで決める
⇒最後に >output.html でリダイレクトすればいいだけだね

キモは変数「data」に配列データをいれることなんで、rhtml側ではこのdata変数を元に自動生成すればいいわけ

<% data.each do |item| %>
<div id="<%= item[1] %>_area"><span id="<%= item[1] %>_label"><%= item[0] %></span></div>
<% end %>

こんな感じ。
いいよー。快適だよー。
タグ:ruby
posted by LoyalTouch at 22:43| Comment(0) | TrackBack(0) | クライアントサイド | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/353025191

この記事へのトラックバック