class Twitter::Headers

Public Class Methods

new(client, request_method, url, options = {}) click to toggle source
# File lib/twitter/headers.rb, line 7
def initialize(client, request_method, url, options = {})
  @client = client
  @request_method = request_method.to_sym
  @uri = Addressable::URI.parse(url)
  @bearer_token_request = options.delete(:bearer_token_request)
  @options = options
end

Public Instance Methods

bearer_token_request?() click to toggle source
# File lib/twitter/headers.rb, line 15
def bearer_token_request?
  !!@bearer_token_request
end
oauth_auth_header() click to toggle source
# File lib/twitter/headers.rb, line 19
def oauth_auth_header
  SimpleOAuth::Header.new(@request_method, @uri, @options, @client.credentials.merge(ignore_extra_keys: true))
end
request_headers() click to toggle source
# File lib/twitter/headers.rb, line 23
def request_headers
  headers = {}
  headers[:user_agent] = @client.user_agent
  if bearer_token_request?
    headers[:accept]        = '*/*'
    headers[:authorization] = bearer_token_credentials_auth_header
  else
    headers[:authorization] = auth_header
  end
  headers
end

Private Instance Methods

auth_header() click to toggle source
# File lib/twitter/headers.rb, line 37
def auth_header
  if @client.user_token?
    oauth_auth_header.to_s
  else
    @client.bearer_token = @client.token unless @client.bearer_token?
    bearer_auth_header
  end
end
bearer_auth_header() click to toggle source

@return [String]

# File lib/twitter/headers.rb, line 47
def bearer_auth_header
  "Bearer #{@client.bearer_token}"
end
bearer_token_credentials_auth_header() click to toggle source

Generates authentication header for a bearer token request

@return [String]

# File lib/twitter/headers.rb, line 54
def bearer_token_credentials_auth_header
  "Basic #{Base64.strict_encode64("#{@client.consumer_key}:#{@client.consumer_secret}")}"
end