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

时间:2020-03-05 18:37:33  来源:igfitidea点击:

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

我已经阅读了一些有关使用(n)curses的教程/库,这些教程/库都没有特别有助于说明如何在终端中创建"动画"进度条或者将curses与Ruby一起使用。

我已经知道使用单独的线程来监视给定作业的进度,但我不确定如何继续绘制进度条。

更新

ProgressBar类非常简单明了,完美解决了我的问题。

解决方案

回答

我们可能可以从Ruby / ProgressBar库中获得一些实现想法,该库将生成文本进度条。几个月前,我偶然发现了它,但没有使用它。

回答

在Windows上,curses开箱即用,ncurses则不行,对于进度条curses应该就足够了。因此,使用curses而不是ncurses。

而且,curses和ncurses都是c库中的薄型包装器,这意味着我们实际上并不需要特定于Ruby的教程。

但是,我们可以在PickAxe的网站上下载该书的所有代码示例。文件" ex1423.rb"包含一个播放Pong的curses演示,应该为我们提供足够的素材来继续前进。

回答

我个人认为,在这种情况下,诅咒实在是太过分了。尽管curses lib很不错(而且我经常自己使用它),但每次12个月内我都不需要它时,它是一种PITA,可以重新学习,这必须是不良接口设计的标志。

如果由于某种原因我们无法继续使用进度条,则lib Joey建议我们自己滚动并根据相当不错的免费许可证将其释放,以实现即时荣誉:)

回答

很晚才回答,对自己的晋升感到抱歉,但是我创建了图书馆来展示终端的进度。