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