Class: Pebblebed::GenericClient
Instance Method Summary
collapse
#delete, #get, #post, #put
Constructor Details
#initialize(session_key, root_url) ⇒ GenericClient
Returns a new instance of GenericClient.
5
6
7
8
9
|
# File 'lib/pebblebed/clients/generic_client.rb', line 5
def initialize(session_key, root_url)
@root_url = root_url
@root_url = URI(@root_url) unless @root_url.is_a?(URI::HTTP)
@session_key = session_key
end
|
Instance Method Details
11
12
13
14
15
16
17
18
|
# File 'lib/pebblebed/clients/generic_client.rb', line 11
def perform(method, url = '', params = {}, &block)
begin
result = Pebblebed::Http.send(method, service_url(url), service_params(params), &block)
return DeepStruct.wrap(JSON.parse(result.body))
rescue JSON::ParserError
return result.body
end
end
|
#service_params(params) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/pebblebed/clients/generic_client.rb', line 35
def service_params(params)
if (key = @session_key) and (params.nil? or not params[:session])
if params
params = params.dup else
params = {}
end
params['session'] = key
end
params
end
|
#service_url(url, params = nil) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/pebblebed/clients/generic_client.rb', line 20
def service_url(url, params = nil)
result = @root_url.dup
result.path = result.path.sub(/\/+$/, "") + url
if params
result.query << '&' if result.query
result.query ||= ''
result.query << if params.is_a?(Hash)
params.entries.map { |k, v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }.join('&')
else
params
end
end
result
end
|