diff options
-rw-r--r-- | data/doc/sisu/CHANGELOG_v6 | 2 | ||||
-rw-r--r-- | lib/sisu/develop/utils_response.rb | 17 |
2 files changed, 12 insertions, 7 deletions
diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6 index a8206116..4a385a72 100644 --- a/data/doc/sisu/CHANGELOG_v6 +++ b/data/doc/sisu/CHANGELOG_v6 @@ -94,6 +94,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.4.0.orig.tar.xz * utils_composite, composite documents (.ssm) extract the list of insert files + * utils_response, ease selection options + * SiSU_is switched to a method (instead of a hash) (bin and lib) * use RbConfig instead of Config diff --git a/lib/sisu/develop/utils_response.rb b/lib/sisu/develop/utils_response.rb index 31092bed..4603646e 100644 --- a/lib/sisu/develop/utils_response.rb +++ b/lib/sisu/develop/utils_response.rb @@ -56,17 +56,20 @@ =end module SiSU_Response class Response - def response?(ask) #move to more appropriate directory later + def available_selections_ + %{'yes', 'no', 'quit' or 'exit'; [ynqx]} + end + def response?(ask) response='redo' - print ask + " ['yes', 'no' or 'quit']: " + print ask + %{ [#{available_selections_}]: } 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']" + 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 - ans end end end |