Я хочу сделать интерактивное приложение, в котором пользователь запускает его и может выполнять различные задачи, вводя команды (какая-то оболочка)
пример:
./myapp.rb
App says Hi
Commands:
help - display help about command
open - open task
do - do action
Start>help open
open
opens specified task
Start>open Something
Something>do SomeAction
Success!
Something> (blinking cursor here)
Я искал, но не смог найти ни одного рубинового драгоценного камня, который я мог бы использовать специально для взаимодействия с консолью, поэтому я собираюсь сделать свой собственный...
Я посмотрел на Thor, но это не именно так, как я хочу, возможно, я мог бы использовать это, но не уверен...
это могло бы выглядеть примерно так:
class Tasks
attr_reader :opened_task
desc "open ", "opens specified task"
def open(params)
end
desc "do ", "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])
Итак, мой вопрос: какие жемчужины я могу использовать для создания такого консольного класса? может кто-то уже делал что-то подобное? Я планирую использовать HighLineдля ввода/вывода, но есть другие предложения, что я могу использовать?