diff options
Diffstat (limited to 'lib/sisu/current/utils_response.rb')
-rw-r--r-- | lib/sisu/current/utils_response.rb | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/lib/sisu/current/utils_response.rb b/lib/sisu/current/utils_response.rb index c47fab2e..2343dad6 100644 --- a/lib/sisu/current/utils_response.rb +++ b/lib/sisu/current/utils_response.rb @@ -55,18 +55,19 @@ =end module SiSU_Response - class Response - def response?(ask) #move to more appropriate directory later - response='redo' - print ask + " ['yes', 'no' or 'quit']: " - response=File.new('/dev/tty').gets.strip - ans=if response=='yes' then true - elsif response=='no' then false - elsif response =~/^quit|exit$/ then exit - else puts "[please type: 'yes', 'no' or 'quit']" - response?(ask) - end - ans + def available_selections_ + %{'yes', 'no', 'quit' or 'exit'; [ynqx]} + end + def response?(ask) + response='redo' + print ask + %{ [#{available_selections_}]: } + response=File.new('/dev/tty').gets.strip + case response + when /^(?:y|yes)$/ then true + when /^(?:n|no)$/ then false + when /^(?:[qx]|quit|exit)$/ then exit + else puts %{[please type: #{available_selections_}]} + response?(ask) end end def query |