Ask a question. Returns a true for yes, false for no. If not connected to
a tty, raises an exception if default is nil, otherwise returns default.
# File lib/rubygems/user_interaction.rb, line 252
def ask_yes_no(question, default=nil)
unless tty? then
if default.nil? then
raise Gem::OperationNotSupportedError,
"Not connected to a tty and no default specified"
else
return default
end
end
default_answer = case default
when nil
'yn'
when true
'Yn'
else
'yN'
end
result = nil
while result.nil? do
result = case ask "#{question} [#{default_answer}]"
when /^y/ then true
when /^n/ then false
when /^$/ then default
else nil
end
end
return result
end