[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
------+------+------+------
                   単位:円