# File lib/highline/question.rb, line 230
    def build_responses(message_source = answer_type, new_hash_wins = false)

      append_default unless default.nil?

      choice_error_str_func = lambda do
        message_source.is_a?(Array) \
            ? '[' +  message_source.map { |s| "#{s}" }.join(', ') + ']' \
            : message_source.inspect
      end

      old_hash = @responses

      new_hash = { :ambiguous_completion =>
                       "Ambiguous choice.  Please choose one of " +
                       choice_error_str_func.call + '.',
                     :ask_on_error         =>
                       "?  ",
                     :invalid_type         =>
                       "You must enter a valid #{message_source}.",
                     :no_completion        =>
                       "You must choose one of " + choice_error_str_func.call + '.',
                     :not_in_range         =>
                       "Your answer isn't within the expected range " +
                       "(#{expected_range}).",
                     :mismatch             =>
                       "Your entries didn't match.",
                     :not_valid            =>
                       "Your answer isn't valid (must match " +
                       "#{@validate.inspect})." }

      @responses = new_hash_wins ? old_hash.merge(new_hash) : new_hash.merge(old_hash)
    end