aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/current/utils_response.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/current/utils_response.rb')
-rw-r--r--lib/sisu/current/utils_response.rb25
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