rack-proxy 0.7.0 → 0.7.1

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
2
  SHA256:
3
- metadata.gz: 228f3bf6e52dcd2bdcebf9c52bf1db47dfdc7179ed52cd3664e14cfd8df80db9
4
- data.tar.gz: 6613d7f13087046d9ad6ee22e5afa56db6910145df427e42101f5aa491d3fe26
3
+ metadata.gz: a0454cf1f53d8a69931260ca29af2dd21fd4ca9a99d13cf11db158d60498ba0c
4
+ data.tar.gz: f619d7cbadaa186906a41c95960e8ce869c0f21ba3eb9c9b60282d79a810b71b
5
5
  SHA512:
6
- metadata.gz: 151b04e286d1305d116cf743f00c6b811ed10fad0f24cf806b685a4e038a4dcf5c3b8f7e0dd0cf1e8aa95dd8c46763b0f8b114d36c668fdaabda541d48d5722a
7
- data.tar.gz: 234ec48678c973b203cf00f256039c6e88f63c67c5e279e6f0ec17fc51de07022f7a3099dfe0efdaacf46808a0512cd9e16444823b6d616fdee08ae5572efbb2
6
+ metadata.gz: fe0622a53d3c76ac11a170d7f71a78240474360614425eac3d1c4555f9d3bd712c16d1a93ecb103f8683b5d6d056d65e77858e0f106879bc342301e6c35f73bd
7
+ data.tar.gz: 476194bf06dd6f244a3070e79b8771879504919df0ef1de45bfc4f883c261f6642586c06a8b64dc2df3e213702f42140e81f012b2d3ca5226d81eb2709107733
data/Gemfile.lock CHANGED
@@ -1,17 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-proxy (0.7.0)
4
+ rack-proxy (0.7.1)
5
5
  rack
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  power_assert (0.2.6)
11
- rack (2.0.3)
11
+ rack (2.2.3)
12
12
  rack-test (0.5.6)
13
13
  rack (>= 1.0)
14
- rake (13.0.1)
14
+ rake (13.0.6)
15
15
  test-unit (3.1.5)
16
16
  power_assert
17
17
 
data/README.md CHANGED
@@ -6,7 +6,7 @@ Installation
6
6
  Add the following to your `Gemfile`:
7
7
 
8
8
  ```
9
- gem 'rack-proxy', '~> 0.7.0'
9
+ gem 'rack-proxy', '~> 0.7.1'
10
10
  ```
11
11
 
12
12
  Or install:
@@ -136,7 +136,7 @@ Test with `require 'rack_proxy_examples/example_service_proxy'`
136
136
  # 1. rails new test_app
137
137
  # 2. cd test_app
138
138
  # 3. install Rack-Proxy in `Gemfile`
139
- # a. `gem 'rack-proxy', '~> 0.7.0'`
139
+ # a. `gem 'rack-proxy', '~> 0.7.1'`
140
140
  # 4. install gem: `bundle install`
141
141
  # 5. create `config/initializers/proxy.rb` adding this line `require 'rack_proxy_examples/example_service_proxy'`
142
142
  # 6. run: `SERVICE_URL=http://guides.rubyonrails.org rails server`
data/lib/rack/proxy.rb CHANGED
@@ -5,7 +5,7 @@ module Rack
5
5
 
6
6
  # Subclass and bring your own #rewrite_request and #rewrite_response
7
7
  class Proxy
8
- VERSION = "0.7.0"
8
+ VERSION = "0.7.1"
9
9
 
10
10
  class << self
11
11
  def extract_http_request_headers(env)
@@ -26,7 +26,7 @@ module Rack
26
26
 
27
27
  def normalize_headers(headers)
28
28
  mapped = headers.map do |k, v|
29
- [k, if v.is_a? Array then v.join("\n") else v end]
29
+ [titleize(k), if v.is_a? Array then v.join("\n") else v end]
30
30
  end
31
31
  Utils::HeaderHash.new Hash[mapped]
32
32
  end
@@ -34,7 +34,11 @@ module Rack
34
34
  protected
35
35
 
36
36
  def reconstruct_header_name(name)
37
- name.sub(/^HTTP_/, "").gsub("_", "-")
37
+ titleize(name.sub(/^HTTP_/, "").gsub("_", "-"))
38
+ end
39
+
40
+ def titleize(str)
41
+ str.split("-").map(&:capitalize).join("-")
38
42
  end
39
43
  end
40
44
 
@@ -49,12 +53,12 @@ module Rack
49
53
 
50
54
  @streaming = opts.fetch(:streaming, true)
51
55
  @ssl_verify_none = opts.fetch(:ssl_verify_none, false)
52
- @backend = URI(opts[:backend]) if opts[:backend]
56
+ @backend = opts[:backend] ? URI(opts[:backend]) : nil
53
57
  @read_timeout = opts.fetch(:read_timeout, 60)
54
- @ssl_version = opts[:ssl_version] if opts[:ssl_version]
58
+ @ssl_version = opts[:ssl_version]
55
59
 
56
- @username = opts[:username] if opts[:username]
57
- @password = opts[:password] if opts[:password]
60
+ @username = opts[:username]
61
+ @password = opts[:password]
58
62
 
59
63
  @opts = opts
60
64
  end
@@ -5,7 +5,7 @@
5
5
  # 1. rails new test_app
6
6
  # 2. cd test_app
7
7
  # 3. install Rack-Proxy in `Gemfile`
8
- # a. `gem 'rack-proxy', '~> 0.7.0'`
8
+ # a. `gem 'rack-proxy', '~> 0.7.1'`
9
9
  # 4. install gem: `bundle install`
10
10
  # 5. create `config/initializers/proxy.rb` adding this line `require 'rack_proxy_examples/example_service_proxy'`
11
11
  # 6. run: `SERVICE_URL=http://guides.rubyonrails.org rails server`
@@ -4,23 +4,24 @@ require "rack/http_streaming_response"
4
4
  class HttpStreamingResponseTest < Test::Unit::TestCase
5
5
 
6
6
  def setup
7
- host, req = "www.trix.pl", Net::HTTP::Get.new("/")
8
- @response = Rack::HttpStreamingResponse.new(req, host)
7
+ host, req = "mockapi.io", Net::HTTP::Get.new("/")
8
+ @response = Rack::HttpStreamingResponse.new(req, host, 443)
9
+ @response.use_ssl = true
9
10
  end
10
11
 
11
12
  def test_streaming
12
13
  # Response status
13
- assert @response.code == 200
14
- assert @response.status == 200
14
+ assert_equal 200, @response.status
15
+ assert_equal 200, @response.status
15
16
 
16
17
  # Headers
17
18
  headers = @response.headers
18
19
 
19
- assert headers.size > 0
20
+ assert headers.size.positive?
20
21
 
21
- assert headers["content-type"] == ["text/html;charset=utf-8"]
22
- assert headers["CoNtEnT-TyPe"] == headers["content-type"]
23
- assert headers["content-length"].first.to_i > 0
22
+ assert_match %r{text/html; ?charset=utf-8}, headers["content-type"].first.downcase
23
+ assert_equal headers["content-type"], headers["CoNtEnT-TyPe"]
24
+ assert headers["content-length"].first.to_i.positive?
24
25
 
25
26
  # Body
26
27
  chunks = []
@@ -28,7 +29,7 @@ class HttpStreamingResponseTest < Test::Unit::TestCase
28
29
  chunks << chunk
29
30
  end
30
31
 
31
- assert chunks.size > 0
32
+ assert chunks.size.positive?
32
33
  chunks.each do |chunk|
33
34
  assert chunk.is_a?(String)
34
35
  end
@@ -78,10 +78,10 @@ class RackProxyTest < Test::Unit::TestCase
78
78
  proxy_class = Rack::Proxy
79
79
 
80
80
  header = proxy_class.send(:reconstruct_header_name, "HTTP_ABC")
81
- assert header == "ABC"
81
+ assert header == "Abc"
82
82
 
83
83
  header = proxy_class.send(:reconstruct_header_name, "HTTP_ABC_D")
84
- assert header == "ABC-D"
84
+ assert header == "Abc-D"
85
85
  end
86
86
 
87
87
  def test_extract_http_request_headers
@@ -120,7 +120,7 @@ class RackProxyTest < Test::Unit::TestCase
120
120
  end
121
121
 
122
122
  def test_response_header_included_Hop_by_hop
123
- app({:streaming => true}).host = 'auth.goeasyship.com'
123
+ app({:streaming => true}).host = 'mockapi.io'
124
124
  get 'https://example.com/oauth2/token/info?access_token=123'
125
125
  assert !last_response.headers.key?('transfer-encoding')
126
126
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-proxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacek Becela
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-28 00:00:00.000000000 Z
11
+ date: 2022-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack