View on GitHub


Test Coverage
# Ruby Push Notifications

[![Build Status](]( [![Dependency Status](]( [![Code Climate](]( [![Test Coverage](]( [![Gem Version](]( [![Join the chat at](](

### iOS, Android and Windows Phone Push Notifications made easy!

## Features

* iOS and Android support
* Complete error and retry management
* Easy and intuitive API

## Installation

Add this line to your application's Gemfile:

    gem 'ruby-push-notifications'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install ruby-push-notifications

## Usage

**Ruby Push Notifications** gem usage is really easy.

1. After installing, require the gem
2. Create one or more notifications
3. Create the corresponding `pusher`
4. Push!!
5. Get feedback

For completely detailed examples:

1. [Apple iOS example](
2. [Google Android example (GCM)](
3. [Google Android example (FCM)](
4. [Windows Phone(MPNS) example](
5. [Windows Phone(WNS) example](

## Pending tasks

Feel free to contribute!!

* Validate iOS notifications format and max size
* Validate iOS tokens format
* Validate GCM registration ids format
* Validate GCM notifications format and max size
* Split GCM notifications in parts if more than 1000 destinations are given (currently raising exception)
* Integrate with APNS Feedback service
* Validate MPNS notifications format
* Validate MPNS data
* Add other platforms (Amazon Fire...)

## Contributing

1. Fork it ( )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request

## Troubleshooting

**If you see "255 Unknown Error" error code**

This error code is assigned when the connection to push notification server wasn't successful
<a href="">255 UNKnown Error code</a>

Checking your connection configuration for example with APNS connection.
When your pem file and token are development make sure you configure the pusher for sandbox mode
```'the certificate', true)) ```

or when your pem file and token are production you should configure the pusher for production mode (Set the sandbox mode to false when creating your pusher)
```'the certificate', false)) ```

## Changelog

Refer to the []( file for detailed changes across versions.