class TwitterAPI::BaseClient

A base client class.

Public Class Methods

new(credentials) click to toggle source

Initializes a BaseClient object.

@param credentials [Hash] Credentials @return [TwitterAPI::BaseClient]

# File lib/twitter_api.rb, line 19
def initialize(credentials)
  @credentials = credentials
end

Public Instance Methods

get(resource_url, params) click to toggle source

Calls a Twitter REST API using GET method.

@param resource_url [String] Resource URL @param params [Hash] Parameters @return [TwitterAPI::Response]

# File lib/twitter_api.rb, line 28
def get(resource_url, params)
  headers = {'Authorization' => authorization('GET', resource_url, params)}
  url = resource_url + '?' + URI.encode_www_form(params)
  res = URI.open(url, headers)
  Response.new(res)
end
post(resource_url, params, data=nil) click to toggle source

Calls a Twitter REST API using POST method.

@param resource_url [String] Resource URL @param params [Hash] Parameters @param data [String] Posts data @return [TwitterAPI::Response]

# File lib/twitter_api.rb, line 41
def post(resource_url, params, data=nil)
  headers = {'Authorization' => authorization('POST', resource_url, params)}
  url = resource_url + '?' + URI.encode_www_form(params)
  uri = URI.parse(url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  res = http.request_post(url, data, headers)
  Response.new(res)
end
post_multipart(resource_url, params, data={}) click to toggle source

Calls a Twitter REST API using POST (multipart/form-data) method.

@param resource_url [String] Resource URL @param params [Hash] Parameters @param data [Array] Posts Multipart data @return [TwitterAPI::Response]

# File lib/twitter_api.rb, line 58
def post_multipart(resource_url, params, data={})
  headers = {'Authorization' => authorization('POST', resource_url, params)}
  url = resource_url + '?' + URI.encode_www_form(params)
  uri = URI.parse(url)
  form_data = []
  data.each{|k,v|
    form_data << [k,v]
  }
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  req = Net::HTTP::Post.new(uri.request_uri, headers)
  req.set_form(form_data, 'multipart/form-data')
  res = http.start{|h|
    h.request(req)
  }
  Response.new(res)
end

Private Instance Methods

authorization(method, url, params) click to toggle source

Returns string of authorization.

@param method [String] A HTTP method @param url [String] A URL @param params [Hash] Parameters @return [String]

# File lib/twitter_api.rb, line 85
def authorization(method, url, params)
  SimpleOAuth::Header.new(method, url, params, @credentials).to_s
end