We need to access these keys in order to massage the payload so convert each key to a string on initialization. * Avoid ActiveSupport dependency and use our own Hash#stringify_keys! shim * Change specs to be positive to avoid confusing failure messages * Minor clean-up of Notification initializer
This is a breaking change, API-wise. The library no longer exposes the simple `EM::APN.push` method. Instead, an `EM::APN::Client` object is instantiated and `EM::APN::Notification` objects are passed to #deliver. Error callbacks can be attached to the Client instance, as well as callbacks when the connection closes.
The unit suite was hitting Apple's sandbox servers. This change defaults the gatway to localhost which allows for the suite to run while disconnected from the Internet. * Set APN_GATEWAY environment variable to localhost before each * Remove unused EM::APN::Client#connect override noop * Remove unused EM::APN::Client.gateway method