rack-streaming-proxy 1.0.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,107 +1,198 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rack-streaming-proxy
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
+ - Fred Ngo
7
8
  - Nathan Witmer
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2010-02-09 00:00:00 -07:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2014-02-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: rack
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '1.4'
17
21
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "1.0"
24
- version:
25
- - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '1.4'
28
+ - !ruby/object:Gem::Dependency
26
29
  name: servolux
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: '0.10'
27
35
  type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
31
39
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 0.8.1
34
- version:
35
- - !ruby/object:Gem::Dependency
40
+ - !ruby/object:Gem::Version
41
+ version: '0.10'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '1.3'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '10.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '10.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
36
85
  name: rack-test
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
37
91
  type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- version: 0.5.1
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: bones
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: unicorn
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: pry
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: pry-nav
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
47
133
  type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 3.2.0
54
- version:
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
55
140
  description: Streaming proxy for Rack, the rainbows to Rack::Proxy's unicorn.
56
- email: nwitmer@gmail.com
141
+ email:
142
+ - fredngo@gmail.com
143
+ - nwitmer@gmail.com
57
144
  executables: []
58
-
59
145
  extensions: []
60
-
61
- extra_rdoc_files:
62
- - History.txt
63
- - README.txt
64
- files:
146
+ extra_rdoc_files: []
147
+ files:
65
148
  - .gitignore
66
- - History.txt
149
+ - Gemfile
150
+ - LICENSE.txt
151
+ - README.md
67
152
  - README.txt
68
153
  - Rakefile
154
+ - dev/client.rb
69
155
  - dev/proxy.ru
70
156
  - dev/streamer.ru
71
157
  - lib/rack/streaming_proxy.rb
72
- - lib/rack/streaming_proxy/proxy_request.rb
158
+ - lib/rack/streaming_proxy/errors.rb
159
+ - lib/rack/streaming_proxy/proxy.rb
160
+ - lib/rack/streaming_proxy/railtie.rb
161
+ - lib/rack/streaming_proxy/request.rb
162
+ - lib/rack/streaming_proxy/response.rb
163
+ - lib/rack/streaming_proxy/session.rb
164
+ - lib/rack/streaming_proxy/version.rb
165
+ - rack-streaming-proxy.gemspec
73
166
  - spec/app.ru
74
167
  - spec/proxy.ru
75
168
  - spec/spec_helper.rb
76
169
  - spec/streaming_proxy_spec.rb
77
- has_rdoc: true
78
- homepage: http://github.com/aniero/rack-streaming-proxy
79
- licenses: []
80
-
170
+ homepage: http://github.com/fredngo/rack-streaming-proxy
171
+ licenses:
172
+ - MIT
173
+ metadata: {}
81
174
  post_install_message:
82
- rdoc_options:
83
- - --main
84
- - README.txt
85
- require_paths:
175
+ rdoc_options: []
176
+ require_paths:
86
177
  - lib
87
- required_ruby_version: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: "0"
92
- version:
93
- required_rubygems_version: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: "0"
98
- version:
178
+ required_ruby_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ required_rubygems_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
99
188
  requirements: []
100
-
101
- rubyforge_project: rack-streaming-proxy
102
- rubygems_version: 1.3.5
189
+ rubyforge_project:
190
+ rubygems_version: 2.0.3
103
191
  signing_key:
104
- specification_version: 3
105
- summary: Streaming proxy for Rack, the rainbows to Rack::Proxy's unicorn
106
- test_files: []
107
-
192
+ specification_version: 4
193
+ summary: Streaming proxy for Rack, the rainbows to Rack::Proxy's unicorn.
194
+ test_files:
195
+ - spec/app.ru
196
+ - spec/proxy.ru
197
+ - spec/spec_helper.rb
198
+ - spec/streaming_proxy_spec.rb
data/History.txt DELETED
@@ -1,4 +0,0 @@
1
- == 1.0.0 / 2009-11-14
2
-
3
- * 1 major enhancement
4
- * Birthday!
@@ -1,96 +0,0 @@
1
- class Rack::StreamingProxy
2
- class ProxyRequest
3
- include Rack::Utils
4
-
5
- attr_reader :status, :headers
6
-
7
- def initialize(request, uri)
8
- uri = URI.parse(uri)
9
-
10
- method = request.request_method.downcase
11
- method[0..0] = method[0..0].upcase
12
-
13
- proxy_request = Net::HTTP.const_get(method).new("#{uri.path}#{"?" if uri.query}#{uri.query}")
14
-
15
- if proxy_request.request_body_permitted? and request.body
16
- proxy_request.body_stream = request.body
17
- proxy_request.content_length = request.content_length
18
- proxy_request.content_type = request.content_type
19
- end
20
-
21
- %w(Accept Accept-Encoding Accept-Charset
22
- X-Requested-With Referer User-Agent Cookie
23
- Authorization
24
- ).each do |header|
25
- key = "HTTP_#{header.upcase.gsub('-', '_')}"
26
- proxy_request[header] = request.env[key] if request.env[key]
27
- end
28
- proxy_request["X-Forwarded-For"] =
29
- (request.env["X-Forwarded-For"].to_s.split(/, +/) + [request.env["REMOTE_ADDR"]]).join(", ")
30
-
31
- @piper = Servolux::Piper.new 'r', :timeout => 30
32
-
33
- @piper.child do
34
- Net::HTTP.start(uri.host, uri.port) do |http|
35
- http.request(proxy_request) do |response|
36
- # at this point the headers and status are available, but the body
37
- # has not yet been read. start reading it and putting it in the parent's pipe.
38
- response_headers = {}
39
- response.each_header {|k,v| response_headers[k] = v}
40
- @piper.puts response.code.to_i
41
- @piper.puts response_headers
42
-
43
- response.read_body do |chunk|
44
- @piper.puts chunk
45
- end
46
- @piper.puts :done
47
- end
48
- end
49
- end
50
-
51
- @piper.parent do
52
- # wait for the status and headers to come back from the child
53
- @status = read_from_child
54
- @headers = HeaderHash.new(read_from_child)
55
- end
56
- rescue => e
57
- if @piper
58
- @piper.parent { raise }
59
- @piper.child { @piper.puts e }
60
- else
61
- raise
62
- end
63
- ensure
64
- # child needs to exit, always.
65
- @piper.child { exit!(0) } if @piper
66
- end
67
-
68
- def each
69
- chunked = @headers["Transfer-Encoding"] == "chunked"
70
- term = "\r\n"
71
-
72
- while chunk = read_from_child
73
- break if chunk == :done
74
- if chunked
75
- size = bytesize(chunk)
76
- next if size == 0
77
- yield [size.to_s(16), term, chunk, term].join
78
- else
79
- yield chunk
80
- end
81
- end
82
-
83
- yield ["0", term, "", term].join if chunked
84
- end
85
-
86
-
87
- protected
88
-
89
- def read_from_child
90
- val = @piper.gets
91
- raise val if val.kind_of?(Exception)
92
- val
93
- end
94
-
95
- end
96
- end