rack-proxy 0.7.0 → 0.7.1

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
  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