garage_client 2.1.6 → 2.1.7
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e74a44c3a35415ce42c5c5f522ca71cbea0c859
|
4
|
+
data.tar.gz: d350897b48c1733a457748f373bb6d5424656474
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51bef033014e9b7330d671097ba96188b31b6886cde1a5bb51eec2bd73ac8a80854dd20f5dc61f3615a8b2c5f06aeed4d2ce2e63c04fb91b627b75f27ca56745
|
7
|
+
data.tar.gz: 3d9682ba319b2948e289504fe610e1adf3febd032acce0cf6a1b55baef73deae037b276ced1b037ecd4de88ff74ccb8a3b47009c37f1c544aa8d59752f607f2f
|
data/lib/garage_client.rb
CHANGED
@@ -8,6 +8,7 @@ require 'garage_client/configuration'
|
|
8
8
|
require 'garage_client/error'
|
9
9
|
require 'garage_client/request'
|
10
10
|
require 'garage_client/request/json_encoded'
|
11
|
+
require 'garage_client/request/propagate_request_id'
|
11
12
|
require 'garage_client/response'
|
12
13
|
require 'garage_client/response/cacheable'
|
13
14
|
require 'garage_client/response/raise_http_exception'
|
data/lib/garage_client/client.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
module GarageClient
|
2
|
+
module Request
|
3
|
+
class PropagateRequestId < Faraday::Middleware
|
4
|
+
def call(env)
|
5
|
+
if Thread.current[:request_id] && !env[:request_headers]["HTTP_X_REQUEST_ID"]
|
6
|
+
env[:request_headers]["HTTP_X_REQUEST_ID"] = Thread.current[:request_id]
|
7
|
+
end
|
8
|
+
@app.call(env)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe GarageClient::Request::PropagateRequestId do
|
4
|
+
let(:client) do
|
5
|
+
GarageClient::Client.new
|
6
|
+
end
|
7
|
+
|
8
|
+
around do |example|
|
9
|
+
original = Thread.current[:request_id]
|
10
|
+
Thread.current[:request_id] = 'request_id'
|
11
|
+
example.run
|
12
|
+
Thread.current[:request_id] = original
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'sends request_id via header' do
|
16
|
+
stub_get("/examples").with(headers: { 'HTTP_X_REQUEST_ID' => 'request_id' })
|
17
|
+
expect { client.get("/examples") }.not_to raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'without request_id' do
|
21
|
+
before do
|
22
|
+
Thread.current[:request_id] = nil
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'does not send request_id via header' do
|
26
|
+
stub_get("/examples").with do |request|
|
27
|
+
!request.headers.include?('HTTP_X_REQUEST_ID')
|
28
|
+
end
|
29
|
+
expect { client.get("/examples") }.not_to raise_error
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'if already has request_id' do
|
34
|
+
let(:client) do
|
35
|
+
GarageClient::Client.new(headers: { 'HTTP_X_REQUEST_ID' => 'another_id' })
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'does not overwrite request_id' do
|
39
|
+
stub_get("/examples").with(headers: { 'HTTP_X_REQUEST_ID' => 'another_id' })
|
40
|
+
expect { client.get("/examples") }.not_to raise_error
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: garage_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cookpad Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- lib/garage_client/error.rb
|
204
204
|
- lib/garage_client/request.rb
|
205
205
|
- lib/garage_client/request/json_encoded.rb
|
206
|
+
- lib/garage_client/request/propagate_request_id.rb
|
206
207
|
- lib/garage_client/resource.rb
|
207
208
|
- lib/garage_client/response.rb
|
208
209
|
- lib/garage_client/response/cacheable.rb
|
@@ -220,6 +221,7 @@ files:
|
|
220
221
|
- spec/garage_client/configuration_spec.rb
|
221
222
|
- spec/garage_client/error_spec.rb
|
222
223
|
- spec/garage_client/request/json_encoded_spec.rb
|
224
|
+
- spec/garage_client/request/propagate_request_id_spec.rb
|
223
225
|
- spec/garage_client/resource_spec.rb
|
224
226
|
- spec/garage_client/response_spec.rb
|
225
227
|
- spec/garage_client_spec.rb
|
@@ -243,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
245
|
version: '0'
|
244
246
|
requirements: []
|
245
247
|
rubyforge_project:
|
246
|
-
rubygems_version: 2.4.
|
248
|
+
rubygems_version: 2.4.8
|
247
249
|
signing_key:
|
248
250
|
specification_version: 4
|
249
251
|
summary: Ruby client library for the Garage API
|
@@ -260,7 +262,9 @@ test_files:
|
|
260
262
|
- spec/garage_client/configuration_spec.rb
|
261
263
|
- spec/garage_client/error_spec.rb
|
262
264
|
- spec/garage_client/request/json_encoded_spec.rb
|
265
|
+
- spec/garage_client/request/propagate_request_id_spec.rb
|
263
266
|
- spec/garage_client/resource_spec.rb
|
264
267
|
- spec/garage_client/response_spec.rb
|
265
268
|
- spec/garage_client_spec.rb
|
266
269
|
- spec/spec_helper.rb
|
270
|
+
has_rdoc:
|