m2r 2.0.2 → 2.1.0.pre

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 (62) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +11 -3
  4. data/Vagrantfile +16 -0
  5. data/example/http_0mq.rb +4 -0
  6. data/kitchen/Rakefile +28 -0
  7. data/kitchen/auth.cfg +2 -0
  8. data/kitchen/cookbooks/build-essential/README.md +24 -0
  9. data/kitchen/cookbooks/build-essential/metadata.json +35 -0
  10. data/kitchen/cookbooks/build-essential/metadata.rb +10 -0
  11. data/kitchen/cookbooks/build-essential/recipes/default.rb +45 -0
  12. data/kitchen/cookbooks/essential/CHANGELOG.md +12 -0
  13. data/kitchen/cookbooks/essential/README.md +12 -0
  14. data/kitchen/cookbooks/essential/metadata.json +29 -0
  15. data/kitchen/cookbooks/essential/metadata.rb +6 -0
  16. data/kitchen/cookbooks/essential/recipes/default.rb +16 -0
  17. data/kitchen/cookbooks/m2r/CHANGELOG.md +12 -0
  18. data/kitchen/cookbooks/m2r/README.md +12 -0
  19. data/kitchen/cookbooks/m2r/metadata.json +29 -0
  20. data/kitchen/cookbooks/m2r/metadata.rb +6 -0
  21. data/kitchen/cookbooks/m2r/recipes/default.rb +13 -0
  22. data/kitchen/cookbooks/mongrel2/CHANGELOG.md +12 -0
  23. data/kitchen/cookbooks/mongrel2/README.md +12 -0
  24. data/kitchen/cookbooks/mongrel2/metadata.json +29 -0
  25. data/kitchen/cookbooks/mongrel2/metadata.rb +6 -0
  26. data/kitchen/cookbooks/mongrel2/recipes/default.rb +38 -0
  27. data/kitchen/cookbooks/ruby-build/README.md +12 -0
  28. data/kitchen/cookbooks/ruby-build/definitions/ruby.rb +65 -0
  29. data/kitchen/cookbooks/ruby-build/metadata.json +29 -0
  30. data/kitchen/cookbooks/ruby-build/metadata.rb +6 -0
  31. data/kitchen/cookbooks/ruby-build/recipes/default.rb +9 -0
  32. data/kitchen/cookbooks/zmq/CHANGELOG.md +12 -0
  33. data/kitchen/cookbooks/zmq/README.md +12 -0
  34. data/kitchen/cookbooks/zmq/metadata.json +29 -0
  35. data/kitchen/cookbooks/zmq/metadata.rb +6 -0
  36. data/kitchen/cookbooks/zmq/recipes/default.rb +36 -0
  37. data/kitchen/data_bags/README +1 -0
  38. data/kitchen/data_bags/vagrant.key +27 -0
  39. data/kitchen/data_bags/vagrant.pub +1 -0
  40. data/kitchen/m2r.cfg +5 -0
  41. data/kitchen/nodes/m2r.local.json +16 -0
  42. data/kitchen/roles/.gitkeep +0 -0
  43. data/kitchen/site-cookbooks/README +1 -0
  44. data/lib/m2r.rb +2 -0
  45. data/lib/m2r/connection.rb +30 -5
  46. data/lib/m2r/handler.rb +8 -0
  47. data/lib/m2r/multithread_handler.rb +27 -0
  48. data/lib/m2r/parser.rb +44 -0
  49. data/lib/m2r/rack_handler.rb +0 -2
  50. data/lib/m2r/request.rb +2 -21
  51. data/lib/m2r/version.rb +1 -1
  52. data/lib/rack/handler/mongrel2.rb +7 -3
  53. data/m2r.gemspec +3 -3
  54. data/test/support/test_handler.rb +29 -12
  55. data/test/test_helper.rb +1 -1
  56. data/test/unit/connection_test.rb +51 -16
  57. data/test/unit/handler_test.rb +33 -5
  58. data/test/unit/m2r_test.rb +2 -0
  59. data/test/unit/multithread_handler_test.rb +75 -0
  60. data/test/unit/rack_handler_test.rb +6 -2
  61. data/test/unit/{request_test.rb → request_parsing_test.rb} +5 -5
  62. metadata +71 -62
@@ -43,9 +43,11 @@ module M2R
43
43
  'send_addr' => send = 'tcp://1.2.3.4:4321',
44
44
  'sender_id' => id = SecureRandom.uuid
45
45
  }
46
- cf = mock(:connection)
46
+ cf = stub()
47
+ cf.stubs(:connection => cf, :close => nil)
47
48
  ConnectionFactory.expects(:new).with(responds_with(:sender_id, id)).returns(cf)
48
49
  RackHandler.any_instance.stubs(:stop? => true)
50
+ M2R.zmq_context.expects(:terminate)
49
51
  handler.run(HelloWorld.new, options)
50
52
  end
51
53
 
@@ -74,9 +76,11 @@ module M2R
74
76
  options = {
75
77
  'connection_factory' => 'custom'
76
78
  }
77
- cf = mock(:connection)
79
+ cf = stub()
80
+ cf.stubs(:connection => cf, :close => nil)
78
81
  ConnectionFactory::Custom.expects(:new).with(responds_with(:connection_factory, 'custom')).returns(cf)
79
82
  RackHandler.any_instance.stubs(:stop? => true)
83
+ M2R.zmq_context.expects(:terminate)
80
84
  handler.run(HelloWorld.new, options)
81
85
  end
82
86
 
@@ -1,10 +1,10 @@
1
1
  require 'test_helper'
2
2
 
3
3
  module M2R
4
- class TestRequest < MiniTest::Unit::TestCase
4
+ class TestRequestParsing < MiniTest::Unit::TestCase
5
5
  def test_parse
6
6
  data = %q[FAKESENDER 0 / 97:{"PATH":"/","host":"default","METHOD":"HEAD","VERSION":"HTTP/1.1","URI":"/","URL_SCHEME":"https"},0:,]
7
- request = Request.parse(data)
7
+ request = Parser.new.parse(data)
8
8
 
9
9
  assert_equal "/", request.path
10
10
  assert_equal "default", request.headers['Host']
@@ -17,20 +17,20 @@ module M2R
17
17
 
18
18
  def test_scheme
19
19
  data = %q[FAKESENDER 0 / 96:{"PATH":"/","host":"default","METHOD":"HEAD","VERSION":"HTTP/1.1","URI":"/","URL_SCHEME":"http"},0:,]
20
- request = Request.parse(data)
20
+ request = Parser.new.parse(data)
21
21
  assert_equal "http", request.scheme
22
22
  end
23
23
 
24
24
  def test_http_scheme_in_mongrel17
25
25
  data = %q[FAKESENDER 0 / 76:{"PATH":"/","host":"default","METHOD":"HEAD","VERSION":"HTTP/1.1","URI":"/"},0:,]
26
- request = Request.parse(data)
26
+ request = Parser.new.parse(data)
27
27
  assert_equal "http", request.scheme
28
28
  end
29
29
 
30
30
  def test_https_scheme_in_mongrel17_set_via_env
31
31
  ENV['HTTPS']='true'
32
32
  data = %q[FAKESENDER 0 / 76:{"PATH":"/","host":"default","METHOD":"HEAD","VERSION":"HTTP/1.1","URI":"/"},0:,]
33
- request = Request.parse(data)
33
+ request = Parser.new.parse(data)
34
34
  assert_equal "https", request.scheme
35
35
  ensure
36
36
  ENV.delete('HTTPS')
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m2r
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
5
- prerelease:
4
+ version: 2.1.0.pre
6
5
  platform: ruby
7
6
  authors:
8
7
  - Colin Curtin
@@ -12,108 +11,95 @@ authors:
12
11
  autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2012-11-05 00:00:00.000000000 Z
14
+ date: 2013-10-22 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: ffi-rzmq
19
18
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
19
  requirements:
22
- - - ~>
20
+ - - '>='
23
21
  - !ruby/object:Gem::Version
24
- version: 0.9.3
22
+ version: 1.0.1
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
- - - ~>
27
+ - - '>='
31
28
  - !ruby/object:Gem::Version
32
- version: 0.9.3
29
+ version: 1.0.1
33
30
  - !ruby/object:Gem::Dependency
34
31
  name: ffi
35
32
  requirement: !ruby/object:Gem::Requirement
36
- none: false
37
33
  requirements:
38
- - - ! '>='
34
+ - - '>='
39
35
  - !ruby/object:Gem::Version
40
36
  version: 1.0.0
41
37
  type: :runtime
42
38
  prerelease: false
43
39
  version_requirements: !ruby/object:Gem::Requirement
44
- none: false
45
40
  requirements:
46
- - - ! '>='
41
+ - - '>='
47
42
  - !ruby/object:Gem::Version
48
43
  version: 1.0.0
49
44
  - !ruby/object:Gem::Dependency
50
45
  name: multi_json
51
46
  requirement: !ruby/object:Gem::Requirement
52
- none: false
53
47
  requirements:
54
- - - ! '>='
48
+ - - '>='
55
49
  - !ruby/object:Gem::Version
56
50
  version: '0'
57
51
  type: :runtime
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
- none: false
61
54
  requirements:
62
- - - ! '>='
55
+ - - '>='
63
56
  - !ruby/object:Gem::Version
64
57
  version: '0'
65
58
  - !ruby/object:Gem::Dependency
66
59
  name: tnetstring
67
60
  requirement: !ruby/object:Gem::Requirement
68
- none: false
69
61
  requirements:
70
- - - ! '>='
62
+ - - '>='
71
63
  - !ruby/object:Gem::Version
72
64
  version: '0'
73
65
  type: :runtime
74
66
  prerelease: false
75
67
  version_requirements: !ruby/object:Gem::Requirement
76
- none: false
77
68
  requirements:
78
- - - ! '>='
69
+ - - '>='
79
70
  - !ruby/object:Gem::Version
80
71
  version: '0'
81
72
  - !ruby/object:Gem::Dependency
82
73
  name: rack
83
74
  requirement: !ruby/object:Gem::Requirement
84
- none: false
85
75
  requirements:
86
- - - ! '>='
76
+ - - '>='
87
77
  - !ruby/object:Gem::Version
88
78
  version: '0'
89
79
  type: :development
90
80
  prerelease: false
91
81
  version_requirements: !ruby/object:Gem::Requirement
92
- none: false
93
82
  requirements:
94
- - - ! '>='
83
+ - - '>='
95
84
  - !ruby/object:Gem::Version
96
85
  version: '0'
97
86
  - !ruby/object:Gem::Dependency
98
87
  name: rake
99
88
  requirement: !ruby/object:Gem::Requirement
100
- none: false
101
89
  requirements:
102
- - - ! '>='
90
+ - - '>='
103
91
  - !ruby/object:Gem::Version
104
92
  version: '0'
105
93
  type: :development
106
94
  prerelease: false
107
95
  version_requirements: !ruby/object:Gem::Requirement
108
- none: false
109
96
  requirements:
110
- - - ! '>='
97
+ - - '>='
111
98
  - !ruby/object:Gem::Version
112
99
  version: '0'
113
100
  - !ruby/object:Gem::Dependency
114
101
  name: minitest
115
102
  requirement: !ruby/object:Gem::Requirement
116
- none: false
117
103
  requirements:
118
104
  - - '='
119
105
  - !ruby/object:Gem::Version
@@ -121,7 +107,6 @@ dependencies:
121
107
  type: :development
122
108
  prerelease: false
123
109
  version_requirements: !ruby/object:Gem::Requirement
124
- none: false
125
110
  requirements:
126
111
  - - '='
127
112
  - !ruby/object:Gem::Version
@@ -129,23 +114,20 @@ dependencies:
129
114
  - !ruby/object:Gem::Dependency
130
115
  name: mocha
131
116
  requirement: !ruby/object:Gem::Requirement
132
- none: false
133
117
  requirements:
134
- - - ~>
118
+ - - '>='
135
119
  - !ruby/object:Gem::Version
136
- version: 0.12.1
120
+ version: 0.14.0
137
121
  type: :development
138
122
  prerelease: false
139
123
  version_requirements: !ruby/object:Gem::Requirement
140
- none: false
141
124
  requirements:
142
- - - ~>
125
+ - - '>='
143
126
  - !ruby/object:Gem::Version
144
- version: 0.12.1
127
+ version: 0.14.0
145
128
  - !ruby/object:Gem::Dependency
146
129
  name: bbq
147
130
  requirement: !ruby/object:Gem::Requirement
148
- none: false
149
131
  requirements:
150
132
  - - '='
151
133
  - !ruby/object:Gem::Version
@@ -153,7 +135,6 @@ dependencies:
153
135
  type: :development
154
136
  prerelease: false
155
137
  version_requirements: !ruby/object:Gem::Requirement
156
- none: false
157
138
  requirements:
158
139
  - - '='
159
140
  - !ruby/object:Gem::Version
@@ -161,7 +142,6 @@ dependencies:
161
142
  - !ruby/object:Gem::Dependency
162
143
  name: capybara-mechanize
163
144
  requirement: !ruby/object:Gem::Requirement
164
- none: false
165
145
  requirements:
166
146
  - - '='
167
147
  - !ruby/object:Gem::Version
@@ -169,7 +149,6 @@ dependencies:
169
149
  type: :development
170
150
  prerelease: false
171
151
  version_requirements: !ruby/object:Gem::Requirement
172
- none: false
173
152
  requirements:
174
153
  - - '='
175
154
  - !ruby/object:Gem::Version
@@ -177,7 +156,6 @@ dependencies:
177
156
  - !ruby/object:Gem::Dependency
178
157
  name: activesupport
179
158
  requirement: !ruby/object:Gem::Requirement
180
- none: false
181
159
  requirements:
182
160
  - - ~>
183
161
  - !ruby/object:Gem::Version
@@ -185,7 +163,6 @@ dependencies:
185
163
  type: :development
186
164
  prerelease: false
187
165
  version_requirements: !ruby/object:Gem::Requirement
188
- none: false
189
166
  requirements:
190
167
  - - ~>
191
168
  - !ruby/object:Gem::Version
@@ -193,7 +170,6 @@ dependencies:
193
170
  - !ruby/object:Gem::Dependency
194
171
  name: yard
195
172
  requirement: !ruby/object:Gem::Requirement
196
- none: false
197
173
  requirements:
198
174
  - - ~>
199
175
  - !ruby/object:Gem::Version
@@ -201,7 +177,6 @@ dependencies:
201
177
  type: :development
202
178
  prerelease: false
203
179
  version_requirements: !ruby/object:Gem::Requirement
204
- none: false
205
180
  requirements:
206
181
  - - ~>
207
182
  - !ruby/object:Gem::Version
@@ -209,7 +184,6 @@ dependencies:
209
184
  - !ruby/object:Gem::Dependency
210
185
  name: kramdown
211
186
  requirement: !ruby/object:Gem::Requirement
212
- none: false
213
187
  requirements:
214
188
  - - ~>
215
189
  - !ruby/object:Gem::Version
@@ -217,7 +191,6 @@ dependencies:
217
191
  type: :development
218
192
  prerelease: false
219
193
  version_requirements: !ruby/object:Gem::Requirement
220
- none: false
221
194
  requirements:
222
195
  - - ~>
223
196
  - !ruby/object:Gem::Version
@@ -242,18 +215,59 @@ files:
242
215
  - LICENSE
243
216
  - README.md
244
217
  - Rakefile
218
+ - Vagrantfile
245
219
  - example/Procfile
246
220
  - example/http_0mq.rb
247
221
  - example/lobster.ru
248
222
  - example/mongrel2.conf
249
223
  - example/tmp/.gitkeep
250
224
  - example/uploading.ru
225
+ - kitchen/Rakefile
226
+ - kitchen/auth.cfg
227
+ - kitchen/cookbooks/build-essential/README.md
228
+ - kitchen/cookbooks/build-essential/metadata.json
229
+ - kitchen/cookbooks/build-essential/metadata.rb
230
+ - kitchen/cookbooks/build-essential/recipes/default.rb
231
+ - kitchen/cookbooks/essential/CHANGELOG.md
232
+ - kitchen/cookbooks/essential/README.md
233
+ - kitchen/cookbooks/essential/metadata.json
234
+ - kitchen/cookbooks/essential/metadata.rb
235
+ - kitchen/cookbooks/essential/recipes/default.rb
236
+ - kitchen/cookbooks/m2r/CHANGELOG.md
237
+ - kitchen/cookbooks/m2r/README.md
238
+ - kitchen/cookbooks/m2r/metadata.json
239
+ - kitchen/cookbooks/m2r/metadata.rb
240
+ - kitchen/cookbooks/m2r/recipes/default.rb
241
+ - kitchen/cookbooks/mongrel2/CHANGELOG.md
242
+ - kitchen/cookbooks/mongrel2/README.md
243
+ - kitchen/cookbooks/mongrel2/metadata.json
244
+ - kitchen/cookbooks/mongrel2/metadata.rb
245
+ - kitchen/cookbooks/mongrel2/recipes/default.rb
246
+ - kitchen/cookbooks/ruby-build/README.md
247
+ - kitchen/cookbooks/ruby-build/definitions/ruby.rb
248
+ - kitchen/cookbooks/ruby-build/metadata.json
249
+ - kitchen/cookbooks/ruby-build/metadata.rb
250
+ - kitchen/cookbooks/ruby-build/recipes/default.rb
251
+ - kitchen/cookbooks/zmq/CHANGELOG.md
252
+ - kitchen/cookbooks/zmq/README.md
253
+ - kitchen/cookbooks/zmq/metadata.json
254
+ - kitchen/cookbooks/zmq/metadata.rb
255
+ - kitchen/cookbooks/zmq/recipes/default.rb
256
+ - kitchen/data_bags/README
257
+ - kitchen/data_bags/vagrant.key
258
+ - kitchen/data_bags/vagrant.pub
259
+ - kitchen/m2r.cfg
260
+ - kitchen/nodes/m2r.local.json
261
+ - kitchen/roles/.gitkeep
262
+ - kitchen/site-cookbooks/README
251
263
  - lib/m2r.rb
252
264
  - lib/m2r/connection.rb
253
265
  - lib/m2r/connection_factory.rb
254
266
  - lib/m2r/handler.rb
255
267
  - lib/m2r/headers.rb
256
268
  - lib/m2r/http/close.rb
269
+ - lib/m2r/multithread_handler.rb
270
+ - lib/m2r/parser.rb
257
271
  - lib/m2r/rack_handler.rb
258
272
  - lib/m2r/reply.rb
259
273
  - lib/m2r/request.rb
@@ -277,40 +291,34 @@ files:
277
291
  - test/unit/handler_test.rb
278
292
  - test/unit/headers_test.rb
279
293
  - test/unit/m2r_test.rb
294
+ - test/unit/multithread_handler_test.rb
280
295
  - test/unit/rack_handler_test.rb
281
- - test/unit/request_test.rb
296
+ - test/unit/request_parsing_test.rb
282
297
  - test/unit/response_test.rb
283
298
  - tmp/.gitkeep
284
299
  homepage: http://github.com/perplexes/m2r
285
300
  licenses:
286
301
  - MIT
302
+ metadata: {}
287
303
  post_install_message:
288
304
  rdoc_options: []
289
305
  require_paths:
290
306
  - lib
291
307
  required_ruby_version: !ruby/object:Gem::Requirement
292
- none: false
293
308
  requirements:
294
- - - ! '>='
309
+ - - '>='
295
310
  - !ruby/object:Gem::Version
296
311
  version: '0'
297
- segments:
298
- - 0
299
- hash: 2084611234703019484
300
312
  required_rubygems_version: !ruby/object:Gem::Requirement
301
- none: false
302
313
  requirements:
303
- - - ! '>='
314
+ - - '>'
304
315
  - !ruby/object:Gem::Version
305
- version: '0'
306
- segments:
307
- - 0
308
- hash: 2084611234703019484
316
+ version: 1.3.1
309
317
  requirements: []
310
318
  rubyforge_project:
311
- rubygems_version: 1.8.23
319
+ rubygems_version: 2.1.5
312
320
  signing_key:
313
- specification_version: 3
321
+ specification_version: 4
314
322
  summary: Mongrel2 interface and handler library for Ruby.
315
323
  test_files:
316
324
  - test/acceptance/examples_test.rb
@@ -324,7 +332,8 @@ test_files:
324
332
  - test/unit/handler_test.rb
325
333
  - test/unit/headers_test.rb
326
334
  - test/unit/m2r_test.rb
335
+ - test/unit/multithread_handler_test.rb
327
336
  - test/unit/rack_handler_test.rb
328
- - test/unit/request_test.rb
337
+ - test/unit/request_parsing_test.rb
329
338
  - test/unit/response_test.rb
330
339
  has_rdoc: