consoleで表形式を表示するgemで tj/terminal-table というのがあり
とても便利なのですが、マルチバイトに対応していなかったので、
rochefort/terminal-table-unicode という gemを作りました。
実装自体は、miaout17/hirb-unicode を参考にしています。
unicode-display_width というマルチバイト判定gemを利用して、元のgemをちょろっとoverrideしているだけです。
require 'terminal-table-unicode' rows = [] rows << ['One', 1] rows << ['Two', 2] rows << ['Three', 3] rows << ['よんじゅうご', 45] table = Terminal::Table.new :rows => rows table.align_column(1, :right) puts table
+--------------+----+ | One | 1 | | Two | 2 | | Three | 3 | | よんじゅうご | 45 | +--------------+----+
と、なかなか便利です。