Ably

A Ruby client library for ably.io, the real-time messaging service.

Installation

The client library is available as a gem from RubyGems.org.

Add this line to your application's Gemfile:

gem 'ably'

And then execute:

$ bundle

Or install it yourself as:

$ gem install ably

Using the Realtime API

Subscribing to a channel

Given:

client = Ably::Realtime.new(api_key: "xxxxx")
channel = client.channel("test")

Subscribe to all events:

channel.subscribe do |message|
  message[:name] #=> "greeting"
  message[:data] #=> "Hello World!"
end

Only certain events:

channel.subscribe("myEvent") do |message|
  message[:name] #=> "myEvent"
  message[:data] #=> "myData"
end

Publishing to a channel

client = Ably::Realtime.new(api_key: "xxxxx")
channel = client.channel("test")
channel.publish("greeting", "Hello World!")

Using the REST API

Publishing a message to a channel

client = Ably::Rest.new(api_key: "xxxxx")
channel = client.channel("test")
channel.publish("myEvent", "Hello!") #=> true

Fetching a channel's history

client = Ably::Rest.new(api_key: "xxxxx")
channel = client.channel("test")
channel.history #=> [{:name=>"test", :data=>"payload"}]

Authentication with a token

client = Ably::Rest.new(api_key: "xxxxx")
client.auth.authorise # creates a token and will use token authentication moving forwards
client.auth.current_token #=> #<Ably::Token>
channel.publish("myEvent", "Hello!") #=> true, sent using token authentication

Fetching your application's stats

client = Ably::Rest.new(api_key: "xxxxx")
client.stats #=> [{:channels=>..., :apiRequests=>..., ...}]

Fetching the Ably service time

client = Ably::Rest.new(api_key: "xxxxx")
client.time #=> 2013-12-12 14:23:34 +0000

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