Module: Tumblr::Connection

Included in:
Client
Defined in:
lib/tumblr/connection.rb

Instance Method Summary collapse

Instance Method Details

#connection(options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/tumblr/connection.rb', line 7

def connection(options={})
  
  default_options = {
    :headers => {
      :accept => 'application/json',
      :user_agent => "tumblr_client (ruby) - #{Tumblr::VERSION}"
    },
    :url => "http://#{api_host}/"
  }

  client = options[:client] ||= Faraday.default_adapter

  Faraday.new("http://#{api_host}/", default_options.merge(options)) do |conn|
    data = { :api_host => api_host }.merge(credentials)
    unless credentials.empty?
      conn.request :oauth, data
    end
    conn.request :multipart
    conn.request :url_encoded
    conn.response :json, :content_type => /\bjson$/
    conn.adapter client
  end
end