Class: Twitter::Headers

Inherits:
Object
  • Object
show all
Defined in:
lib/twitter/headers.rb

Overview

Builds HTTP headers for Twitter API requests

Instance Method Summary collapse

Constructor Details

#initialize(client, request_method, url, options = {}) ⇒ Twitter::Headers

Initializes a new Headers object

Examples:

Twitter::Headers.new(client, :get, "https://api.twitter.com")

Parameters:

  • client (Twitter::Client)

    The client making the request

  • request_method (Symbol)

    The HTTP request method

  • url (String)

    The request URL

  • options (Hash) (defaults to: {})

    Additional options



18
19
20
21
22
23
24
# File 'lib/twitter/headers.rb', line 18

def initialize(client, request_method, url, options = {})
  @client = client
  @request_method = request_method
  @uri = URI.parse(url)
  @bearer_token_request = options.delete(:bearer_token_request)
  @options = options
end

Instance Method Details

#bearer_token_request?Boolean

Check if this is a bearer token request

Examples:

headers.bearer_token_request? # => false

Returns:

  • (Boolean)


32
33
34
# File 'lib/twitter/headers.rb', line 32

def bearer_token_request?
  !!@bearer_token_request
end

#oauth_auth_headerSimpleOAuth::Header

Generate OAuth authentication header

Examples:

headers.oauth_auth_header # => #<SimpleOAuth::Header>

Returns:

  • (SimpleOAuth::Header)


42
43
44
# File 'lib/twitter/headers.rb', line 42

def oauth_auth_header
  SimpleOAuth::Header.new(@request_method, @uri.to_s, @options, @client.credentials.merge(ignore_extra_keys: true))
end

#request_headersHash

Build the request headers hash

Examples:

headers.request_headers # => {user_agent: "...", authorization: "..."}

Returns:

  • (Hash)


52
53
54
55
56
57
58
59
60
61
62
# File 'lib/twitter/headers.rb', line 52

def request_headers
  headers = {} # : Hash[Symbol, String]
  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