我如何在Ruby中使用(n)curses?

我想创建一个进度条来指示 ruby 中批处理作业的状态。

我读过一些教程 / 关于使用(n)curses 的库,其中没有一个是特别有助于解释如何在终端中创建“动画”进度条,或者在 ruby 中使用curses。

我已经意识到使用单独的线程来监视给定工作的进度,我只是不知道如何继续绘制进度条。


Update

ProgressBar class was incredibly straight-forward, perfectly solved my problem.

0
额外 编辑
意见: 2

4 答案

在windows上,curses可以工作,ncurses不会,并且对于进度条,curses应该足够了。所以,使用curses而不是ncurses。

另外,curses和ncurses都是c库的薄薄包装 - 这意味着你并不需要特定于Ruby的教程。

但是,在 PickAxe网站上,您可以下载本书的所有代码示例。文件“ex1423.rb”包含一个演奏Pong的curses演示程序 - 应该给你足够的素材让你走。

0
额外

我个人认为,在这种情况下,诅咒是矫枉过正的。虽然诅咒LIB是不错(我经常使用它自己),这是一个PITA重新学习每一个我没有必要为它具有成为一个坏的界面设计的标记12个月的时间。

如果由于某种原因,您无法继续使用 Joey建议的进度条库lib 滚动并将其释放到即时荣誉的免费许可:)

0
额外
@MeNoMore“PITA”不是代码。这是“屁股疼痛”的缩写。不要使用代码格式来处理这些事情。
额外 作者 Andrew Barber,
@Andrew理发师:)你让我笑了现在我真的不知道那与皮塔作为“痛苦的屁股”,刚刚学到的东西,我来自PITA是完全不同的东西(提示:即使那里它没有代码:),你可以谷歌它),无论如何,谢谢
额外 作者 CloudyMarble,

您可以从 ruby / ProgressBar图书馆获得一些实施建议,它生成文本进度条。几个月前我偶然发现了它,但还没有使用它。

0
额外
更新注意:截至Ruby 2.1.0(2014年的某个时间) - STDLIB中的curses已被删除,现在一个宝石
额外 作者 mraaroncruz,
注意:截至2012年,使用ruby语言的 ncurses 的实现使用 ffi-ncurses 宝石。 Curses 包含在红宝石的STDLIB中。
额外 作者 shadowbq,

非常迟到的回答并为自我推销感到遗憾,但我创建了图书馆以显示终端进度。

0
额外