Build Status Code Climate

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:

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

require 'nuge/clients/grocer'

Nuge::Pusher.clients << Nuge::Clients::Grocer(certificate: '/path/to/cert.pem')

Urbanairship Client

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:

pusher = Nuge.pusher
pusher.register(token)
pusher.register(token, provider: 'android')

Notification pushing can be configured with custom expanders and formatters:

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