# File lib/rubygems/user_interaction.rb, line 168
  def ask_yes_no(question, default=nil)
    unless @ins.tty? then
      if default.nil? then
        raise Gem::OperationNotSupportedError,
              "Not connected to a tty and no default specified"
      else
        return default
      end
    end

    qstr = case default
           when nil
             'yn'
           when true
             'Yn'
           else
             'yN'
           end

    result = nil

    while result.nil?
      result = ask("#{question} [#{qstr}]")
      result = case result
      when /^[Yy].*/
        true
      when /^[Nn].*/
        false
      when /^$/
        default
      else
        nil
      end
    end

    return result
  end