class SimpleStream::Client

Constants

USER_AGENT

Attributes

connection[R]

Public Class Methods

new() click to toggle source
# File lib/simple_stream/client.rb, line 14
def initialize
  @connection = SimpleStream::Connection.new
end

Public Instance Methods

filter(opts = {}, &block) click to toggle source
# File lib/simple_stream/client.rb, line 26
def filter(opts = {}, &block)
  request(:post, 'https://stream.twitter.com:443/1.1/statuses/filter.json', opts, &block)
end
firehose(opts = {}, &block) click to toggle source
# File lib/simple_stream/client.rb, line 34
def firehose(opts = {}, &block)
  request(:get, 'https://stream.twitter.com:443/1.1/statuses/firehose.json', opts, &block)
end
sample(opts = {}, &block) click to toggle source
# File lib/simple_stream/client.rb, line 30
def sample(opts = {}, &block)
  request(:get, 'https://stream.twitter.com:443/1.1/statuses/sample.json', opts, &block)
end
site(user_ids, opts = {}, &block) click to toggle source
# File lib/simple_stream/client.rb, line 18
def site(user_ids, opts = {}, &block)
  request(:get, 'https://sitestream.twitter.com:443/1.1/site.json', opts.merge(follow: user_ids.join(',')), &block)
end
user(opts = {}, &block) click to toggle source
# File lib/simple_stream/client.rb, line 22
def user(opts = {}, &block)
  request(:get, 'https://userstream.twitter.com:443/1.1/user.json', opts, &block)
end

Private Instance Methods

default_headers() click to toggle source
# File lib/simple_stream/client.rb, line 61
def default_headers
  { accept: '*/*', user_agent: USER_AGENT }
end
oauth_auth_header(method, uri, params = {}) click to toggle source
# File lib/simple_stream/client.rb, line 46
def oauth_auth_header(method, uri, params = {})
  uri = Addressable::URI.parse(uri)
  config = SimpleStream.config
  SimpleOAuth::Header.new(method, uri, params, {
    consumer_key: config.consumer_key,
    consumer_secret: config.consumer_secret,
    token: config.access_token,
    token_secret: config.access_secret
  })
end
request(method, uri, params) { |data| ... } click to toggle source
# File lib/simple_stream/client.rb, line 39
def request(method, uri, params)
  headers = default_headers.merge(:authorization => oauth_auth_header(method, uri, params).to_s)
  request = HTTP::Request.new(method, uri + '?' + to_url_params(params), headers)
  response = SimpleStream::Response.new { |data| yield(data) }
  connection.stream(request, response)
end
to_url_params(params) click to toggle source
# File lib/simple_stream/client.rb, line 57
def to_url_params(params)
  params.collect { |k, v| [k, URI.encode(v)].join('=') }.sort.join('&')
end