Class: Skink::ResourcefulClient

Inherits:
Client::Base show all
Defined in:
lib/skink/resourceful_client/resourceful_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Client::Base

#connect, #method_missing, #options, #patch, #trace

Methods included from Client::Utils

#normalize_header_name

Constructor Details

#initialize(base_url) ⇒ ResourcefulClient



12
13
14
15
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 12

def initialize(base_url)
  @base_url = base_url
  @headers = {}
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Skink::Client::Base

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



10
11
12
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 10

def base_url
  @base_url
end

#headersObject (readonly)

Returns the value of attribute headers.



10
11
12
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 10

def headers
  @headers
end

#http_accessorObject (readonly)

Returns the value of attribute http_accessor.



10
11
12
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 10

def http_accessor
  @http_accessor
end

#last_responseObject (readonly)

Returns the value of attribute last_response.



10
11
12
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 10

def last_response
  @last_response
end

Instance Method Details

#delete(path) ⇒ Object



74
75
76
77
78
79
80
81
82
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 74

def delete(path)
  begin
    resp = http_accessor.resource(base_url + path).delete(headers)
  rescue Resourceful::UnsuccessfulHttpRequestError => e
    resp = e.http_response
  end

  @last_response = ResourcefulResponse.new resp
end

#get(path) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 44

def get(path)
  begin
    resp = http_accessor.resource(base_url + path).get(headers)
  rescue Resourceful::UnsuccessfulHttpRequestError => e
    resp = e.http_response
  end

  @last_response = ResourcefulResponse.new resp
end

#head(path) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 34

def head(path)
  begin
    resp = http_accessor.resource(base_url + path).head(headers)
  rescue Resourceful::UnsuccessfulHttpRequestError => e
    resp = e.http_response
  end

  @last_response = ResourcefulResponse.new resp
end

#post(path, body = nil) ⇒ Object



54
55
56
57
58
59
60
61
62
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 54

def post(path, body = nil)
  begin
    resp = http_accessor.resource(base_url + path).post(body, headers)
  rescue Resourceful::UnsuccessfulHttpRequestError => e
    resp = e.http_response
  end

  @last_response = ResourcefulResponse.new resp
end

#put(path, body) ⇒ Object



64
65
66
67
68
69
70
71
72
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 64

def put(path, body)
  begin
    resp = http_accessor.resource(base_url + path).put(body, headers)
  rescue Resourceful::UnsuccessfulHttpRequestError => e
    resp = e.http_response
  end

  @last_response = ResourcefulResponse.new resp
end

#responseObject



84
85
86
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 84

def response
  last_response
end

#with_basic_auth(user_name, password, realm = nil) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 21

def with_basic_auth(user_name, password, realm = nil)
  authenticator = if realm.nil?
                    Resourceful::PromiscuousBasicAuthenticator.new(user_name, password)
                  else
                    Resourceful::BasicAuthenticator.new(realm, user_name, password)
                  end
  http_accessor.add_authenticator authenticator
end

#with_header(name, value) ⇒ Object



30
31
32
# File 'lib/skink/resourceful_client/resourceful_client.rb', line 30

def with_header(name, value)
  headers.merge! name => value
end