Ruby:基于控制台的菜单

我有一个名称和URL数组,并希望以向上/向下滚动菜单的forms向用户显示名称列表。 基本上shell中允许的dialog

我已经研究过ncurses-rubyrdialogHighLine但它们似乎都被放弃作为一个项目,或者甚至从他们的例子中抛出错误(如果存在的话)。

有人可以指点我一个好的,可用的gem做TUI菜单一个简单的(我将是新的,然后…)介绍如何在Rails中这样(即可用数据的呈现(=什么我有我的数组))以及如何处理用户的选择?

谢谢!

我认为你的所有提议都是有效的,然后会有更多(n)curses包装器,以及更多进化的framworks,如rutui , rbcurse (不幸的是不活跃), vedeu以及可能还有其他一些。

但是,我现在采取的是hirb或highline ,它们既稳定又积极维护。

绿鞋是这类工作的一个很好的gem,它有菜单,选择,编辑框,档案,复选框等,虽然简单,没有Ruby本身以外的依赖。

有一个小但非常活跃的社区,有一个邮件列表可以寻求帮助。 有关详细信息,请参阅http://vgoff.posterous.com/green-shoes 。 安装是使用gem install green_shoes

这是一个小例子

 Shoes.app title: 'Selecteer vakantie', height: 600 do background lightgreen..lightskyblue, :angle => 30 @list = ["choice1","choice2"] @result = [] stack do para "Make your choice.", font: "sans", size: 10 flow do button "Ok" do selected = @list.map{|c, n| n if c.checked?}.compact @result[0].text = "you selected #{selected}" end button("End") {exit} end @list.map! do |name| flow { @c = check; para name, width: 500, font: "sans", size: 10 } [@c, name] end @result << para('', :stroke => forestgreen) end end