Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Pachube TCP streaming API

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 autotest
Octocat-spinner-32 examples
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 pachube-stream.gemspec
README.rdoc

PachubeStream

PachubeStream gives you an API for the Pachube TCP Stream using EventMachine

api.pachube.com/v2/beta/#tcp-socket-and-websocket-connections

Quickstart

require "pachube-stream"
connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])

Look at the examples directory for exactly that!

Connection Methods

The methods on the connection are what Pachube look for when making a request; this in-turn will generate the correct method value in the 'http json'

Example

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.subscribe("/feeds/504")

Results In the following JSON request

{
  "method" : "subscribe",
  "resource" : "/feeds/504",
  "headers" :
    {
      "X-PachubeApiKey" : "API_KEY"
    },
  "token" : "subscribe"
}

Subscribe

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.subscribe("/feeds/504")
request.on_datastream do |response|
  puts response
end

Unsubscribe

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.unsubscribe("/feeds/504")
request.on_compelete do |response|
  puts response
end

Get

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.get("/feeds/504")
request.on_get do |response|
  puts response
end

Put

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.put("/feeds/504")
request.on_complete do |response|
  puts response
end

Delete

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.delete("/feeds/504")
request.on_complete do |response|
  puts response
end

Post

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.post("/feeds/504")
request.on_complete do |response|
  puts response
end

The way we make a request is to send json in the format of a HTTP request; you only have to give extra options when you want to provide your own headers, params and body etc;

Therefore when using the connection Methods

When can create this 'http json request' with PachubeStream::HttpRequest passing in a hash

connection = PachubeStream::Connection.connect(:api_key => ENV["PACHUBE_API_KEY"])
request = connection.put("/feeds/504", PachubeStream::HttpRequest.new(:body => {}, :params => {}, :headers => {}))

request.on_complete do |response|
  puts response
end

Defaults:

When creating a connection you can specify the host and port these have defaults

host                       # => beta.pachube.com
port                       # => 8081

Respect

Respect goes out to the twitter-stream Gem as one took some concepts form that; nice!

Something went wrong with that request. Please try again.