Class: ActiveResource::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/active_resource/connection.rb,
lib/active_resource/http_mock.rb
more...

Overview

Class to handle connections to remote web services. This class is used by ActiveResource::Base to interface with REST services.

Constant Summary collapse

HTTP_FORMAT_HEADER_NAMES =
{  get: "Accept",
  put: "Content-Type",
  post: "Content-Type",
  patch: "Content-Type",
  delete: "Accept",
  head: "Accept"
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(site, format = ActiveResource::Formats::JsonFormat, logger: nil) ⇒ Connection

The site parameter is required and will set the site attribute to the URI for the remote resource service.

Raises:

  • (ArgumentError)
[View source] [View on GitHub]

33
34
35
36
37
38
39
# File 'lib/active_resource/connection.rb', line 33

def initialize(site, format = ActiveResource::Formats::JsonFormat, logger: nil)
  raise ArgumentError, "Missing site URI" unless site
  @proxy = @user = @password = @bearer_token = nil
  self.site = site
  self.format = format
  self.logger = logger
end

Instance Attribute Details

#auth_typeObject

Returns the value of attribute auth_type.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def auth_type
  @auth_type
end

#bearer_tokenObject

Returns the value of attribute bearer_token.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def bearer_token
  @bearer_token
end

#formatObject

Returns the value of attribute format.

[View on GitHub]

23
24
25
# File 'lib/active_resource/connection.rb', line 23

def format
  @format
end

#loggerObject

Returns the value of attribute logger.

[View on GitHub]

23
24
25
# File 'lib/active_resource/connection.rb', line 23

def logger
  @logger
end

#open_timeoutObject

Returns the value of attribute open_timeout.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def open_timeout
  @open_timeout
end

#passwordObject

Returns the value of attribute password.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def password
  @password
end

#proxyObject

Returns the value of attribute proxy.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def proxy
  @proxy
end

#read_timeoutObject

Returns the value of attribute read_timeout.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def read_timeout
  @read_timeout
end

#siteObject

Returns the value of attribute site.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def site
  @site
end

#ssl_optionsObject

Returns the value of attribute ssl_options.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def ssl_options
  @ssl_options
end

#timeoutObject

Returns the value of attribute timeout.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def timeout
  @timeout
end

#userObject

Returns the value of attribute user.

[View on GitHub]

22
23
24
# File 'lib/active_resource/connection.rb', line 22

def user
  @user
end

Class Method Details

.requestsObject

[View source] [View on GitHub]

26
27
28
# File 'lib/active_resource/connection.rb', line 26

def requests
  @@requests ||= []
end

Instance Method Details

#delete(path, headers = {}) ⇒ Object

Executes a DELETE request (see HTTP protocol documentation if unfamiliar). Used to delete resources.

[View source] [View on GitHub]

88
89
90
# File 'lib/active_resource/connection.rb', line 88

def delete(path, headers = {})
  with_auth { request(:delete, path, build_request_headers(headers, :delete, self.site.merge(path))) }
end

#get(path, headers = {}) ⇒ Object

Executes a GET request. Used to get (find) resources.

[View source] [View on GitHub]

82
83
84
# File 'lib/active_resource/connection.rb', line 82

def get(path, headers = {})
  with_auth { request(:get, path, build_request_headers(headers, :get, self.site.merge(path))) }
end

#head(path, headers = {}) ⇒ Object

Executes a HEAD request. Used to obtain meta-information about resources, such as whether they exist and their size (via response headers).

[View source] [View on GitHub]

112
113
114
# File 'lib/active_resource/connection.rb', line 112

def head(path, headers = {})
  with_auth { request(:head, path, build_request_headers(headers, :head, self.site.merge(path))) }
end

#patch(path, body = "", headers = {}) ⇒ Object

Executes a PATCH request (see HTTP protocol documentation if unfamiliar). Used to update resources.

[View source] [View on GitHub]

94
95
96
# File 'lib/active_resource/connection.rb', line 94

def patch(path, body = "", headers = {})
  with_auth { request(:patch, path, body.to_s, build_request_headers(headers, :patch, self.site.merge(path))) }
end

#post(path, body = "", headers = {}) ⇒ Object

Executes a POST request. Used to create new resources.

[View source] [View on GitHub]

106
107
108
# File 'lib/active_resource/connection.rb', line 106

def post(path, body = "", headers = {})
  with_auth { request(:post, path, body.to_s, build_request_headers(headers, :post, self.site.merge(path))) }
end

#put(path, body = "", headers = {}) ⇒ Object

Executes a PUT request (see HTTP protocol documentation if unfamiliar). Used to update resources.

[View source] [View on GitHub]

100
101
102
# File 'lib/active_resource/connection.rb', line 100

def put(path, body = "", headers = {})
  with_auth { request(:put, path, body.to_s, build_request_headers(headers, :put, self.site.merge(path))) }
end