2011-07-08 10 views
3
、どのような方法あなたは、私がこのような何かのための最も保守性/読み取り可能なコードを生成するために使用するプレーンテキストの.erbテンプレートで

を示唆している:プレーンテキストの列レイアウトを正当化する最もクリーンな方法は?

ITEM DESCRIPTION           QTY  PRICE 

Product Name One            1  $10.00 
Another Product With a Longer Name       2  $5.00 
Yet Another Item            1  $30.00 

それらの行のそれぞれがベース、(明らかに)変数であります購入したアイテムについて

私はヘルパーメソッドで必要な空白を計算することができましたが、これはすでにより洗練された解決策で解決済みの問題ですか?

答えて

0

プレーンテキストテーブルジェネレータが必要です。私がルビーについて考えることができる唯一のものはhttps://github.com/visionmedia/terminal-tableですが、あなたのニーズに合わない場合は他にもあるかもしれません。

0

最終的には、埋め込み形式のオプションを使用してprintf()を使用しました。このような状況では、ターミナルテーブルのものは少し複雑すぎるように見えましたが、テーブル化された結果セットを表示するなど、より複雑な要件には便利です。

1

実際にこれを行うには、ERBテンプレートにフォーマット属性を渡すことができます。私は最近、rummのプルリクエストでこのトリックを使用しました。

私の例は、次のとおりです。

拳ERBテンプレートは以下のようになります。

ID    Name 
==    ==== 
2     512MB Standard Instance 
3     1GB Standard Instance 
4     2GB Standard Instance 
5     4GB Standard Instance 
6     8GB Standard Instance 
7     15GB Standard Instance 
8     30GB Standard Instance 
performance1-1 1 GB Performance 
performance1-2 2 GB Performance 
performance1-4 4 GB Performance 
performance1-8 8 GB Performance 
performance2-120 120 GB Performance 
performance2-15 15 GB Performance 
performance2-30 30 GB Performance 
performance2-60 60 GB Performance 
performance2-90 90 GB Performance 
:これは、このように見えるデータを出力

ID    Name 
==    ==== 
<% this.each do |flavor| %> 
    <%= '%-17s %-7s' % [flavor.id, flavor.name] %> 
<% end %> 

関連する問題