http_parser.rb 0.5.3 → 0.6.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/.gitmodules +3 -3
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +9 -2
  4. data/README.md +50 -45
  5. data/bench/standalone.rb +23 -0
  6. data/bench/thin.rb +1 -0
  7. data/ext/ruby_http_parser/org/ruby_http_parser/RubyHttpParser.java +66 -58
  8. data/ext/ruby_http_parser/ruby_http_parser.c +10 -41
  9. data/ext/ruby_http_parser/vendor/http-parser-java/AUTHORS +32 -0
  10. data/ext/ruby_http_parser/vendor/http-parser-java/LICENSE-MIT +5 -1
  11. data/ext/ruby_http_parser/vendor/http-parser-java/README.md +133 -1
  12. data/ext/ruby_http_parser/vendor/http-parser-java/TODO +6 -0
  13. data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.c +1029 -615
  14. data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.gyp +79 -0
  15. data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.h +177 -43
  16. data/ext/ruby_http_parser/vendor/http-parser-java/src/Http-parser.java.iml +22 -0
  17. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/FieldData.java +41 -0
  18. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPHeadersCompleteCallback.java +13 -0
  19. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPMethod.java +4 -1
  20. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPParserUrl.java +76 -0
  21. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserSettings.java +2 -2
  22. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/Util.java +6 -6
  23. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPHeadersCompleteCallback.java +12 -0
  24. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPParser.java +715 -637
  25. data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/ParserSettings.java +1 -1
  26. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Message.java +71 -21
  27. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/ParseUrl.java +51 -0
  28. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Requests.java +1 -1
  29. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Responses.java +1 -0
  30. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Test.java +2 -1
  31. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestHeaderOverflowError.java +1 -0
  32. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestLoaderNG.java +6 -17
  33. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestNoOverflowLongBody.java +1 -0
  34. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/UnitTest.java +1 -0
  35. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Upgrade.java +1 -0
  36. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Url.java +127 -0
  37. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Util.java +80 -9
  38. data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/WrongContentLength.java +2 -1
  39. data/ext/ruby_http_parser/vendor/http-parser-java/test.c +1141 -210
  40. data/ext/ruby_http_parser/vendor/http-parser-java/tests.dumped +230 -71
  41. data/ext/ruby_http_parser/vendor/http-parser/AUTHORS +32 -0
  42. data/ext/ruby_http_parser/vendor/http-parser/LICENSE-MIT +5 -1
  43. data/ext/ruby_http_parser/vendor/http-parser/README.md +9 -2
  44. data/ext/ruby_http_parser/vendor/http-parser/http_parser.c +1029 -615
  45. data/ext/ruby_http_parser/vendor/http-parser/http_parser.gyp +79 -0
  46. data/ext/ruby_http_parser/vendor/http-parser/http_parser.h +145 -16
  47. data/ext/ruby_http_parser/vendor/http-parser/test.c +1065 -141
  48. data/http_parser.rb.gemspec +3 -1
  49. data/spec/parser_spec.rb +41 -17
  50. data/spec/support/requests.json +236 -24
  51. data/spec/support/responses.json +182 -36
  52. data/tasks/compile.rake +2 -2
  53. data/tasks/fixtures.rake +7 -1
  54. metadata +57 -19
  55. data/ext/ruby_http_parser/vendor/http-parser-java/compile +0 -1
  56. data/ext/ruby_http_parser/vendor/http-parser-java/test_permutations +0 -1
  57. data/ext/ruby_http_parser/vendor/http-parser-java/test_unit +0 -1
  58. data/ext/ruby_http_parser/vendor/http-parser-java/test_utf8 +0 -1
@@ -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": true,
48
- "message_complete_on_eof": false,
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": true,
64
- "message_complete_on_eof": false,
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
  ]
@@ -1,4 +1,4 @@
1
- require 'rake/gempackagetask'
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
- Rake::GemPackageTask.new(gemspec) do |pkg|
9
+ Gem::PackageTask.new(gemspec) do |pkg|
10
10
  end
11
11
 
12
12
  if RUBY_PLATFORM =~ /java/
@@ -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: 13
5
- prerelease:
4
+ hash: -2889261086
5
+ prerelease: 6
6
6
  segments:
7
7
  - 0
8
- - 5
9
- - 3
10
- version: 0.5.3
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: 2011-10-01 00:00:00 -05:00
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: yajl-ruby
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: *id004
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: 3
233
+ hash: 25
198
234
  segments:
199
- - 0
200
- version: "0"
235
+ - 1
236
+ - 3
237
+ - 1
238
+ version: 1.3.1
201
239
  requirements: []
202
240
 
203
241
  rubyforge_project:
204
- rubygems_version: 1.6.2
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