http_parser.rb 0.5.3 → 0.6.0.beta.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.
- data/.gitmodules +3 -3
- data/Gemfile +1 -1
- data/Gemfile.lock +9 -2
- data/README.md +50 -45
- data/bench/standalone.rb +23 -0
- data/bench/thin.rb +1 -0
- data/ext/ruby_http_parser/org/ruby_http_parser/RubyHttpParser.java +66 -58
- data/ext/ruby_http_parser/ruby_http_parser.c +10 -41
- data/ext/ruby_http_parser/vendor/http-parser-java/AUTHORS +32 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/LICENSE-MIT +5 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/README.md +133 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/TODO +6 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.c +1029 -615
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.gyp +79 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.h +177 -43
- data/ext/ruby_http_parser/vendor/http-parser-java/src/Http-parser.java.iml +22 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/FieldData.java +41 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPHeadersCompleteCallback.java +13 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPMethod.java +4 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPParserUrl.java +76 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserSettings.java +2 -2
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/Util.java +6 -6
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPHeadersCompleteCallback.java +12 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPParser.java +715 -637
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/ParserSettings.java +1 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Message.java +71 -21
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/ParseUrl.java +51 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Requests.java +1 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Responses.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Test.java +2 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestHeaderOverflowError.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestLoaderNG.java +6 -17
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestNoOverflowLongBody.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/UnitTest.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Upgrade.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Url.java +127 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Util.java +80 -9
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/WrongContentLength.java +2 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test.c +1141 -210
- data/ext/ruby_http_parser/vendor/http-parser-java/tests.dumped +230 -71
- data/ext/ruby_http_parser/vendor/http-parser/AUTHORS +32 -0
- data/ext/ruby_http_parser/vendor/http-parser/LICENSE-MIT +5 -1
- data/ext/ruby_http_parser/vendor/http-parser/README.md +9 -2
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.c +1029 -615
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.gyp +79 -0
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.h +145 -16
- data/ext/ruby_http_parser/vendor/http-parser/test.c +1065 -141
- data/http_parser.rb.gemspec +3 -1
- data/spec/parser_spec.rb +41 -17
- data/spec/support/requests.json +236 -24
- data/spec/support/responses.json +182 -36
- data/tasks/compile.rake +2 -2
- data/tasks/fixtures.rake +7 -1
- metadata +57 -19
- data/ext/ruby_http_parser/vendor/http-parser-java/compile +0 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_permutations +0 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_unit +0 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_utf8 +0 -1
data/spec/support/responses.json
CHANGED
@@ -19,7 +19,8 @@
|
|
19
19
|
"Server": "gws",
|
20
20
|
"Content-Length": "219 "
|
21
21
|
},
|
22
|
-
"body": "<HTML><HEAD><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF=\"http://www.google.com/\">here</A>.\r\n</BODY></HTML>\r\n"
|
22
|
+
"body": "<HTML><HEAD><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF=\"http://www.google.com/\">here</A>.\r\n</BODY></HTML>\r\n",
|
23
|
+
"strict": true
|
23
24
|
},
|
24
25
|
{
|
25
26
|
"name": "no content-length response",
|
@@ -38,14 +39,15 @@
|
|
38
39
|
"Content-Type": "text/xml; charset=utf-8",
|
39
40
|
"Connection": "close"
|
40
41
|
},
|
41
|
-
"body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Body>\n <SOAP-ENV:Fault>\n <faultcode>SOAP-ENV:Client</faultcode>\n <faultstring>Client Error</faultstring>\n </SOAP-ENV:Fault>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
42
|
+
"body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Body>\n <SOAP-ENV:Fault>\n <faultcode>SOAP-ENV:Client</faultcode>\n <faultstring>Client Error</faultstring>\n </SOAP-ENV:Fault>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>",
|
43
|
+
"strict": true
|
42
44
|
},
|
43
45
|
{
|
44
46
|
"name": "404 no headers no body",
|
45
47
|
"type": "HTTP_RESPONSE",
|
46
48
|
"raw": "HTTP/1.1 404 Not Found\r\n\r\n",
|
47
|
-
"should_keep_alive":
|
48
|
-
"message_complete_on_eof":
|
49
|
+
"should_keep_alive": false,
|
50
|
+
"message_complete_on_eof": true,
|
49
51
|
"http_major": 1,
|
50
52
|
"http_minor": 1,
|
51
53
|
"status_code": 404,
|
@@ -54,14 +56,15 @@
|
|
54
56
|
|
55
57
|
},
|
56
58
|
"body_size": 0,
|
57
|
-
"body": ""
|
59
|
+
"body": "",
|
60
|
+
"strict": true
|
58
61
|
},
|
59
62
|
{
|
60
63
|
"name": "301 no response phrase",
|
61
64
|
"type": "HTTP_RESPONSE",
|
62
65
|
"raw": "HTTP/1.1 301\r\n\r\n",
|
63
|
-
"should_keep_alive":
|
64
|
-
"message_complete_on_eof":
|
66
|
+
"should_keep_alive": false,
|
67
|
+
"message_complete_on_eof": true,
|
65
68
|
"http_major": 1,
|
66
69
|
"http_minor": 1,
|
67
70
|
"status_code": 301,
|
@@ -69,7 +72,8 @@
|
|
69
72
|
"headers": {
|
70
73
|
|
71
74
|
},
|
72
|
-
"body": ""
|
75
|
+
"body": "",
|
76
|
+
"strict": true
|
73
77
|
},
|
74
78
|
{
|
75
79
|
"name": "200 trailing space on chunked body",
|
@@ -86,7 +90,8 @@
|
|
86
90
|
"Transfer-Encoding": "chunked"
|
87
91
|
},
|
88
92
|
"body_size": 65,
|
89
|
-
"body": "This is the data in the first chunk\r\nand this is the second one\r\n"
|
93
|
+
"body": "This is the data in the first chunk\r\nand this is the second one\r\n",
|
94
|
+
"strict": true
|
90
95
|
},
|
91
96
|
{
|
92
97
|
"name": "no carriage ret",
|
@@ -102,7 +107,8 @@
|
|
102
107
|
"Content-Type": "text/html; charset=utf-8",
|
103
108
|
"Connection": "close"
|
104
109
|
},
|
105
|
-
"body": "these headers are from http://news.ycombinator.com/"
|
110
|
+
"body": "these headers are from http://news.ycombinator.com/",
|
111
|
+
"strict": true
|
106
112
|
},
|
107
113
|
{
|
108
114
|
"name": "proxy connection",
|
@@ -120,7 +126,8 @@
|
|
120
126
|
"Proxy-Connection": "close",
|
121
127
|
"Date": "Thu, 31 Dec 2009 20:55:48 +0000"
|
122
128
|
},
|
123
|
-
"body": "hello world"
|
129
|
+
"body": "hello world",
|
130
|
+
"strict": true
|
124
131
|
},
|
125
132
|
{
|
126
133
|
"name": "underscore header key",
|
@@ -138,7 +145,8 @@
|
|
138
145
|
"Content-Length": "0",
|
139
146
|
"DCLK_imp": "v7;x;114750856;0-0;0;17820020;0/0;21603567/21621457/1;;~okv=;dcmt=text/xml;;~cs=o"
|
140
147
|
},
|
141
|
-
"body": ""
|
148
|
+
"body": "",
|
149
|
+
"strict": true
|
142
150
|
},
|
143
151
|
{
|
144
152
|
"name": "bonjourmadame.fr",
|
@@ -161,28 +169,8 @@
|
|
161
169
|
"Content-Type": "text/html; charset=UTF-8",
|
162
170
|
"Connection": "keep-alive"
|
163
171
|
},
|
164
|
-
"body": ""
|
165
|
-
|
166
|
-
{
|
167
|
-
"name": "field space",
|
168
|
-
"type": "HTTP_RESPONSE",
|
169
|
-
"raw": "HTTP/1.1 200 OK\r\nServer: Microsoft-IIS/6.0\r\nX-Powered-By: ASP.NET\r\nen-US Content-Type: text/xml\r\nContent-Type: text/xml\r\nContent-Length: 16\r\nDate: Fri, 23 Jul 2010 18:45:38 GMT\r\nConnection: keep-alive\r\n\r\n<xml>hello</xml>",
|
170
|
-
"should_keep_alive": true,
|
171
|
-
"message_complete_on_eof": false,
|
172
|
-
"http_major": 1,
|
173
|
-
"http_minor": 1,
|
174
|
-
"status_code": 200,
|
175
|
-
"num_headers": 7,
|
176
|
-
"headers": {
|
177
|
-
"Server": "Microsoft-IIS/6.0",
|
178
|
-
"X-Powered-By": "ASP.NET",
|
179
|
-
"en-US Content-Type": "text/xml",
|
180
|
-
"Content-Type": "text/xml",
|
181
|
-
"Content-Length": "16",
|
182
|
-
"Date": "Fri, 23 Jul 2010 18:45:38 GMT",
|
183
|
-
"Connection": "keep-alive"
|
184
|
-
},
|
185
|
-
"body": "<xml>hello</xml>"
|
172
|
+
"body": "",
|
173
|
+
"strict": true
|
186
174
|
},
|
187
175
|
{
|
188
176
|
"name": "field underscore",
|
@@ -207,7 +195,8 @@
|
|
207
195
|
"Content-Type": "text/html",
|
208
196
|
"Connection": "close"
|
209
197
|
},
|
210
|
-
"body": ""
|
198
|
+
"body": "",
|
199
|
+
"strict": true
|
211
200
|
},
|
212
201
|
{
|
213
202
|
"name": "non-ASCII in status line",
|
@@ -224,6 +213,163 @@
|
|
224
213
|
"Content-Length": "0",
|
225
214
|
"Connection": "close"
|
226
215
|
},
|
227
|
-
"body": ""
|
216
|
+
"body": "",
|
217
|
+
"strict": true
|
218
|
+
},
|
219
|
+
{
|
220
|
+
"name": "http version 0.9",
|
221
|
+
"type": "HTTP_RESPONSE",
|
222
|
+
"raw": "HTTP/0.9 200 OK\r\n\r\n",
|
223
|
+
"should_keep_alive": false,
|
224
|
+
"message_complete_on_eof": true,
|
225
|
+
"http_major": 0,
|
226
|
+
"http_minor": 9,
|
227
|
+
"status_code": 200,
|
228
|
+
"num_headers": 0,
|
229
|
+
"headers": {
|
230
|
+
|
231
|
+
},
|
232
|
+
"body": "",
|
233
|
+
"strict": true
|
234
|
+
},
|
235
|
+
{
|
236
|
+
"name": "neither content-length nor transfer-encoding response",
|
237
|
+
"type": "HTTP_RESPONSE",
|
238
|
+
"raw": "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nhello world",
|
239
|
+
"should_keep_alive": false,
|
240
|
+
"message_complete_on_eof": true,
|
241
|
+
"http_major": 1,
|
242
|
+
"http_minor": 1,
|
243
|
+
"status_code": 200,
|
244
|
+
"num_headers": 1,
|
245
|
+
"headers": {
|
246
|
+
"Content-Type": "text/plain"
|
247
|
+
},
|
248
|
+
"body": "hello world",
|
249
|
+
"strict": true
|
250
|
+
},
|
251
|
+
{
|
252
|
+
"name": "HTTP/1.0 with keep-alive and EOF-terminated 200 status",
|
253
|
+
"type": "HTTP_RESPONSE",
|
254
|
+
"raw": "HTTP/1.0 200 OK\r\nConnection: keep-alive\r\n\r\n",
|
255
|
+
"should_keep_alive": false,
|
256
|
+
"message_complete_on_eof": true,
|
257
|
+
"http_major": 1,
|
258
|
+
"http_minor": 0,
|
259
|
+
"status_code": 200,
|
260
|
+
"num_headers": 1,
|
261
|
+
"headers": {
|
262
|
+
"Connection": "keep-alive"
|
263
|
+
},
|
264
|
+
"body_size": 0,
|
265
|
+
"body": "",
|
266
|
+
"strict": true
|
267
|
+
},
|
268
|
+
{
|
269
|
+
"name": "HTTP/1.0 with keep-alive and a 204 status",
|
270
|
+
"type": "HTTP_RESPONSE",
|
271
|
+
"raw": "HTTP/1.0 204 No content\r\nConnection: keep-alive\r\n\r\n",
|
272
|
+
"should_keep_alive": true,
|
273
|
+
"message_complete_on_eof": false,
|
274
|
+
"http_major": 1,
|
275
|
+
"http_minor": 0,
|
276
|
+
"status_code": 204,
|
277
|
+
"num_headers": 1,
|
278
|
+
"headers": {
|
279
|
+
"Connection": "keep-alive"
|
280
|
+
},
|
281
|
+
"body_size": 0,
|
282
|
+
"body": "",
|
283
|
+
"strict": true
|
284
|
+
},
|
285
|
+
{
|
286
|
+
"name": "HTTP/1.1 with an EOF-terminated 200 status",
|
287
|
+
"type": "HTTP_RESPONSE",
|
288
|
+
"raw": "HTTP/1.1 200 OK\r\n\r\n",
|
289
|
+
"should_keep_alive": false,
|
290
|
+
"message_complete_on_eof": true,
|
291
|
+
"http_major": 1,
|
292
|
+
"http_minor": 1,
|
293
|
+
"status_code": 200,
|
294
|
+
"num_headers": 0,
|
295
|
+
"headers": {
|
296
|
+
|
297
|
+
},
|
298
|
+
"body_size": 0,
|
299
|
+
"body": "",
|
300
|
+
"strict": true
|
301
|
+
},
|
302
|
+
{
|
303
|
+
"name": "HTTP/1.1 with a 204 status",
|
304
|
+
"type": "HTTP_RESPONSE",
|
305
|
+
"raw": "HTTP/1.1 204 No content\r\n\r\n",
|
306
|
+
"should_keep_alive": true,
|
307
|
+
"message_complete_on_eof": false,
|
308
|
+
"http_major": 1,
|
309
|
+
"http_minor": 1,
|
310
|
+
"status_code": 204,
|
311
|
+
"num_headers": 0,
|
312
|
+
"headers": {
|
313
|
+
|
314
|
+
},
|
315
|
+
"body_size": 0,
|
316
|
+
"body": "",
|
317
|
+
"strict": true
|
318
|
+
},
|
319
|
+
{
|
320
|
+
"name": "HTTP/1.1 with a 204 status and keep-alive disabled",
|
321
|
+
"type": "HTTP_RESPONSE",
|
322
|
+
"raw": "HTTP/1.1 204 No content\r\nConnection: close\r\n\r\n",
|
323
|
+
"should_keep_alive": false,
|
324
|
+
"message_complete_on_eof": false,
|
325
|
+
"http_major": 1,
|
326
|
+
"http_minor": 1,
|
327
|
+
"status_code": 204,
|
328
|
+
"num_headers": 1,
|
329
|
+
"headers": {
|
330
|
+
"Connection": "close"
|
331
|
+
},
|
332
|
+
"body_size": 0,
|
333
|
+
"body": "",
|
334
|
+
"strict": true
|
335
|
+
},
|
336
|
+
{
|
337
|
+
"name": "HTTP/1.1 with chunked endocing and a 200 response",
|
338
|
+
"type": "HTTP_RESPONSE",
|
339
|
+
"raw": "HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\n",
|
340
|
+
"should_keep_alive": true,
|
341
|
+
"message_complete_on_eof": false,
|
342
|
+
"http_major": 1,
|
343
|
+
"http_minor": 1,
|
344
|
+
"status_code": 200,
|
345
|
+
"num_headers": 1,
|
346
|
+
"headers": {
|
347
|
+
"Transfer-Encoding": "chunked"
|
348
|
+
},
|
349
|
+
"body_size": 0,
|
350
|
+
"body": "",
|
351
|
+
"strict": true
|
352
|
+
},
|
353
|
+
{
|
354
|
+
"name": "field space",
|
355
|
+
"type": "HTTP_RESPONSE",
|
356
|
+
"strict": false,
|
357
|
+
"raw": "HTTP/1.1 200 OK\r\nServer: Microsoft-IIS/6.0\r\nX-Powered-By: ASP.NET\r\nen-US Content-Type: text/xml\r\nContent-Type: text/xml\r\nContent-Length: 16\r\nDate: Fri, 23 Jul 2010 18:45:38 GMT\r\nConnection: keep-alive\r\n\r\n<xml>hello</xml>",
|
358
|
+
"should_keep_alive": true,
|
359
|
+
"message_complete_on_eof": false,
|
360
|
+
"http_major": 1,
|
361
|
+
"http_minor": 1,
|
362
|
+
"status_code": 200,
|
363
|
+
"num_headers": 7,
|
364
|
+
"headers": {
|
365
|
+
"Server": "Microsoft-IIS/6.0",
|
366
|
+
"X-Powered-By": "ASP.NET",
|
367
|
+
"en-US Content-Type": "text/xml",
|
368
|
+
"Content-Type": "text/xml",
|
369
|
+
"Content-Length": "16",
|
370
|
+
"Date": "Fri, 23 Jul 2010 18:45:38 GMT",
|
371
|
+
"Connection": "keep-alive"
|
372
|
+
},
|
373
|
+
"body": "<xml>hello</xml>"
|
228
374
|
}
|
229
375
|
]
|
data/tasks/compile.rake
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'rubygems/package_task'
|
2
2
|
require 'rake/extensiontask'
|
3
3
|
require 'rake/javaextensiontask'
|
4
4
|
|
@@ -6,7 +6,7 @@ def gemspec
|
|
6
6
|
@clean_gemspec ||= eval(File.read(File.expand_path('../../http_parser.rb.gemspec', __FILE__)))
|
7
7
|
end
|
8
8
|
|
9
|
-
|
9
|
+
Gem::PackageTask.new(gemspec) do |pkg|
|
10
10
|
end
|
11
11
|
|
12
12
|
if RUBY_PLATFORM =~ /java/
|
data/tasks/fixtures.rake
CHANGED
@@ -14,13 +14,18 @@ task :fixtures => :submodules do
|
|
14
14
|
tmp.gsub!('TRUE', 'true')
|
15
15
|
tmp.gsub!('FALSE', 'false')
|
16
16
|
|
17
|
+
# mark strict mode tests
|
18
|
+
tmp.gsub!(%r|#if\s+!HTTP_PARSER_STRICT(.+?)#endif\s*/\*\s*!HTTP_PARSER_STRICT.+\n|m){
|
19
|
+
$1.gsub(/^(.+,\.type= .+)$/, "\\1\n, .strict= false")
|
20
|
+
}
|
21
|
+
|
17
22
|
# remove macros and comments
|
18
23
|
tmp.gsub!(/^#(if|elif|endif|define).+$/,'')
|
19
24
|
tmp.gsub!(/\/\*(.+?)\*\/$/,'')
|
20
25
|
|
21
26
|
# HTTP_* enums become strings
|
22
27
|
tmp.gsub!(/(= )(HTTP_\w+)/){
|
23
|
-
"#{$1}#{$2.dump}"
|
28
|
+
"#{$1}#{$2.sub('MSEARCH','M-SEARCH').dump}"
|
24
29
|
}
|
25
30
|
|
26
31
|
# join multiline strings for body and raw data
|
@@ -55,6 +60,7 @@ task :fixtures => :submodules do
|
|
55
60
|
results.map{ |res|
|
56
61
|
res[:headers] and res[:headers] = Hash[*res[:headers].flatten]
|
57
62
|
res[:method] and res[:method].gsub!(/^HTTP_/, '')
|
63
|
+
res[:strict] = true unless res.has_key?(:strict)
|
58
64
|
}
|
59
65
|
|
60
66
|
# write to a file
|
metadata
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: http_parser.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: -2889261086
|
5
|
+
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
|
8
|
+
- 6
|
9
|
+
- 0
|
10
|
+
- beta
|
11
|
+
- 1
|
12
|
+
version: 0.6.0.beta.1
|
11
13
|
platform: ruby
|
12
14
|
authors:
|
13
15
|
- Marc-Andre Cournoyer
|
@@ -16,8 +18,7 @@ autorequire:
|
|
16
18
|
bindir: bin
|
17
19
|
cert_chain: []
|
18
20
|
|
19
|
-
date:
|
20
|
-
default_executable:
|
21
|
+
date: 2013-05-05 00:00:00 Z
|
21
22
|
dependencies:
|
22
23
|
- !ruby/object:Gem::Dependency
|
23
24
|
name: rake-compiler
|
@@ -68,9 +69,37 @@ dependencies:
|
|
68
69
|
type: :development
|
69
70
|
version_requirements: *id003
|
70
71
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
+
name: benchmark_suite
|
72
73
|
prerelease: false
|
73
74
|
requirement: &id004 !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
hash: 3
|
80
|
+
segments:
|
81
|
+
- 0
|
82
|
+
version: "0"
|
83
|
+
type: :development
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: ffi
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 3
|
94
|
+
segments:
|
95
|
+
- 0
|
96
|
+
version: "0"
|
97
|
+
type: :development
|
98
|
+
version_requirements: *id005
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: yajl-ruby
|
101
|
+
prerelease: false
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
74
103
|
none: false
|
75
104
|
requirements:
|
76
105
|
- - ">="
|
@@ -82,7 +111,7 @@ dependencies:
|
|
82
111
|
- 1
|
83
112
|
version: 0.8.1
|
84
113
|
type: :development
|
85
|
-
version_requirements: *
|
114
|
+
version_requirements: *id006
|
86
115
|
description: Ruby bindings to http://github.com/ry/http-parser and http://github.com/a2800276/http-parser.java
|
87
116
|
email:
|
88
117
|
- macournoyer@gmail.com
|
@@ -101,6 +130,7 @@ files:
|
|
101
130
|
- LICENSE-MIT
|
102
131
|
- README.md
|
103
132
|
- Rakefile
|
133
|
+
- bench/standalone.rb
|
104
134
|
- bench/thin.rb
|
105
135
|
- ext/ruby_http_parser/.gitignore
|
106
136
|
- ext/ruby_http_parser/RubyHttpParserService.java
|
@@ -120,36 +150,45 @@ files:
|
|
120
150
|
- tasks/fixtures.rake
|
121
151
|
- tasks/spec.rake
|
122
152
|
- tasks/submodules.rake
|
153
|
+
- ext/ruby_http_parser/vendor/http-parser/AUTHORS
|
123
154
|
- ext/ruby_http_parser/vendor/http-parser/CONTRIBUTIONS
|
124
155
|
- ext/ruby_http_parser/vendor/http-parser/http_parser.c
|
156
|
+
- ext/ruby_http_parser/vendor/http-parser/http_parser.gyp
|
125
157
|
- ext/ruby_http_parser/vendor/http-parser/http_parser.h
|
126
158
|
- ext/ruby_http_parser/vendor/http-parser/LICENSE-MIT
|
127
159
|
- ext/ruby_http_parser/vendor/http-parser/Makefile
|
128
160
|
- ext/ruby_http_parser/vendor/http-parser/README.md
|
129
161
|
- ext/ruby_http_parser/vendor/http-parser/test.c
|
162
|
+
- ext/ruby_http_parser/vendor/http-parser-java/AUTHORS
|
130
163
|
- ext/ruby_http_parser/vendor/http-parser-java/build.xml
|
131
|
-
- ext/ruby_http_parser/vendor/http-parser-java/compile
|
132
164
|
- ext/ruby_http_parser/vendor/http-parser-java/ext/primitives.jar
|
133
165
|
- ext/ruby_http_parser/vendor/http-parser-java/http_parser.c
|
166
|
+
- ext/ruby_http_parser/vendor/http-parser-java/http_parser.gyp
|
134
167
|
- ext/ruby_http_parser/vendor/http-parser-java/http_parser.h
|
135
168
|
- ext/ruby_http_parser/vendor/http-parser-java/LICENSE-MIT
|
136
169
|
- ext/ruby_http_parser/vendor/http-parser-java/Makefile
|
137
170
|
- ext/ruby_http_parser/vendor/http-parser-java/README.md
|
171
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/Http-parser.java.iml
|
172
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/FieldData.java
|
138
173
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPCallback.java
|
139
174
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPDataCallback.java
|
140
175
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPErrorCallback.java
|
141
176
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPException.java
|
177
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPHeadersCompleteCallback.java
|
142
178
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPMethod.java
|
143
179
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPParser.java
|
180
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPParserUrl.java
|
144
181
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPCallback.java
|
145
182
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPDataCallback.java
|
146
183
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPErrorCallback.java
|
184
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPHeadersCompleteCallback.java
|
147
185
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPParser.java
|
148
186
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/ParserSettings.java
|
149
187
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserSettings.java
|
150
188
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserType.java
|
151
189
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/Util.java
|
152
190
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Message.java
|
191
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/ParseUrl.java
|
153
192
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Requests.java
|
154
193
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Responses.java
|
155
194
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Test.java
|
@@ -158,12 +197,10 @@ files:
|
|
158
197
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestNoOverflowLongBody.java
|
159
198
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/UnitTest.java
|
160
199
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Upgrade.java
|
200
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Url.java
|
161
201
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Util.java
|
162
202
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/WrongContentLength.java
|
163
203
|
- ext/ruby_http_parser/vendor/http-parser-java/test.c
|
164
|
-
- ext/ruby_http_parser/vendor/http-parser-java/test_permutations
|
165
|
-
- ext/ruby_http_parser/vendor/http-parser-java/test_unit
|
166
|
-
- ext/ruby_http_parser/vendor/http-parser-java/test_utf8
|
167
204
|
- ext/ruby_http_parser/vendor/http-parser-java/tests.dumped
|
168
205
|
- ext/ruby_http_parser/vendor/http-parser-java/tests.utf8
|
169
206
|
- ext/ruby_http_parser/vendor/http-parser-java/TODO
|
@@ -171,7 +208,6 @@ files:
|
|
171
208
|
- ext/ruby_http_parser/vendor/http-parser-java/tools/const_char.rb
|
172
209
|
- ext/ruby_http_parser/vendor/http-parser-java/tools/lowcase.rb
|
173
210
|
- ext/ruby_http_parser/vendor/http-parser-java/tools/parse_tests.rb
|
174
|
-
has_rdoc: true
|
175
211
|
homepage: http://github.com/tmm1/http_parser.rb
|
176
212
|
licenses: []
|
177
213
|
|
@@ -192,16 +228,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
192
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
229
|
none: false
|
194
230
|
requirements:
|
195
|
-
- - "
|
231
|
+
- - ">"
|
196
232
|
- !ruby/object:Gem::Version
|
197
|
-
hash:
|
233
|
+
hash: 25
|
198
234
|
segments:
|
199
|
-
-
|
200
|
-
|
235
|
+
- 1
|
236
|
+
- 3
|
237
|
+
- 1
|
238
|
+
version: 1.3.1
|
201
239
|
requirements: []
|
202
240
|
|
203
241
|
rubyforge_project:
|
204
|
-
rubygems_version: 1.
|
242
|
+
rubygems_version: 1.8.24
|
205
243
|
signing_key:
|
206
244
|
specification_version: 3
|
207
245
|
summary: Simple callback-based HTTP request/response parser
|