Я хочу создать интерактивное приложение, в котором пользователь запускает его и может выполнять различную задачу, набрав команды (некую оболочку)
Пример:
./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)
Я искал, но не смог найти никаких рубиновых камней, которые я мог бы использовать специально для взаимодействия с консолью, поэтому я собираюсь сделать свой собственный...
Я посмотрел 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])
так что мой вопрос: какие камни я могу использовать для создания такого класса консоли? может, кто-то уже сделал что-то подобное? Я планирую использовать HighLine для ввода/вывода, но любое другое предложение, что я могу использовать?