Class: RestChain::RestClientDriver

Inherits:
Object
  • Object
show all
Defined in:
lib/rest_chain/rest_client_driver.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ RestClientDriver

Returns a new instance of RestClientDriver.



5
6
7
# File 'lib/rest_chain/rest_client_driver.rb', line 5

def initialize(logger)
  @logger = logger
end

Instance Attribute Details

#loggerObject (readonly) Also known as: log

Returns the value of attribute logger.



8
9
10
# File 'lib/rest_chain/rest_client_driver.rb', line 8

def logger
  @logger
end

Instance Method Details

#delete(url, parameters = {}) ⇒ Object



11
12
13
# File 'lib/rest_chain/rest_client_driver.rb', line 11

def delete(url, parameters={})
  dispatch(:delete, url, parameters)
end

#dispatch(verb, url, parameters = {}) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/rest_chain/rest_client_driver.rb', line 31

def dispatch(verb, url, parameters={})
  log.debug "Dispatching a #{verb.to_s.upcase} request to #{url} with parameters: #{parameters}"
  response = RestClient::Request.execute(headers: {params: parameters},
                                         method:  verb,
                                         url:     url)
  RestResponse.new(response.code, response.headers, response.body)
rescue RestClient::Exception => error
  log.debug "#{verb.to_s.upcase} request to #{url} raised a #{error.class.name} exception."
  response = error.response
  RestResponse.new(response.code, response.headers, response.body)
end

#get(url, parameters = {}) ⇒ Object



15
16
17
# File 'lib/rest_chain/rest_client_driver.rb', line 15

def get(url, parameters={})
  dispatch(:get, url, parameters)
end

#patch(url, parameters = {}) ⇒ Object



19
20
21
# File 'lib/rest_chain/rest_client_driver.rb', line 19

def patch(url, parameters={})
  dispatch(:patch, url, parameters)
end

#post(url, parameters = {}) ⇒ Object



23
24
25
# File 'lib/rest_chain/rest_client_driver.rb', line 23

def post(url, parameters={})
  dispatch(:post, url, parameters)
end

#put(url, parameters = {}) ⇒ Object



27
28
29
# File 'lib/rest_chain/rest_client_driver.rb', line 27

def put(url, parameters={})
  dispatch(:put, url, parameters)
end