[rails] erbで価格表を美しく表現する方法
<pre style="font-size:x-small"> --------------------------- | サイズ |-------------------- 枚数 | B5・B6| A4・B4|B3~ | | |二つ折 ------+------+------+------<%= proc {|footer| (@price_table.map{|line| " % 6s|% 6s|% 6s|% 6s" % (0..3).map{|i| comma line[i]}} << footer).join " ------+------+------+------" }[" 単位:円" ] %> </pre>
commaは数字にカンマつけて表示するヘルパー。携帯用なのでこのような出力になっている。個人的にはシュヴァルツ変換のような汎用性を感じますね。笑
ここで、@price_tableは価格表が次の形式で格納されているとする。
>> pp @price_table [[500, 1575, 1733, 2310], [1000, 3150, 3465, 4620], [1500, 4725, 5198, 6930], (略) [9500, 29925, 32918, 43890], [10000, 31500, 34650, 46200], [10500, 33075, 36383, 48510]]
出力
--------------------------- | サイズ |-------------------- 枚数 | B5・B6| A4・B4|B3~ | | |二つ折 ------+------+------+------ 500| 1,575| 1,733| 2,310 ------+------+------+------ 1,000| 3,150| 3,465| 4,620 ------+------+------+------ 1,500| 4,725| 5,198| 6,930 (略) 9,000|28,350|31,185|41,580 ------+------+------+------ 9,500|29,925|32,918|43,890 ------+------+------+------ 10,000|31,500|34,650|46,200 ------+------+------+------ 10,500|33,075|36,383|48,510 ------+------+------+------ 単位:円