的Hirb寶石可以爲你一個很好的起點。它通常與IRB或Rail的控制檯使用有關,但沒有任何說我們不能將其用於其他用途。
通常情況下它要包與ASCII邊界創建的表:
+--------------------+-----------------------------+------------+
| user_name | name | num_logins |
+--------------------+-----------------------------+------------+
| [email protected] | Beachwood | 2 |
| [email protected] | Beachwood | 2 |
| [email protected] | Beachwood | 2 |
| [email protected] | Beachwood | 2 |
| [email protected] | Community Internal Medicine | 6 |
+--------------------+-----------------------------+------------+
但是,通過施加位gsub
心愛的,我們可以穿着它像你想:
values = [
[ 'user_name', 'name', 'num_logins' ],
[ '[email protected]', 'Beachwood', '2' ],
[ '[email protected]', 'Beachwood', '2' ],
[ '[email protected]', 'Beachwood', '2' ],
[ '[email protected]', 'Beachwood', '2' ],
[ '[email protected]', 'Community Internal Medicine', '6' ],
]
puts Hirb::Helpers::AutoTable.render(
values,
:headers => values.shift,
:description => false
).gsub(/^[+-]+\n?/, '').gsub('|', ' ')
哪看起來像:
user_name name num_logins
[email protected] Beachwood 2
[email protected] Beachwood 2
[email protected] Beachwood 2
[email protected] Beachwood 2
[email protected] Community Internal Medicine 6
你可能想在pa之前彈出數組的標題行將它傳給Hirb,或者從單獨的陣列中提供。如果是,則更改:headers
選項。
您是否正在尋找的輸出是固定的寬度或只是界定是否正確?輸出的用例是什麼? –
是的。我正在尋找它是固定的。 – Joe