[![Build Status](https://travis-ci.org/dscout/nuge.png?branch=master)](https://travis-ci.org/dscout/nuge) [![Code Climate](https://codeclimate.com/github/dscout/nuge.png)](https://codeclimate.com/github/dscout/nuge) # Nuge The biz of pushing to multiple notification clients from a single source. Nuge presents a uniform interface for pushing out messages from a single source. Supported services (some pending): * Grocer * Urbanairship ## Installation Add this line to your application's Gemfile: ```ruby gem 'nuge' ``` ## Usage By default Nuge is a no-op. You'll need to configure any clients that you wish to push with. ### Grocer Client ```ruby require 'nuge/clients/grocer' Nuge::Pusher.clients << Nuge::Clients::Grocer(certificate: '/path/to/cert.pem') ``` ### Urbanairship Client ```ruby require 'nuge/clients/urbanairship' # Using the alternate config block style Nuge.configure do |config| config.clients << Nuge::Clients::Urbanairship.new( application_key: ENV['URBANAIRSHIP_APPLICATION_KEY'], application_secret: ENV['URBANAIRSHIP_APPLICATION_SECRET'], master_secret: ENV['URBANAIRSHIP_MASTER_SECRET'] ) end ``` You can then register devices: ```ruby pusher = Nuge.pusher pusher.register(token) pusher.register(token, provider: 'android') ``` Notification pushing can be configured with custom expanders and formatters: ```ruby Nuge.pusher.push(['1234abcd'], alert: 'hello!') ``` ## 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 new Pull Request