Создание интерактивного консольного приложения ruby ​​

Я хочу сделать интерактивное приложение, в котором пользователь запускает его и может выполнять различные задачи, вводя команды (какая-то оболочка)

пример:

./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для ввода/вывода, но есть другие предложения, что я могу использовать?

14
задан davispuh 24 March 2012 в 18:45
поделиться