rubyでテキストでのテーブルを描く

テキストでテーブルを書く

テキストのテーブルって何かって?

+----+-------+
| 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インストールできるなら使っちゃうのが楽じゃない。

タイトルとURLをコピーしました