Ruby:基于控制台的菜单

时间:2012-08-14 15:10:40

标签: ruby user-interface

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

我调查了ncurses-rubyrdialogHighLine但他们似乎都被放弃作为一个项目,或者甚至从他们的例子中抛出错误(如果存在的话)。< / p>

有人可以指点我一个漂亮的,可用的宝石做TUI菜单一个简单的(我对此会是新的......)介绍如何这个在Rails中(即可用数据的表示(=我在数组中的内容))以及如何处理用户的选择?

谢谢!

2 个答案:

答案 0 :(得分:2)

我认为你的所有提案都是有效的,然后有更多(n)curses包装器,以及更多进化的framworks,如rutuirbcurse(不幸的是没有激活),vedeu和可能是其他一些人。

但是,我现在的看法是 hirbhighline ,这些都是稳定且积极维护的。

答案 1 :(得分:1)

绿鞋是这类作品的一个很好的宝石,它有菜单,选择,编辑框,档案,复选框等,虽然简单,除了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