テキストでテーブルを書く
テキストのテーブルって何かって?
+----+-------+
| ID | Name |
+----+-------+
| 1 | Jorge |
| 2 | John |
+----+-------+
こういうやつ。
配列を渡したら、こういうアスキーアートのテーブルをいい感じに作って欲しい。
terminal-table
というわけで試してみました、teminal-table v1.8.0。
手軽さが良い。
たとえば、先のテーブルを作るには、Terminal::Table.new
にヘッダ部分の配列をheadings
に、ボディ部分の2次元配列をrows
に渡してやればいい。
Terminal::Table.new(
headings: ['ID', 'Name'],
rows: [[1, 'Jorge'], [2, 'John']]
).to_s
でいい。
styleオプションにスタイルで枠線も変更できて、次のようになる。
puts Terminal::Table.new(
headings: ['ID', 'Name'],
rows: [[1, 'Jorge'], [2, 'John']],
style: {border_x: '★', border_y: '☆', border_i: '☆'}
).to_s
☆★★★★☆★★★★★★★☆
☆ ID ☆ Name ☆
☆★★★★☆★★★★★★★☆
☆ 1 ☆ Jorge ☆
☆ 2 ☆ John ☆
☆★★★★☆★★★★★★★☆
まぁ使う機会なんてそうそう無いんだけど、必要となったら単純なものはすぐに自分でかけるっちゃあ書けるんだけど、gemインストールできるなら使っちゃうのが楽じゃない。