Socket
Book a DemoInstallSign in
Socket

mercurius

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mercurius

0.2.1
bundlerRubygems
Version published
Maintainers
1
Created
Source

Mercurius

Send push messages to Android, iOS devices.

This gem is designed to be easy to configure for simple operation when your needs are simple, but also allow more complicated cases such as when you need to send to multiple applications with different configurations. The interface is designed to be as similar as possible for GCM and APNS.

Installation

$ gem install mercurius

or add to your Gemfile

gem 'mercurius'

and install it with

$ bundle install

GCM

Set up the default GCM configuration. (All GCM::Services will be created with this configuration, but the configuration can be overridden per-service if you need to.)

GCM.key = 'your_gcm_key'

Create the service with:

gcm_service = GCM::Service.new

Now create the notification that you wish to send:

gcm_notification = GCM::Notification.new(data: { alert: 'Hey' })

You can deliver the gcm_notification in the following manners:

gcm_service.deliver gcm_notification, 'token123'               # single recipient
gcm_service.deliver gcm_notification, 'token123', 'token456'   # multiple recipients
gcm_service.deliver gcm_notification, ['token123', 'token456'] # multiple recipients
gcm_service.deliver gcm_notification, topic: 'topic123'        # topic delivery

APNS

The typical APNS configuration is set automatically, but you need to set the host with with either:

APNS.mode = :development  # gateway.sandbox.push.apple.com

or

APNS.mode = :production   # gateway.push.apple.com

Next, you'll need to set your PEM information. This can either be with a file or with a text buffer:

pem = APNS::Pem.new(path: 'sandbox.pem', password: 'test123')
pem = APNS::Pem.new(data: pem_data_buffer, password: 'test123')

Set the default configuration:

APNS.pem = pem

Now you are ready to create the APNS::Service, which will allow you to send notifications:

apns_service = APNS::Service.new

The APNS::Service object is created with the settings from earlier, but any of them can be overridden if you need more control (for instance if you need to send with multiple PEMs)

apns_notification = APNS::Notification.new(alert: 'Hey')

The deliver method can be called in the following ways:

apns_service.deliver apns_notification, 'token123'              # single recipient
apns_service.deliver apns_notification, 'token123', 'token456'  # multiple recipients
token_array = ['token123', 'token456']
apns_service.deliver apns_notification, token_array             # multiple recipients

Testing

GCM::Service and APNS::Service can accept which type of connection they use to deliver pushes. Mercurius provides several mock connections for convenient testing. You can create a custom fake connection if you require a special use case.

# Tokens passed will return successfully from GCM
GCM::Service.new connection: GCM::SuccessfulConnection.new

# Tokens passed will return a NotRegistered error from the fake GCM
GCM::Service.new connection: GCM::UnregisteredDeviceTokenConnection.new('token123')

# Tokens passed as keys will return their mapped value as the canonical ID
GCM::Service.new connection: GCM::CanonicalIdConnection.new('token123' => 'canonical123')

Contributing

Please fork, modify, and send a pull request if you want to help improve this gem.

License

Mercurius is released under the MIT license:

http://www.opensource.org/licenses/MIT

FAQs

Package last updated on 02 Jun 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.