的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