send_command catches Qrack::ClientTimeout, in order to support @read_write_timeout. But ClientTimeout can be raised for another reason: To support the :timeout option in Qrack::Subscription#start. That gets mishandled, so using the :timeout option can result in the connection getting closed. This separates out the two kinds of timeout. :socket_timeout continues to use ClientTimeout. But the :timeout option now uses FrameTimeout (as it indicates a timeout in next_frame).
…rb auto-completion issue
See http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile. This is what we have been doing for many months with all other amqp gems and it gives developers a lot of freedom: * Use local clones of any gem (to test things as well as for development) * No merge conflicts in Gemfile.lock * Works great for travis-ci.org
…me to remove deprecated Queue#publish from their code.