Module: Pc::Shell
- Includes:
- Interface
- Defined in:
- lib/pc/interfaces/shell.rb
Instance Method Summary collapse
- #choose(choices = {}) ⇒ Object
- #enqueue(message, choices = {}) ⇒ Object
- #run(options = {}) ⇒ Object
- #say(message) ⇒ Object
Methods included from Interface
Instance Method Details
#choose(choices = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# 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 = {}) ⇒ Object
15 16 17 |
# File 'lib/pc/interfaces/shell.rb', line 15 def enqueue(, choices = {}) (@actions ||= []).push message: , choices: choices end |
#run(options = {}) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/pc/interfaces/shell.rb', line 7 def run( = {}) while action = (@actions ||= []).shift say action[:message] choose(action[:choices]).call run end end |
#say(message) ⇒ Object
19 20 21 |
# File 'lib/pc/interfaces/shell.rb', line 19 def say() puts end |