Socket.accept returns an array, whereas TCPServer.accept and UNIXSocket.accept
just return one TCPSocket and UNIXSocket respectively. Is this intentional or
by design?

It's not a big deal, I've gotten around it by just doing this:
newsock, nil = socket.accept

I just thought I'd point it out. It certainly caused me a few nights of
confusion.

-- 
Eli Green
Connection closed by foreign host.