module Pc::Shell

Public Instance Methods

choose(choices = {}) click to toggle source
# File lib/pc/interfaces/shell.rb, line 23
def choose(choices = {})
  if choices[:next]
    sleep 0.2
    choices[:next]
  else
    say %{Pick one: #{choices.keys.join ' - '} }
    choice = gets.strip
    choices.select{|k,v| k.to_s == choice}.values.first || prompt(choices)
  end
end
enqueue(message, choices = {}) click to toggle source
# File lib/pc/interfaces/shell.rb, line 15
def enqueue(message, choices = {})
  (@actions ||= []).push message: message, choices: choices
end
run(options = {}) click to toggle source
# File lib/pc/interfaces/shell.rb, line 7
def run(options = {})
  while action = (@actions ||= []).shift
    say action[:message]
    choose(action[:choices]).call
    run
  end
end
say(message) click to toggle source
# File lib/pc/interfaces/shell.rb, line 19
def say(message)
  puts message
end