Get started with a free 7-day trial on our Startup plan.

start trial

PushRadar and Ruby

The latest version of PushRadar's API is v2, released July 5, 2019.

Welcome to PushRadar's API documentation for Ruby. This article covers calling the various methods of the PushRadar object to publish notifications to a channel in realtime.

(Ruby)Prerequisites

You should do either of the following to install PushRadar's Ruby gem:

  • (a)Add gem 'pushradar' to your application's Gemfile and then execute $ bundle or ...
  • (b)Install PushRadar's Ruby gem yourself by running the command $ gem install pushradar
(server)"Hello World!" example

The following example demonstrates broadcasting a "Hello World!" message on a channel called test-channel. Replace your-secret-key with your actual PushRadar secret, which may be obtained from the API page of your dashboard.

  • Ruby
require 'PushRadar'
include PushRadar

radar = Radar.new('your-secret-key')
radar.broadcast('test-channel', {message: 'Hello World!'})
(client)Receiving notifications

To find out how to receive notifications by subscribing to channels, check out the documentation for our JavaScript client library.

(tip)Adding multiple data items

For convenience, PushRadar's Ruby library supports a fluent syntax to structure broadcasts. To add multiple data items, you can do either of the following:

  • Ruby
# ... radar = Radar.new(...)
radar.add_data_items(
    {message: 'Hello World!', item_2: "It's me!"}
).broadcast('test-channel')

# --- or ---

radar.broadcast('test-channel', {message: 'Hello World!', item_2: "It's me!"})
(security)Private channels

PushRadar supports private channels, which allow you to ensure that certain channels are only subscribed to by certain users.

The process is as follows. First you must set up an authentication endpoint, a URL that PushRadar will call to authenticate users when they subscribe to a channel. From this endpoint, you will need to check whether the user is allowed to subscribe to the desired channel. If they are, the endpoint should return an authentication token which can be generated using the channel_auth method.

The final step is to register your authentication endpoint using the JavaScript client library.

Note:   Private channels must start with the prefix "private-"

Here is some code showing the whole process:

  • Ruby
require 'PushRadar'
include PushRadar

radar = Radar.new('your-secret-key')

# Get request query parameter "channel" and determine whether the user can join it
channel = ...

# ... if they can, return the auth token
{authToken: radar.channel_auth(channel)}.to_json

Lastly, register your authentication endpoint URL using the JavaScript client library:

  • JavaScript
var radar = new PushRadar("your-api-key");
radar.setAuthenticationEndpoint("http://localhost/channel-auth");