tddium_client 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/tddium_client/version.rb +1 -1
- data/lib/tddium_client.rb +10 -2
- data/spec/tddium_client_spec.rb +6 -5
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/lib/tddium_client.rb
CHANGED
@@ -103,6 +103,10 @@ module TddiumClient
|
|
103
103
|
end
|
104
104
|
|
105
105
|
class InternalClient
|
106
|
+
include HTTParty
|
107
|
+
|
108
|
+
format :json
|
109
|
+
|
106
110
|
def initialize(host, port=nil, scheme='https', version=1, caller_version=nil)
|
107
111
|
@tddium_config = {"host" => host,
|
108
112
|
"port" => port,
|
@@ -112,14 +116,14 @@ module TddiumClient
|
|
112
116
|
end
|
113
117
|
|
114
118
|
def call_api(method, api_path, params = {}, api_key = nil, retries = 5)
|
115
|
-
headers = {}
|
119
|
+
headers = {'Content-Type' => 'application/json'}
|
116
120
|
headers.merge!(API_KEY_HEADER => api_key) if api_key
|
117
121
|
headers.merge!(CLIENT_VERSION_HEADER => version_header)
|
118
122
|
|
119
123
|
tries = 0
|
120
124
|
|
121
125
|
begin
|
122
|
-
http =
|
126
|
+
http = self.class.send(method, tddium_uri(api_path), :body => params.to_json, :headers => headers)
|
123
127
|
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT, Timeout::Error, OpenSSL::SSL::SSLError, OpenSSL::SSL::Session::SessionError
|
124
128
|
tries += 1
|
125
129
|
retry if retries > 0 && tries <= retries
|
@@ -177,6 +181,10 @@ module TddiumClient
|
|
177
181
|
@environment = env
|
178
182
|
end
|
179
183
|
|
184
|
+
def host
|
185
|
+
@tddium_config["host"]
|
186
|
+
end
|
187
|
+
|
180
188
|
def port=(port)
|
181
189
|
@tddium_config["port"] = port
|
182
190
|
end
|
data/spec/tddium_client_spec.rb
CHANGED
@@ -228,7 +228,8 @@ describe "TddiumClient" do
|
|
228
228
|
end
|
229
229
|
|
230
230
|
def parse_request_params
|
231
|
-
Rack::Utils.parse_nested_query(FakeWeb.last_request.body)
|
231
|
+
#Rack::Utils.parse_nested_query(FakeWeb.last_request.body)
|
232
|
+
JSON.parse(FakeWeb.last_request.body)
|
232
233
|
end
|
233
234
|
|
234
235
|
let(:tddium_client) { TddiumClient::Client.new }
|
@@ -282,14 +283,14 @@ describe "TddiumClient" do
|
|
282
283
|
end
|
283
284
|
|
284
285
|
shared_examples_for "retry on exception" do
|
285
|
-
before {
|
286
|
+
before { TddiumClient::InternalClient.stub(EXAMPLE_HTTP_METHOD).and_raise(raised_exception) }
|
286
287
|
it "should retry 5 times by default to contact the API" do
|
287
|
-
|
288
|
+
TddiumClient::InternalClient.should_receive(EXAMPLE_HTTP_METHOD).exactly(6).times
|
288
289
|
expect { tddium_client.call_api(EXAMPLE_HTTP_METHOD, EXAMPLE_TDDIUM_RESOURCE) }.to raise_error(TddiumClient::Error::Timeout)
|
289
290
|
end
|
290
291
|
|
291
292
|
it "should retry as many times as we want to contact the API" do
|
292
|
-
|
293
|
+
TddiumClient::InternalClient.should_receive(EXAMPLE_HTTP_METHOD).exactly(3).times
|
293
294
|
expect { tddium_client.call_api(EXAMPLE_HTTP_METHOD, EXAMPLE_TDDIUM_RESOURCE, {}, nil, 2) }.to raise_error(TddiumClient::Error::Timeout)
|
294
295
|
end
|
295
296
|
end
|
@@ -358,7 +359,7 @@ describe "TddiumClient" do
|
|
358
359
|
end
|
359
360
|
|
360
361
|
it "should try to contact the api only once" do
|
361
|
-
|
362
|
+
TddiumClient::InternalClient.should_receive(EXAMPLE_HTTP_METHOD).exactly(1).times.and_return(mock(HTTParty).as_null_object)
|
362
363
|
tddium_client.call_api(EXAMPLE_HTTP_METHOD, EXAMPLE_TDDIUM_RESOURCE, {}, nil) rescue {}
|
363
364
|
end
|
364
365
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: tddium_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jay Moorthi
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-04-01 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|