class Twitter::REST::Request
Attributes
client[RW]
headers[RW]
options[RW]
path[RW]
rate_limit[RW]
request_method[RW]
uri[RW]
verb[RW]
Public Class Methods
new(client, request_method, path, options = {})
click to toggle source
@param client [Twitter::Client] @param #request_method [String, Symbol] @param path [String] @param options [Hash] @return [Twitter::REST::Request]
# File lib/twitter/rest/request.rb, line 21 def initialize(client, request_method, path, options = {}) @client = client @request_method = request_method.to_sym @path = path @uri = Addressable::URI.parse(client.connection.url_prefix + path) @options = options end
Public Instance Methods
perform()
click to toggle source
@return [Array, Hash]
# File lib/twitter/rest/request.rb, line 30 def perform @headers = Twitter::Headers.new(@client, @request_method, @uri.to_s, @options).request_headers begin response = @client.connection.send(@request_method, @path, @options) { |request| request.headers.update(@headers) }.env rescue Faraday::Error::TimeoutError, Timeout::Error => error raise(Twitter::Error::RequestTimeout.new(error)) rescue Faraday::Error::ClientError, JSON::ParserError => error raise(Twitter::Error.new(error)) end @rate_limit = Twitter::RateLimit.new(response.response_headers) response.body end