http_parser.rb 0.5.1-x86-mswin32-60 → 0.5.2-x86-mswin32-60
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/Gemfile.lock +16 -16
- data/LICENSE-MIT +20 -0
- data/ext/ruby_http_parser/org/ruby_http_parser/RubyHttpParser.java +68 -11
- data/ext/ruby_http_parser/ruby_http_parser.c +74 -6
- data/ext/ruby_http_parser/vendor/http-parser-java/LICENSE-MIT +26 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/README.md +23 -143
- data/ext/ruby_http_parser/vendor/http-parser-java/TODO +3 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/build.xml +74 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.c +115 -61
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.h +19 -3
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPCallback.java +8 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPDataCallback.java +34 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPErrorCallback.java +12 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPException.java +4 -2
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPMethod.java +64 -52
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPParser.java +5 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserSettings.java +323 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/{lolevel/Util.java → Util.java} +27 -28
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPParser.java +259 -85
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/ParserSettings.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Message.java +324 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Requests.java +69 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Responses.java +51 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Test.java +15 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestHeaderOverflowError.java +47 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestLoaderNG.java +183 -447
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestNoOverflowLongBody.java +61 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/UnitTest.java +2 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Upgrade.java +26 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Util.java +165 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/WrongContentLength.java +58 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/test.c +232 -29
- data/ext/ruby_http_parser/vendor/http-parser-java/test_permutations +1 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_unit +1 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_utf8 +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/tests.dumped +154 -7
- data/ext/ruby_http_parser/vendor/http-parser-java/tests.utf8 +17 -0
- data/ext/ruby_http_parser/vendor/http-parser/LICENSE-MIT +1 -1
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.c +52 -10
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.h +3 -1
- data/ext/ruby_http_parser/vendor/http-parser/test.c +89 -3
- data/http_parser.rb.gemspec +8 -2
- data/lib/http_parser.rb +17 -0
- data/spec/parser_spec.rb +97 -6
- data/tasks/compile.rake +3 -1
- metadata +83 -20
- data/ext/ruby_http_parser/vendor/http-parser-java/CONTRIBUTIONS +0 -4
data/http_parser.rb.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "http_parser.rb"
|
3
|
-
s.version = "0.5.
|
3
|
+
s.version = "0.5.2"
|
4
4
|
s.summary = "Simple callback-based HTTP request/response parser"
|
5
5
|
s.description = "Ruby bindings to http://github.com/ry/http-parser and http://github.com/a2800276/http-parser.java"
|
6
6
|
|
@@ -13,7 +13,13 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.require_paths = ["lib"]
|
14
14
|
s.extensions = ["ext/ruby_http_parser/extconf.rb"]
|
15
15
|
|
16
|
-
s.add_development_dependency 'rake-compiler', '>= 0.7.
|
16
|
+
s.add_development_dependency 'rake-compiler', '>= 0.7.9'
|
17
17
|
s.add_development_dependency 'rspec', '>= 2.0.1'
|
18
18
|
s.add_development_dependency 'json', '>= 1.4.6'
|
19
|
+
|
20
|
+
if RUBY_PLATFORM =~ /java/
|
21
|
+
s.add_development_dependency 'jruby-openssl'
|
22
|
+
else
|
23
|
+
s.add_development_dependency 'yajl-ruby', '>= 0.8.1'
|
24
|
+
end
|
19
25
|
end
|
data/lib/http_parser.rb
CHANGED
@@ -2,3 +2,20 @@ $:.unshift File.expand_path('../', __FILE__)
|
|
2
2
|
require 'ruby_http_parser'
|
3
3
|
|
4
4
|
Http = HTTP
|
5
|
+
|
6
|
+
module HTTP
|
7
|
+
class Parser
|
8
|
+
class << self
|
9
|
+
attr_reader :default_header_value_type
|
10
|
+
|
11
|
+
def default_header_value_type=(val)
|
12
|
+
if (val != :mixed && val != :strings && val != :arrays)
|
13
|
+
raise ArgumentError, "Invalid header value type"
|
14
|
+
end
|
15
|
+
@default_header_value_type = val
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
HTTP::Parser.default_header_value_type = :mixed
|
data/spec/parser_spec.rb
CHANGED
@@ -27,8 +27,37 @@ describe HTTP::Parser do
|
|
27
27
|
@parser.request_path.should be_nil
|
28
28
|
@parser.query_string.should be_nil
|
29
29
|
@parser.fragment.should be_nil
|
30
|
+
|
31
|
+
@parser.header_value_type.should == :mixed
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should allow us to set the header value type" do
|
35
|
+
[:mixed, :arrays, :strings].each do |type|
|
36
|
+
@parser.header_value_type = type
|
37
|
+
@parser.header_value_type.should == type
|
38
|
+
|
39
|
+
parser_tmp = HTTP::Parser.new(nil, type)
|
40
|
+
parser_tmp.header_value_type.should == type
|
41
|
+
end
|
30
42
|
end
|
31
43
|
|
44
|
+
it "should allow us to set the default header value type" do
|
45
|
+
[:mixed, :arrays, :strings].each do |type|
|
46
|
+
HTTP::Parser.default_header_value_type = type
|
47
|
+
|
48
|
+
parser = HTTP::Parser.new
|
49
|
+
parser.header_value_type.should == type
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should throw an Argument Error if header value type is invalid" do
|
54
|
+
proc{ @parser.header_value_type = 'bob' }.should raise_error(ArgumentError)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should throw an Argument Error if default header value type is invalid" do
|
58
|
+
proc{ HTTP::Parser.default_header_value_type = 'bob' }.should raise_error(ArgumentError)
|
59
|
+
end
|
60
|
+
|
32
61
|
it "should implement basic api" do
|
33
62
|
@parser <<
|
34
63
|
"GET /test?ok=1 HTTP/1.1\r\n" +
|
@@ -132,16 +161,57 @@ describe HTTP::Parser do
|
|
132
161
|
}
|
133
162
|
end
|
134
163
|
|
135
|
-
it "should handle multiple headers" do
|
164
|
+
it "should handle multiple headers using strings" do
|
165
|
+
@parser.header_value_type = :strings
|
166
|
+
|
136
167
|
@parser <<
|
137
168
|
"GET / HTTP/1.0\r\n" +
|
138
|
-
"
|
139
|
-
"
|
169
|
+
"Set-Cookie: PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com\r\n" +
|
170
|
+
"Set-Cookie: NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly\r\n" +
|
140
171
|
"\r\n"
|
141
172
|
|
142
|
-
@parser.headers.should ==
|
143
|
-
|
144
|
-
|
173
|
+
@parser.headers["Set-Cookie"].should == "PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com, NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly"
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should handle multiple headers using strings" do
|
177
|
+
@parser.header_value_type = :arrays
|
178
|
+
|
179
|
+
@parser <<
|
180
|
+
"GET / HTTP/1.0\r\n" +
|
181
|
+
"Set-Cookie: PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com\r\n" +
|
182
|
+
"Set-Cookie: NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly\r\n" +
|
183
|
+
"\r\n"
|
184
|
+
|
185
|
+
@parser.headers["Set-Cookie"].should == [
|
186
|
+
"PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com",
|
187
|
+
"NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly"
|
188
|
+
]
|
189
|
+
end
|
190
|
+
|
191
|
+
it "should handle multiple headers using mixed" do
|
192
|
+
@parser.header_value_type = :mixed
|
193
|
+
|
194
|
+
@parser <<
|
195
|
+
"GET / HTTP/1.0\r\n" +
|
196
|
+
"Set-Cookie: PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com\r\n" +
|
197
|
+
"Set-Cookie: NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly\r\n" +
|
198
|
+
"\r\n"
|
199
|
+
|
200
|
+
@parser.headers["Set-Cookie"].should == [
|
201
|
+
"PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com",
|
202
|
+
"NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly"
|
203
|
+
]
|
204
|
+
end
|
205
|
+
|
206
|
+
it "should handle a single cookie using mixed" do
|
207
|
+
@parser.header_value_type = :mixed
|
208
|
+
|
209
|
+
@parser <<
|
210
|
+
"GET / HTTP/1.0\r\n" +
|
211
|
+
"Set-Cookie: PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com\r\n" +
|
212
|
+
"\r\n"
|
213
|
+
|
214
|
+
@parser.headers["Set-Cookie"].should == "PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com"
|
145
215
|
end
|
146
216
|
|
147
217
|
it "should support alternative api" do
|
@@ -172,6 +242,27 @@ describe HTTP::Parser do
|
|
172
242
|
@done.should be_true
|
173
243
|
end
|
174
244
|
|
245
|
+
it 'sets upgrade_data if available' do
|
246
|
+
@parser <<
|
247
|
+
"GET /demo HTTP/1.1\r\n" +
|
248
|
+
"Connection: Upgrade\r\n" +
|
249
|
+
"Upgrade: WebSocket\r\n\r\n" +
|
250
|
+
"third key data"
|
251
|
+
|
252
|
+
@parser.upgrade?.should be_true
|
253
|
+
@parser.upgrade_data.should == 'third key data'
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'sets upgrade_data to blank if un-available' do
|
257
|
+
@parser <<
|
258
|
+
"GET /demo HTTP/1.1\r\n" +
|
259
|
+
"Connection: Upgrade\r\n" +
|
260
|
+
"Upgrade: WebSocket\r\n\r\n"
|
261
|
+
|
262
|
+
@parser.upgrade?.should be_true
|
263
|
+
@parser.upgrade_data.should == ''
|
264
|
+
end
|
265
|
+
|
175
266
|
%w[ request response ].each do |type|
|
176
267
|
JSON.parse(File.read(File.expand_path("../support/#{type}s.json", __FILE__))).each do |test|
|
177
268
|
test['headers'] ||= {}
|
data/tasks/compile.rake
CHANGED
@@ -10,7 +10,9 @@ Rake::GemPackageTask.new(gemspec) do |pkg|
|
|
10
10
|
end
|
11
11
|
|
12
12
|
if RUBY_PLATFORM =~ /java/
|
13
|
-
Rake::JavaExtensionTask.new("ruby_http_parser", gemspec)
|
13
|
+
Rake::JavaExtensionTask.new("ruby_http_parser", gemspec) do |ext|
|
14
|
+
ext.classpath = File.expand_path('../../ext/ruby_http_parser/vendor/http-parser-java/ext/primitives.jar', __FILE__)
|
15
|
+
end
|
14
16
|
else
|
15
17
|
Rake::ExtensionTask.new("ruby_http_parser", gemspec) do |ext|
|
16
18
|
unless RUBY_PLATFORM =~ /mswin|mingw/
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: http_parser.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 2
|
10
|
+
version: 0.5.2
|
5
11
|
platform: x86-mswin32-60
|
6
12
|
authors:
|
7
13
|
- Marc-Andre Cournoyer
|
@@ -10,39 +16,73 @@ autorequire:
|
|
10
16
|
bindir: bin
|
11
17
|
cert_chain: []
|
12
18
|
|
13
|
-
date: 2011-
|
19
|
+
date: 2011-08-27 00:00:00 -07:00
|
14
20
|
default_executable:
|
15
21
|
dependencies:
|
16
22
|
- !ruby/object:Gem::Dependency
|
17
23
|
name: rake-compiler
|
18
|
-
|
19
|
-
|
20
|
-
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
21
27
|
requirements:
|
22
28
|
- - ">="
|
23
29
|
- !ruby/object:Gem::Version
|
24
|
-
|
25
|
-
|
30
|
+
hash: 17
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
- 7
|
34
|
+
- 9
|
35
|
+
version: 0.7.9
|
36
|
+
type: :development
|
37
|
+
version_requirements: *id001
|
26
38
|
- !ruby/object:Gem::Dependency
|
27
39
|
name: rspec
|
28
|
-
|
29
|
-
|
30
|
-
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
31
43
|
requirements:
|
32
44
|
- - ">="
|
33
45
|
- !ruby/object:Gem::Version
|
46
|
+
hash: 13
|
47
|
+
segments:
|
48
|
+
- 2
|
49
|
+
- 0
|
50
|
+
- 1
|
34
51
|
version: 2.0.1
|
35
|
-
|
52
|
+
type: :development
|
53
|
+
version_requirements: *id002
|
36
54
|
- !ruby/object:Gem::Dependency
|
37
55
|
name: json
|
38
|
-
|
39
|
-
|
40
|
-
|
56
|
+
prerelease: false
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
41
59
|
requirements:
|
42
60
|
- - ">="
|
43
61
|
- !ruby/object:Gem::Version
|
62
|
+
hash: 11
|
63
|
+
segments:
|
64
|
+
- 1
|
65
|
+
- 4
|
66
|
+
- 6
|
44
67
|
version: 1.4.6
|
45
|
-
|
68
|
+
type: :development
|
69
|
+
version_requirements: *id003
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: yajl-ruby
|
72
|
+
prerelease: false
|
73
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 61
|
79
|
+
segments:
|
80
|
+
- 0
|
81
|
+
- 8
|
82
|
+
- 1
|
83
|
+
version: 0.8.1
|
84
|
+
type: :development
|
85
|
+
version_requirements: *id004
|
46
86
|
description: Ruby bindings to http://github.com/ry/http-parser and http://github.com/a2800276/http-parser.java
|
47
87
|
email:
|
48
88
|
- macournoyer@gmail.com
|
@@ -58,6 +98,7 @@ files:
|
|
58
98
|
- .gitmodules
|
59
99
|
- Gemfile
|
60
100
|
- Gemfile.lock
|
101
|
+
- LICENSE-MIT
|
61
102
|
- README.md
|
62
103
|
- Rakefile
|
63
104
|
- bench/thin.rb
|
@@ -86,13 +127,17 @@ files:
|
|
86
127
|
- ext/ruby_http_parser/vendor/http-parser/Makefile
|
87
128
|
- ext/ruby_http_parser/vendor/http-parser/README.md
|
88
129
|
- ext/ruby_http_parser/vendor/http-parser/test.c
|
130
|
+
- ext/ruby_http_parser/vendor/http-parser-java/build.xml
|
89
131
|
- ext/ruby_http_parser/vendor/http-parser-java/compile
|
90
|
-
- ext/ruby_http_parser/vendor/http-parser-java/
|
132
|
+
- ext/ruby_http_parser/vendor/http-parser-java/ext/primitives.jar
|
91
133
|
- ext/ruby_http_parser/vendor/http-parser-java/http_parser.c
|
92
134
|
- ext/ruby_http_parser/vendor/http-parser-java/http_parser.h
|
93
135
|
- ext/ruby_http_parser/vendor/http-parser-java/LICENSE-MIT
|
94
136
|
- ext/ruby_http_parser/vendor/http-parser-java/Makefile
|
95
137
|
- ext/ruby_http_parser/vendor/http-parser-java/README.md
|
138
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPCallback.java
|
139
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPDataCallback.java
|
140
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPErrorCallback.java
|
96
141
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPException.java
|
97
142
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPMethod.java
|
98
143
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPParser.java
|
@@ -101,14 +146,26 @@ files:
|
|
101
146
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPErrorCallback.java
|
102
147
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPParser.java
|
103
148
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/ParserSettings.java
|
104
|
-
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/
|
149
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserSettings.java
|
105
150
|
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserType.java
|
151
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/Util.java
|
152
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Message.java
|
153
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Requests.java
|
154
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Responses.java
|
155
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Test.java
|
156
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestHeaderOverflowError.java
|
106
157
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestLoaderNG.java
|
158
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestNoOverflowLongBody.java
|
107
159
|
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/UnitTest.java
|
160
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Upgrade.java
|
161
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Util.java
|
162
|
+
- ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/WrongContentLength.java
|
108
163
|
- ext/ruby_http_parser/vendor/http-parser-java/test.c
|
109
164
|
- ext/ruby_http_parser/vendor/http-parser-java/test_permutations
|
110
165
|
- ext/ruby_http_parser/vendor/http-parser-java/test_unit
|
166
|
+
- ext/ruby_http_parser/vendor/http-parser-java/test_utf8
|
111
167
|
- ext/ruby_http_parser/vendor/http-parser-java/tests.dumped
|
168
|
+
- ext/ruby_http_parser/vendor/http-parser-java/tests.utf8
|
112
169
|
- ext/ruby_http_parser/vendor/http-parser-java/TODO
|
113
170
|
- ext/ruby_http_parser/vendor/http-parser-java/tools/byte_constants.rb
|
114
171
|
- ext/ruby_http_parser/vendor/http-parser-java/tools/const_char.rb
|
@@ -127,21 +184,27 @@ rdoc_options: []
|
|
127
184
|
require_paths:
|
128
185
|
- lib
|
129
186
|
required_ruby_version: !ruby/object:Gem::Requirement
|
187
|
+
none: false
|
130
188
|
requirements:
|
131
189
|
- - ">="
|
132
190
|
- !ruby/object:Gem::Version
|
191
|
+
hash: 3
|
192
|
+
segments:
|
193
|
+
- 0
|
133
194
|
version: "0"
|
134
|
-
version:
|
135
195
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
|
+
none: false
|
136
197
|
requirements:
|
137
198
|
- - ">="
|
138
199
|
- !ruby/object:Gem::Version
|
200
|
+
hash: 3
|
201
|
+
segments:
|
202
|
+
- 0
|
139
203
|
version: "0"
|
140
|
-
version:
|
141
204
|
requirements: []
|
142
205
|
|
143
206
|
rubyforge_project:
|
144
|
-
rubygems_version: 1.
|
207
|
+
rubygems_version: 1.6.2
|
145
208
|
signing_key:
|
146
209
|
specification_version: 3
|
147
210
|
summary: Simple callback-based HTTP request/response parser
|