<p>I'd like to be able to write a ruby program that can restart without dropping it's socket connections.</p>

You're talking about network sockets, not UNIX sockets I assume?
I'm not sure this suits your needs, but the way I would do it is by seperating the networking and logic part, and only restart the logic part, then reconnect the logic part to the networking part.