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.
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