request_headers_middleware 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 482bdde0e0b23e5af93e73940c52e48c51f2ccbd
4
- data.tar.gz: 6d52bb7f30b71e12b55dc160d3b0687a2956c6d8
2
+ SHA256:
3
+ metadata.gz: 09a7ee538f2104a6109fcfd70232ef743062878b772069fa78b71071386c35ef
4
+ data.tar.gz: d72c282ea9fced30d6dbd955af7bc8cd0a99760b4ee98802e802a030d0e28ce5
5
5
  SHA512:
6
- metadata.gz: 7d26b9d1958e822e4fb4e45bf5fb8fa8f485586bbd01fba3e2c93987891fdfbd06bba9cb34ea96f3a94e10e2b8d1cf40f9cd83cb9df14c1547e9785e21981356
7
- data.tar.gz: 105f929b62dab5f7dccc415a11bde7099bfdf28f82de17efb39a7be8b239ddcd6831dfcc8546fddfa7e4d6f7985b3de63eed601e4fb08106fac9082f716869e3
6
+ metadata.gz: 42cf2204c5c96fb519c86ef0517d93513cb2747b2dec87360ce5e86fdca807e1877d30f0901550df1fdd9eb2d1e7828db39a5904937dc03cbd66661f55d7a0d4
7
+ data.tar.gz: dbe3ea0a4d2855ced1bc7313a319eac57de0aa27f275b47c4371c0ba99d77b2be1b8b35577e4f39fbbac6e399f2d50f6ef530ebf54118f213be87e50e9d93297
data/Gemfile CHANGED
@@ -6,5 +6,6 @@ source 'https://rubygems.org'
6
6
  gemspec
7
7
 
8
8
  group :test, :development do
9
- gem 'byebug'
9
+ gem 'byebug', '~> 9.0.6'
10
+ gem 'webmock', '~> 3.3.0'
10
11
  end
data/README.md CHANGED
@@ -76,6 +76,13 @@ Faraday.new(
76
76
  )
77
77
  ```
78
78
 
79
+ Or you can use middleware:
80
+ ```ruby
81
+ connection = Faraday.new 'http://example.com/api' do |conn|
82
+ conn.use RequestHeadersMiddleware::FaradayAdapter
83
+ end
84
+ ```
85
+
79
86
  ### JsonApiClient
80
87
 
81
88
  For a class extended from *JsonApiClient* it could work like this. Let's call the class *MyJsonApiClient*.
@@ -86,6 +93,15 @@ MyJsonApiClient.with_headers(RequestHeadersMiddleware.store) do
86
93
  end
87
94
  ```
88
95
 
96
+ Another option is to use it globally for any request by using middleware:
97
+
98
+ ```ruby
99
+ connection do |conn|
100
+ conn.use RequestHeadersMiddleware::FaradayAdapter
101
+ end
102
+
103
+ ```
104
+
89
105
  ### Whitelist
90
106
 
91
107
  Per default the middleware applies a whitelist to only filter *X-Request-Id* header. Generally this is just as follows:
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'request_headers_middleware/railtie' if defined?(Rails)
4
4
  require 'request_headers_middleware/middleware'
5
+ require 'request_headers_middleware/faraday_adapter'
5
6
 
6
7
  module RequestHeadersMiddleware # :nodoc:
7
8
  extend self
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday_middleware'
4
+
5
+ module RequestHeadersMiddleware
6
+ class FaradayAdapter < Faraday::Middleware
7
+ def call(env)
8
+ env[:request_headers].merge! RequestHeadersMiddleware.store
9
+
10
+ @app.call(env)
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RequestHeadersMiddleware
4
- VERSION = '0.0.4'
4
+ VERSION = '0.0.5'
5
5
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |gem|
11
11
  gem.email = ['marc.grimme@gmail.com']
12
12
  gem.description = 'RequestHeader gives you per-req global header storage.'
13
13
  gem.summary = 'RequestStore gives you per-reqt global header storage.'
14
- gem.homepage = 'http://github.com/marcgrimme/request_headers_middleware'
14
+ gem.homepage = 'http://github.com/fidor/request_headers_middleware'
15
15
  gem.licenses = ['MIT']
16
16
 
17
17
  gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
@@ -19,10 +19,11 @@ Gem::Specification.new do |gem|
19
19
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
20
20
  gem.require_paths = ['lib']
21
21
 
22
- gem.add_dependency 'request_store'
23
- gem.add_development_dependency 'rack'
24
- gem.add_development_dependency 'rake'
25
- gem.add_development_dependency 'rspec'
26
- gem.add_development_dependency 'rubocop'
27
- gem.add_development_dependency 'simplecov'
22
+ gem.add_dependency 'faraday_middleware', '~> 0.9'
23
+ gem.add_dependency 'request_store', '~> 1.4', '>= 1.4.0'
24
+ gem.add_development_dependency 'rack', '~> 1.6', '>= 1.6.5'
25
+ gem.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
26
+ gem.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
27
+ gem.add_development_dependency 'rubocop', '~> 0.53.0'
28
+ gem.add_development_dependency 'simplecov', '~> 0.12.0'
28
29
  end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'webmock/rspec'
5
+
6
+ describe RequestHeadersMiddleware::FaradayAdapter do
7
+ context 'when MockRackApp called with a request' do
8
+ let(:app) { MockRackApp.new }
9
+ let(:env) do
10
+ Rack::MockRequest.env_for('/example')
11
+ end
12
+ subject { described_class.new(app) }
13
+
14
+ it 'merges current headers with RequestHeadersMiddleware.store' do
15
+ allow(RequestHeadersMiddleware).to receive(:store).and_return('X-Request-Id': '1234')
16
+ env[:request_headers] = { 'X-Test': '4321' }
17
+
18
+ subject.call(env)
19
+ expect(env[:request_headers]).to eq('X-Test': '4321', 'X-Request-Id': '1234')
20
+ end
21
+ end
22
+
23
+ context 'adapter is used as faraday middleware ' do
24
+ before do
25
+ stub_request(:get, /example.com/)
26
+
27
+ Faraday.default_connection = Faraday.new do |conn|
28
+ conn.request :url_encoded
29
+ conn.use RequestHeadersMiddleware::FaradayAdapter
30
+ conn.adapter Faraday.default_adapter
31
+ end
32
+ end
33
+
34
+ it 'merges current headers with RequestHeadersMiddleware.store' do
35
+ expect_any_instance_of(RequestHeadersMiddleware::FaradayAdapter).to receive(:call)
36
+
37
+ Faraday.get('http://example.com')
38
+ end
39
+ end
40
+ end
metadata CHANGED
@@ -1,99 +1,137 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: request_headers_middleware
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Grimme
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-13 00:00:00.000000000 Z
11
+ date: 2020-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday_middleware
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.9'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.9'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: request_store
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: '0'
33
+ version: 1.4.0
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '1.4'
20
37
  type: :runtime
21
38
  prerelease: false
22
39
  version_requirements: !ruby/object:Gem::Requirement
23
40
  requirements:
24
41
  - - ">="
25
42
  - !ruby/object:Gem::Version
26
- version: '0'
43
+ version: 1.4.0
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.4'
27
47
  - !ruby/object:Gem::Dependency
28
48
  name: rack
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.6'
31
54
  - - ">="
32
55
  - !ruby/object:Gem::Version
33
- version: '0'
56
+ version: 1.6.5
34
57
  type: :development
35
58
  prerelease: false
36
59
  version_requirements: !ruby/object:Gem::Requirement
37
60
  requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '1.6'
38
64
  - - ">="
39
65
  - !ruby/object:Gem::Version
40
- version: '0'
66
+ version: 1.6.5
41
67
  - !ruby/object:Gem::Dependency
42
68
  name: rake
43
69
  requirement: !ruby/object:Gem::Requirement
44
70
  requirements:
45
71
  - - ">="
46
72
  - !ruby/object:Gem::Version
47
- version: '0'
73
+ version: 12.0.0
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '12.0'
48
77
  type: :development
49
78
  prerelease: false
50
79
  version_requirements: !ruby/object:Gem::Requirement
51
80
  requirements:
52
81
  - - ">="
53
82
  - !ruby/object:Gem::Version
54
- version: '0'
83
+ version: 12.0.0
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '12.0'
55
87
  - !ruby/object:Gem::Dependency
56
88
  name: rspec
57
89
  requirement: !ruby/object:Gem::Requirement
58
90
  requirements:
59
91
  - - ">="
60
92
  - !ruby/object:Gem::Version
61
- version: '0'
93
+ version: 3.5.0
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.5'
62
97
  type: :development
63
98
  prerelease: false
64
99
  version_requirements: !ruby/object:Gem::Requirement
65
100
  requirements:
66
101
  - - ">="
67
102
  - !ruby/object:Gem::Version
68
- version: '0'
103
+ version: 3.5.0
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: '3.5'
69
107
  - !ruby/object:Gem::Dependency
70
108
  name: rubocop
71
109
  requirement: !ruby/object:Gem::Requirement
72
110
  requirements:
73
- - - ">="
111
+ - - "~>"
74
112
  - !ruby/object:Gem::Version
75
- version: '0'
113
+ version: 0.53.0
76
114
  type: :development
77
115
  prerelease: false
78
116
  version_requirements: !ruby/object:Gem::Requirement
79
117
  requirements:
80
- - - ">="
118
+ - - "~>"
81
119
  - !ruby/object:Gem::Version
82
- version: '0'
120
+ version: 0.53.0
83
121
  - !ruby/object:Gem::Dependency
84
122
  name: simplecov
85
123
  requirement: !ruby/object:Gem::Requirement
86
124
  requirements:
87
- - - ">="
125
+ - - "~>"
88
126
  - !ruby/object:Gem::Version
89
- version: '0'
127
+ version: 0.12.0
90
128
  type: :development
91
129
  prerelease: false
92
130
  version_requirements: !ruby/object:Gem::Requirement
93
131
  requirements:
94
- - - ">="
132
+ - - "~>"
95
133
  - !ruby/object:Gem::Version
96
- version: '0'
134
+ version: 0.12.0
97
135
  description: RequestHeader gives you per-req global header storage.
98
136
  email:
99
137
  - marc.grimme@gmail.com
@@ -107,20 +145,21 @@ files:
107
145
  - ".ruby-version"
108
146
  - ".travis.yml"
109
147
  - Gemfile
110
- - Gemfile.lock
111
148
  - LICENSE.txt
112
149
  - README.md
113
150
  - Rakefile
114
151
  - bin/travis
115
152
  - lib/request_headers_middleware.rb
153
+ - lib/request_headers_middleware/faraday_adapter.rb
116
154
  - lib/request_headers_middleware/middleware.rb
117
155
  - lib/request_headers_middleware/railtie.rb
118
156
  - lib/request_headers_middleware/version.rb
119
157
  - request_headers_middleware.gemspec
158
+ - spec/request_headers_middleware/faraday_adapter.rb
120
159
  - spec/request_headers_middleware_spec.rb
121
160
  - spec/spec_helper.rb
122
161
  - spec/support/mock_rack_app.rb
123
- homepage: http://github.com/marcgrimme/request_headers_middleware
162
+ homepage: http://github.com/fidor/request_headers_middleware
124
163
  licenses:
125
164
  - MIT
126
165
  metadata: {}
@@ -140,11 +179,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
179
  version: '0'
141
180
  requirements: []
142
181
  rubyforge_project:
143
- rubygems_version: 2.5.2
182
+ rubygems_version: 2.7.8
144
183
  signing_key:
145
184
  specification_version: 4
146
185
  summary: RequestStore gives you per-reqt global header storage.
147
186
  test_files:
187
+ - spec/request_headers_middleware/faraday_adapter.rb
148
188
  - spec/request_headers_middleware_spec.rb
149
189
  - spec/spec_helper.rb
150
190
  - spec/support/mock_rack_app.rb
data/Gemfile.lock DELETED
@@ -1,65 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- request_headers_middleware (0.0.4)
5
- request_store
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- ast (2.4.0)
11
- byebug (9.0.6)
12
- diff-lcs (1.2.5)
13
- docile (1.1.5)
14
- json (2.1.0)
15
- parallel (1.12.1)
16
- parser (2.5.0.2)
17
- ast (~> 2.4.0)
18
- powerpack (0.1.1)
19
- rack (1.6.5)
20
- rainbow (3.0.0)
21
- rake (12.0.0)
22
- request_store (1.4.0)
23
- rack (>= 1.4)
24
- rspec (3.5.0)
25
- rspec-core (~> 3.5.0)
26
- rspec-expectations (~> 3.5.0)
27
- rspec-mocks (~> 3.5.0)
28
- rspec-core (3.5.4)
29
- rspec-support (~> 3.5.0)
30
- rspec-expectations (3.5.0)
31
- diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.5.0)
33
- rspec-mocks (3.5.0)
34
- diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.5.0)
36
- rspec-support (3.5.0)
37
- rubocop (0.53.0)
38
- parallel (~> 1.10)
39
- parser (>= 2.5)
40
- powerpack (~> 0.1)
41
- rainbow (>= 2.2.2, < 4.0)
42
- ruby-progressbar (~> 1.7)
43
- unicode-display_width (~> 1.0, >= 1.0.1)
44
- ruby-progressbar (1.9.0)
45
- simplecov (0.12.0)
46
- docile (~> 1.1.0)
47
- json (>= 1.8, < 3)
48
- simplecov-html (~> 0.10.0)
49
- simplecov-html (0.10.0)
50
- unicode-display_width (1.3.0)
51
-
52
- PLATFORMS
53
- ruby
54
-
55
- DEPENDENCIES
56
- byebug
57
- rack
58
- rake
59
- request_headers_middleware!
60
- rspec
61
- rubocop
62
- simplecov
63
-
64
- BUNDLED WITH
65
- 1.16.1