我想创建一个交互式应用程序,用户启动后可以通过输入命令(类似于shell)来执行各种任务。
例子:
./myapp.rb
App says Hi
Commands:
help - display help about command
open - open task
do - do action
Start>help open
open <TaskName>
opens specified task
Start>open Something
Something>do SomeAction
Success!
Something> (blinking cursor here)
我搜索过但没找到任何可以用于控制台交互的Ruby宝石(gem),所以我打算自己写...
我看了一下Thor,但那不完全是我想要的,也许我可以使用它,但不确定...
可能会长这样:
class Tasks
attr_reader :opened_task
desc "open <TaskName>", "opens specified task"
def open(params)
end
desc "do <ActionName>", "do specified action"
def do(params)
end
end
tasks = Tasks.new
# theoretical Console class
console = Console.new
console.addCommand("open",tasks.method(:open),"open task")
console.addCommand("do",tasks.method(:do),"do action")
console.start("%s>",[*tasks.opened_task])
我的问题是,有哪些 gem 可以用来制作类似的控制台界面?也许已经有人做过类似的东西了吗?我计划使用 HighLine 来进行输入/输出,但你有其他建议可以用什么吗?
pry
来查找语法错误。重新定义不应该是问题,因为你需要知道它的工作原理。在当前触摸感应时代,由于您希望用户使用命令行而不是 GUI,因此我会相信他们拥有一些权力。但这是您的选择,如果您不想在对象上调用 pry,可以尝试重现很多东西。并且你还可以免费获得API。 - Reactormonk