These were inconsistent with each other (some only rescued timeouts, others handled transport exceptions as well) and with the rest of the module, which expects you to rescue these errors yourself. This is a breaking change. The old API was undocumented and potentially dangerous.
Allows new composites to be created without the ambiguity of base initialize. Composites can be created from an array of parts, followed by the options hash, similar to the basic initializer, but the new method will not attempt to detect packed parts as an argument.
String literals are utf-8 encoded
…pected for a regular hash
self.hash returns the right value, but unfortunately does it by calling self.pack.