rack-proxy 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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