rack-proxy 0.4.0 → 0.5.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0883f974b445bea61720cacc4c0f28237d0ec849
4
+ data.tar.gz: a701b9271fce5e9344da71b807bedafc98a44e02
5
+ SHA512:
6
+ metadata.gz: 32c96b55564c08d97621d39616d49f31db4d2a2bb232163266fd20a6a7e4a9367e4fd900cf720dd4e07c76157f6f407c2b29bb2f7731a9cbbc72a99c1c7717ea
7
+ data.tar.gz: a9e7b0d178b9aaccd09381b78ec794318705f9ef6144e58a52743fc2034b7fe579044fe855468966e1f3a371e5e9b2517e895d1524c4df116e20ea4827422f07
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-proxy (0.4.0)
4
+ rack-proxy (0.5.0)
5
5
  rack
6
6
 
7
7
  GEM
data/lib/rack/proxy.rb CHANGED
@@ -5,10 +5,11 @@ module Rack
5
5
 
6
6
  # Subclass and bring your own #rewrite_request and #rewrite_response
7
7
  class Proxy
8
- VERSION = "0.4.0"
8
+ VERSION = "0.5.0"
9
9
 
10
10
  # @option opts [String, URI::HTTP] :backend Backend host to proxy requests to
11
- def initialize opts = {}
11
+ def initialize(opts={})
12
+ @streaming = opts.key?(:streaming) ? opts[:streaming] : true
12
13
  @backend = URI(opts[:backend]) if opts[:backend]
13
14
  end
14
15
 
@@ -50,18 +51,31 @@ module Rack
50
51
  target_request.content_type = source_request.content_type if source_request.content_type
51
52
  end
52
53
 
54
+
53
55
  # Create a streaming response (the actual network communication is deferred, a.k.a. streamed)
54
- if @backend
55
- target_response = HttpStreamingResponse.new(target_request, @backend.host, @backend.port)
56
+ if @streaming
57
+ if @backend
58
+ target_response = HttpStreamingResponse.new(target_request, @backend.host, @backend.port)
59
+
60
+ target_response.use_ssl = "https" == @backend.scheme
61
+ else
62
+ target_response = HttpStreamingResponse.new(target_request, source_request.host, source_request.port)
56
63
 
57
- target_response.use_ssl = "https" == @backend.scheme
64
+ target_response.use_ssl = "https" == source_request.scheme
65
+ end
66
+
67
+ triplet = [target_response.status, target_response.headers, target_response.body]
58
68
  else
59
- target_response = HttpStreamingResponse.new(target_request, source_request.host, source_request.port)
69
+ host = (@backend && @backend.host) || source_request.host
70
+ port = (@backend && @backend.port) || source_request.port
71
+ target_response = Net::HTTP.start(host, port) do |http|
72
+ http.request(target_request)
73
+ end
60
74
 
61
- target_response.use_ssl = "https" == source_request.scheme
75
+ triplet = [target_response.code, target_response.headers, target_response.body]
62
76
  end
63
77
 
64
- [target_response.status, target_response.headers, target_response.body]
78
+ triplet
65
79
  end
66
80
 
67
81
  def extract_http_request_headers(env)
@@ -4,7 +4,7 @@ require "rack/http_streaming_response"
4
4
  class HttpStreamingResponseTest < Test::Unit::TestCase
5
5
 
6
6
  def setup
7
- host, req = "trix.pl", Net::HTTP::Get.new("/")
7
+ host, req = "www.trix.pl", Net::HTTP::Get.new("/")
8
8
  @response = Rack::HttpStreamingResponse.new(req, host)
9
9
  end
10
10
 
@@ -4,7 +4,7 @@ require "rack/proxy"
4
4
  class RackProxyTest < Test::Unit::TestCase
5
5
  class TrixProxy < Rack::Proxy
6
6
  def rewrite_env(env)
7
- env["HTTP_HOST"] = "trix.pl"
7
+ env["HTTP_HOST"] = "www.trix.pl"
8
8
  env
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-proxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jacek Becela
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-24 00:00:00.000000000 Z
11
+ date: 2013-08-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rack
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rack-test
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: A Rack app that provides request/response rewriting proxy capabilities
@@ -68,27 +63,26 @@ files:
68
63
  - test/test_helper.rb
69
64
  homepage: http://rubygems.org/gems/rack-proxy
70
65
  licenses: []
66
+ metadata: {}
71
67
  post_install_message:
72
68
  rdoc_options: []
73
69
  require_paths:
74
70
  - lib
75
71
  required_ruby_version: !ruby/object:Gem::Requirement
76
- none: false
77
72
  requirements:
78
- - - ! '>='
73
+ - - '>='
79
74
  - !ruby/object:Gem::Version
80
75
  version: '0'
81
76
  required_rubygems_version: !ruby/object:Gem::Requirement
82
- none: false
83
77
  requirements:
84
- - - ! '>='
78
+ - - '>='
85
79
  - !ruby/object:Gem::Version
86
80
  version: '0'
87
81
  requirements: []
88
82
  rubyforge_project: rack-proxy
89
- rubygems_version: 1.8.23
83
+ rubygems_version: 2.0.3
90
84
  signing_key:
91
- specification_version: 3
85
+ specification_version: 4
92
86
  summary: A request/response rewriting HTTP proxy. A Rack app.
93
87
  test_files:
94
88
  - test/http_streaming_response_test.rb