Hirb gem 可以成为您的一个很好的起点。它通常与 IRB 或 Rail 的控制台使用相关,但没有什么说我们不能将它用于其他用途。
通常它想要包装使用 ASCII 边框创建的表格:
+--------------------+---------------- -+------------+
| 用户名 | 姓名 | 登录数 |
+--------------------+---------------- -+------------+
| email_1@yahoo.com | 比奇伍德 | 2 |
| email_2@yahoo.com | 比奇伍德 | 2 |
| email_3@yahoo.com | 比奇伍德 | 2 |
| email_4@yahoo.com | 比奇伍德 | 2 |
| email_55@yahoo.com | 社区内科 | 6 |
+--------------------+---------------- -+------------+
但是,通过应用一点gsub
爱,我们可以把它打扮成你想要的样子:
values = [
[ 'user_name', 'name', 'num_logins' ],
[ 'email_1@yahoo.com', 'Beachwood', '2' ],
[ 'email_2@yahoo.com', 'Beachwood', '2' ],
[ 'email_3@yahoo.com', 'Beachwood', '2' ],
[ 'email_4@yahoo.com', 'Beachwood', '2' ],
[ 'email_55@yahoo.com', 'Community Internal Medicine', '6' ],
]
puts Hirb::Helpers::AutoTable.render(
values,
:headers => values.shift,
:description => false
).gsub(/^[+-]+\n?/, '').gsub('|', ' ')
看起来像:
用户名 名称 num_logins
email_1@yahoo.com 比奇伍德 2
email_2@yahoo.com 比奇伍德 2
email_3@yahoo.com 比奇伍德 2
email_4@yahoo.com 比奇伍德 2
email_55@yahoo.com 社区内科 6
您可能希望在将数组的标题行传递给 Hirb 之前将其弹出,或者从单独的数组中提供它。如果是,请更改:headers
选项。