mongrel2 0.44.0 → 0.45.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26139efa603e33508d75a1ce39b158d5c3c9718a
4
- data.tar.gz: e4cd15d5ff533a8139f6c3b0601c6a9ec7ae1b7a
3
+ metadata.gz: 1ef619e111641754b0668683b6ef6c81f28c3134
4
+ data.tar.gz: 28a063bc82ad32cd833f5ad892de69e468ddc032
5
5
  SHA512:
6
- metadata.gz: a036ca5e4bac09a1a03d1c4c75b8451c543c081384a8407f3c27ae8acd00dc477909edb7d03470ada71613c92961f944be442ab4bcbd0a02a5144c026ef4364d
7
- data.tar.gz: 1ce62fe189f10d61946a01e7d9857da78359668bc943ace456b46ca3a55b183084b403c9629d3b1cf326245cd79d6aaf21f167a4a819e47f9085aa965bac3af7
6
+ metadata.gz: deb67e014b158c381a4db03aba4cca3f6332b13765f54a6937be8f24b013250f86005ed51f6cc596b612daa464fc1e08a319286e6d938c1a87ae655662115bc9
7
+ data.tar.gz: 317de2b99b390406841bf76954413dc2053045f54cd1d0d9feb05221f75f7e1ef3b4cf4d1009255dd53baa597366de82744f899f2c54c0217da6eb9a513e057a
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,10 +1,315 @@
1
+ 2016-11-03 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * History.rdoc, lib/mongrel2.rb:
4
+ Bump minor version, update history
5
+ [0ef122fb3bb8] [github/master, tip]
6
+
7
+ * lib/mongrel2/httprequest.rb, mongrel2.gemspec,
8
+ spec/mongrel2/httprequest_spec.rb:
9
+ Guard against HTTP requests with a nil body.size.
10
+ [ac7a50bb284d]
11
+
12
+ * lib/mongrel2/connection.rb, spec/mongrel2/connection_spec.rb:
13
+ Handle recv errors that don't set a ZMQ.error
14
+ [7650088eeaa1]
15
+
16
+ * .gems, .ruby-gemset, .ruby-version, .rvmrc, Rakefile:
17
+ Bump minimum Ruby version, update deps and build files
18
+ [39e753039b65]
19
+
20
+ * spec/mongrel2/config/directory_spec.rb,
21
+ spec/mongrel2/config/dsl_spec.rb,
22
+ spec/mongrel2/config/handler_spec.rb,
23
+ spec/mongrel2/config/log_spec.rb,
24
+ spec/mongrel2/config/route_spec.rb,
25
+ spec/mongrel2/config/server_spec.rb, spec/mongrel2/config_spec.rb,
26
+ spec/mongrel2/control_spec.rb, spec/mongrel2/handler_spec.rb,
27
+ spec/mongrel2/httprequest_spec.rb,
28
+ spec/mongrel2/httpresponse_spec.rb, spec/mongrel2/table_spec.rb,
29
+ spec/mongrel2/websocket_spec.rb:
30
+ Update spec logging for newer Loggability versions
31
+ [cb9adc83077b]
32
+
33
+ * lib/mongrel2/config.rb:
34
+ Make Mongrel2::Config a proper abstract subclass of Sequel::Model.
35
+
36
+ diff --git a/lib/mongrel2/connection.rb
37
+ b/lib/mongrel2/connection.rb
38
+ --- a/lib/mongrel2/connection.rb +++ b/lib/mongrel2/connection.rb @@
39
+ -104,7 +104,7 @@ class Mongrel2::Connection self.check_closed
40
+
41
+ self.log.debug "Fetching next request (PULL)"
42
+ - data = self.request_sock.recv or raise( ZMQ.error ) + data =
43
+ self.request_sock.recv or raise( ZMQ.error || 'unknown error' )
44
+ self.log.debug " got %d bytes of %s request data" % [ data.bytesize,
45
+ data.encoding.name ] return data end diff --git
46
+ a/lib/mongrel2/httprequest.rb b/lib/mongrel2/httprequest.rb
47
+ --- a/lib/mongrel2/httprequest.rb +++ b/lib/mongrel2/httprequest.rb
48
+ @@ -109,12 +109,14 @@ class Mongrel2::HTTPRequest < Mongrel2::
49
+
50
+ ### Return the details to include in the contents of the #inspected
51
+ object. def inspect_details + body_size = self.body.size || 0 +
52
+ return %Q{[%s] "%s %s %s" -- %0.2fK body} % [
53
+ self.headers.x_forwarded_for, self.headers[:method],
54
+ self.headers.uri, self.headers.version,
55
+ - (self.body.size / 1024.0), + (body_size / 1024.0), ] end
56
+
57
+ diff --git a/spec/mongrel2/config/directory_spec.rb
58
+ b/spec/mongrel2/config/directory_spec.rb
59
+ --- a/spec/mongrel2/config/directory_spec.rb +++
60
+ b/spec/mongrel2/config/directory_spec.rb @@ -14,7 +14,6 @@ require
61
+ 'mongrel2/config' describe Mongrel2::Config::Directory do
62
+
63
+ before( :all ) do
64
+ - setup_logging() setup_config_db() end
65
+
66
+ @@ -26,10 +25,6 @@ describe Mongrel2::Config::Directory do ) end
67
+
68
+ - after( :all ) do
69
+ - reset_logging()
70
+ - end
71
+ -
72
+
73
+ it "is valid if its base, index_file, and default_ctype are all
74
+ valid" do expect( @dir ).to be_valid() diff --git
75
+ a/spec/mongrel2/config/dsl_spec.rb
76
+ b/spec/mongrel2/config/dsl_spec.rb
77
+ --- a/spec/mongrel2/config/dsl_spec.rb +++
78
+ b/spec/mongrel2/config/dsl_spec.rb @@ -16,7 +16,6 @@ describe
79
+ Mongrel2::Config::DSL do include described_class
80
+
81
+ before( :all ) do
82
+ - setup_logging() setup_config_db() end
83
+
84
+ @@ -24,10 +23,6 @@ describe Mongrel2::Config::DSL do
85
+ clean_config_db() end
86
+
87
+ - after( :all ) do
88
+ - reset_logging()
89
+ - end
90
+ -
91
+
92
+ describe 'servers' do it "can generate a default server config using
93
+ the 'server' declarative" do diff --git
94
+ a/spec/mongrel2/config/handler_spec.rb
95
+ b/spec/mongrel2/config/handler_spec.rb
96
+ --- a/spec/mongrel2/config/handler_spec.rb +++
97
+ b/spec/mongrel2/config/handler_spec.rb @@ -14,7 +14,6 @@ require
98
+ 'mongrel2/config' describe Mongrel2::Config::Handler do
99
+
100
+ before( :all ) do
101
+ - setup_logging() setup_config_db() end
102
+
103
+ @@ -28,9 +27,7 @@ describe Mongrel2::Config::Handler do ) end
104
+
105
+ - after( :all ) do
106
+ - reset_logging()
107
+ - end +
108
+
109
+ it "is valid if its specs and identities are all valid" do expect(
110
+ @handler ).to be_valid() diff --git
111
+ a/spec/mongrel2/config/log_spec.rb
112
+ b/spec/mongrel2/config/log_spec.rb
113
+ --- a/spec/mongrel2/config/log_spec.rb +++
114
+ b/spec/mongrel2/config/log_spec.rb @@ -16,14 +16,9 @@ require
115
+ 'mongrel2/config' describe Mongrel2::Config::Log do
116
+
117
+ before( :all ) do
118
+ - setup_logging() setup_config_db() end
119
+
120
+ - after( :all ) do
121
+ - reset_logging()
122
+ - end
123
+ -
124
+
125
+ it "has a convenience method for writing to the commit log" do what
126
+ = 'load etc/mongrel2.conf' diff --git
127
+ a/spec/mongrel2/config/route_spec.rb
128
+ b/spec/mongrel2/config/route_spec.rb
129
+ --- a/spec/mongrel2/config/route_spec.rb +++
130
+ b/spec/mongrel2/config/route_spec.rb @@ -14,7 +14,6 @@ require
131
+ 'mongrel2/config' describe Mongrel2::Config::Route do
132
+
133
+ before( :all ) do
134
+ - setup_logging() setup_config_db() end
135
+
136
+ @@ -22,10 +21,6 @@ describe Mongrel2::Config::Route do @route =
137
+ Mongrel2::Config::Route.new( :path => '' ) end
138
+
139
+ - after( :all ) do
140
+ - reset_logging()
141
+ - end
142
+ -
143
+
144
+ it "returns a Mongrel2::Config::Directory if its target_type is
145
+ 'dir'" do dir = Mongrel2::Config::Directory.create( diff --git
146
+ a/spec/mongrel2/config/server_spec.rb
147
+ b/spec/mongrel2/config/server_spec.rb
148
+ --- a/spec/mongrel2/config/server_spec.rb +++
149
+ b/spec/mongrel2/config/server_spec.rb @@ -14,7 +14,6 @@ require
150
+ 'mongrel2/config' describe Mongrel2::Config::Server do
151
+
152
+ before( :all ) do
153
+ - setup_logging() setup_config_db() end
154
+
155
+ @@ -30,10 +29,6 @@ describe Mongrel2::Config::Server do ) end
156
+
157
+ - after( :all ) do
158
+ - reset_logging()
159
+ - end
160
+ -
161
+
162
+ it "is valid if its access_log, error_log, pid_file, default_host,
163
+ and port are all valid" do expect( @server ).to be_valid() diff
164
+ --git a/spec/mongrel2/config_spec.rb b/spec/mongrel2/config_spec.rb
165
+ --- a/spec/mongrel2/config_spec.rb +++ b/spec/mongrel2/config_spec.rb
166
+ @@ -13,12 +13,10 @@ require 'mongrel2/config' describe
167
+ Mongrel2::Config do
168
+
169
+ before( :all ) do
170
+ - setup_logging() setup_config_db() end
171
+
172
+ after( :all ) do
173
+ - reset_logging() File.delete( 'config-spec.sqlite' ) if File.exist?(
174
+ 'config.spec.sqlite' ) end
175
+
176
+ diff --git a/spec/mongrel2/control_spec.rb
177
+ b/spec/mongrel2/control_spec.rb
178
+ --- a/spec/mongrel2/control_spec.rb +++
179
+ b/spec/mongrel2/control_spec.rb @@ -13,7 +13,6 @@ require
180
+ 'mongrel2/control' describe Mongrel2::Control do
181
+
182
+ before( :all ) do
183
+ - setup_logging() end
184
+
185
+ before( :each ) do @@ -30,7 +29,6 @@ describe Mongrel2::Control do
186
+
187
+ after( :all ) do Mongrel2.instance_variable_set( :@zmq_ctx, nil )
188
+ - reset_logging() end
189
+
190
+ diff --git a/spec/mongrel2/handler_spec.rb
191
+ b/spec/mongrel2/handler_spec.rb
192
+ --- a/spec/mongrel2/handler_spec.rb +++
193
+ b/spec/mongrel2/handler_spec.rb @@ -35,14 +35,9 @@ describe
194
+ Mongrel2::Handler do
195
+
196
+ before( :all ) do
197
+ - setup_logging() setup_config_db() end
198
+
199
+ - after( :all ) do
200
+ - reset_logging()
201
+ - end
202
+ -
203
+
204
+ # Ensure 0MQ never actually gets called before( :each ) do diff
205
+ --git a/spec/mongrel2/httprequest_spec.rb
206
+ b/spec/mongrel2/httprequest_spec.rb
207
+ --- a/spec/mongrel2/httprequest_spec.rb +++
208
+ b/spec/mongrel2/httprequest_spec.rb @@ -17,7 +17,6 @@ require
209
+ 'mongrel2/httpresponse' describe Mongrel2::HTTPRequest do
210
+
211
+ before( :all ) do
212
+ - setup_logging() @factory = Mongrel2::RequestFactory.new( route:
213
+ '/glamour' ) end
214
+
215
+ @@ -25,10 +24,6 @@ describe Mongrel2::HTTPRequest do @req =
216
+ @factory.get( '/glamour/test' ) end
217
+
218
+ - after( :all ) do
219
+ - reset_logging()
220
+ - end
221
+ -
222
+
223
+ it "can create an HTTPResponse for itself" do result = @req.response
224
+ diff --git a/spec/mongrel2/httpresponse_spec.rb
225
+ b/spec/mongrel2/httpresponse_spec.rb
226
+ --- a/spec/mongrel2/httpresponse_spec.rb +++
227
+ b/spec/mongrel2/httpresponse_spec.rb @@ -14,18 +14,10 @@ require
228
+ 'mongrel2/httpresponse'
229
+
230
+ describe Mongrel2::HTTPResponse do
231
+
232
+ - before( :all ) do
233
+ - setup_logging()
234
+ - end
235
+ -
236
+ before( :each ) do @response = Mongrel2::HTTPResponse.new(
237
+ TEST_UUID, 299 ) end
238
+
239
+ - after( :all ) do
240
+ - reset_logging()
241
+ - end
242
+ -
243
+
244
+ it "has a headers table" do expect( @response.headers ).to be_a(
245
+ Mongrel2::Table ) diff --git a/spec/mongrel2/table_spec.rb
246
+ b/spec/mongrel2/table_spec.rb
247
+ --- a/spec/mongrel2/table_spec.rb +++ b/spec/mongrel2/table_spec.rb
248
+ @@ -12,19 +12,10 @@ require 'mongrel2/table'
249
+
250
+ describe Mongrel2::Table do
251
+
252
+ -
253
+ - before( :all ) do
254
+ - setup_logging()
255
+ - end
256
+ -
257
+ before( :each ) do @table = Mongrel2::Table.new end
258
+
259
+ - after( :all ) do
260
+ - reset_logging()
261
+ - end
262
+ -
263
+
264
+
265
+ it "allows setting/fetching case-insensitively" do diff --git
266
+ a/spec/mongrel2/websocket_spec.rb b/spec/mongrel2/websocket_spec.rb
267
+ --- a/spec/mongrel2/websocket_spec.rb +++
268
+ b/spec/mongrel2/websocket_spec.rb @@ -19,13 +19,9 @@ require
269
+ 'mongrel2/websocket' describe Mongrel2::WebSocket do
270
+
271
+ before( :all ) do
272
+ - setup_logging() @factory = Mongrel2::WebSocketFrameFactory.new(
273
+ route: '/websock' ) end
274
+
275
+ - after( :all ) do
276
+ - reset_logging()
277
+ - end
278
+
279
+ # Data for testing payload of binary frames BINARY_DATA =
280
+ [8f14a1070996]
281
+
282
+ 2016-01-25 Michael Granger <ged@FaerieMUD.org>
283
+
284
+ * lib/mongrel2/connection.rb, spec/mongrel2/connection_spec.rb:
285
+ Raise ZMQ::Error on nil return from Connection#recv
286
+ [1a53994c72a0]
287
+
288
+ 2016-01-20 Michael Granger <ged@FaerieMUD.org>
289
+
290
+ * README.rdoc:
291
+ Update the copyright years in the README
292
+ [2e78a59ae16d]
293
+
294
+ * .hgtags:
295
+ Added tag v0.44.0 for changeset 56fc8d5a0a66
296
+ [b4239188fb4d]
297
+
298
+ * .hgsigs:
299
+ Added signature for changeset 796ca99139a6
300
+ [56fc8d5a0a66] [v0.44.0]
301
+
302
+ * History.rdoc, lib/mongrel2.rb:
303
+ Bump the minor version, update history.
304
+ [796ca99139a6]
305
+
1
306
  2016-01-20 Mahlon E. Smith <mahlon@martini.nu>
2
307
 
3
308
  * lib/mongrel2/handler.rb, lib/mongrel2/request.rb, spec/helpers.rb,
4
309
  spec/mongrel2/config/dsl_spec.rb, spec/mongrel2/handler_spec.rb:
5
310
  Ensure that Mongrel2 spool files are removed after the lifetime of a
6
311
  request.
7
- [250431675079] [github/master, tip]
312
+ [250431675079]
8
313
 
9
314
  2015-12-30 Mahlon E. Smith <mahlon@martini.nu>
10
315
 
data/History.rdoc CHANGED
@@ -1,3 +1,12 @@
1
+ == v0.45.0 [2016-11-03] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Bugfixes:
4
+
5
+ - Guard against HTTP requests with a nil body.size.
6
+ - Make Mongrel2::Config a proper abstract subclass of Sequel::Model.
7
+ - Raise ZMQ::Error on nil return from Connection#recv
8
+
9
+
1
10
  == v0.44.0 [2016-01-20] Mahlon E. Smith <mahlon@martini.nu>
2
11
 
3
12
  Enhancements:
data/README.rdoc CHANGED
@@ -173,7 +173,7 @@ This implementation differs from them in several ways:
173
173
 
174
174
  == License
175
175
 
176
- Copyright (c) 2011-2015, Michael Granger
176
+ Copyright (c) 2011-2016, Michael Granger
177
177
  All rights reserved.
178
178
 
179
179
  Redistribution and use in source and binary forms, with or without
data/Rakefile CHANGED
@@ -30,18 +30,18 @@ hoespec = Hoe.spec 'mongrel2' do
30
30
  self.dependency 'yajl-ruby', '~> 1.0'
31
31
  self.dependency 'trollop', '~> 2.0'
32
32
  self.dependency 'sysexits', '~> 1.1'
33
- self.dependency 'rbczmq', '~> 1.7'
34
- self.dependency 'loggability','~> 0.5'
33
+ self.dependency 'rbczmq', '~> 1.7'
34
+ self.dependency 'loggability', '~> 0.11'
35
35
  self.dependency 'sqlite3', '~> 1.3'
36
36
  self.dependency 'libxml-ruby', '~> 2.7'
37
37
 
38
- self.dependency 'amalgalite', '~> 1.3', :developer
39
- self.dependency 'configurability', '~> 2.0', :developer
40
- self.dependency 'simplecov', '~> 0.7', :developer
41
- self.dependency 'hoe-deveiate', '~> 0.3', :developer
38
+ self.dependency 'amalgalite', '~> 1.5', :developer
39
+ self.dependency 'configurability', '~> 2.2', :developer
40
+ self.dependency 'simplecov', '~> 0.12', :developer
41
+ self.dependency 'hoe-deveiate', '~> 0.8', :developer
42
42
  self.dependency 'rdoc-generator-fivefish', '~> 0', :development
43
43
 
44
- self.require_ruby_version( '>=2.0.0' )
44
+ self.require_ruby_version( '>=2.2.0' )
45
45
  self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
46
46
  self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
47
47
  self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
data/lib/mongrel2.rb CHANGED
@@ -22,13 +22,13 @@ module Mongrel2
22
22
  log_as :mongrel2
23
23
 
24
24
 
25
- abort "\n\n>>> Mongrel2 requires Ruby 1.9.2 or later. <<<\n\n" if RUBY_VERSION < '1.9.2'
25
+ abort "\n\n>>> Mongrel2 requires Ruby 2.2 or later. <<<\n\n" if RUBY_VERSION < '2.2.0'
26
26
 
27
27
  # Library version constant
28
- VERSION = '0.44.0'
28
+ VERSION = '0.45.0'
29
29
 
30
30
  # Version-control revision constant
31
- REVISION = %q$Revision: 796ca99139a6 $
31
+ REVISION = %q$Revision: 0ef122fb3bb8 $
32
32
 
33
33
 
34
34
  require 'mongrel2/constants'
@@ -32,6 +32,12 @@ require 'mongrel2/constants'
32
32
 
33
33
  module Mongrel2
34
34
 
35
+ # Initialize the Cozy::Postgres::Model class as an abstract model class (i.e.,
36
+ # without a default dataset). This prevents it from looking for a table called
37
+ # `models`, and makes inheriting it more straightforward.
38
+ # Thanks to Jeremy Evans for the suggestion.
39
+ Config = Class.new( Sequel::Model )
40
+
35
41
  # The base Mongrel2 database-backed configuration class. It's a subclass of Sequel::Model, so
36
42
  # you'll first need to be familiar with Sequel (http://sequel.rubyforge.org/) and
37
43
  # especially its Sequel::Model ORM.
@@ -45,7 +51,7 @@ module Mongrel2
45
51
  # == References
46
52
  # * http://mongrel2.org/static/book-finalch4.html#x6-260003.4
47
53
  #
48
- class Config < Sequel::Model
54
+ class Config
49
55
  extend Loggability
50
56
  include Mongrel2::Constants
51
57
 
@@ -129,12 +135,14 @@ module Mongrel2
129
135
  end
130
136
 
131
137
  if self == Mongrel2::Config
132
- self.log.debug "Resetting database connection for %d config classes to: %p" %
133
- [ self.descendents.length, newdb ]
134
138
  newdb.logger = Loggability[ Mongrel2 ].proxy_for( newdb )
135
139
  newdb.sql_log_level = :debug
136
140
 
137
- self.descendents.each {|subclass| subclass.db = newdb }
141
+ self.descendents.each do |subclass|
142
+ self.log.debug "Resetting database connection for %p to: %p" %
143
+ [ subclass, newdb ]
144
+ subclass.db = newdb
145
+ end
138
146
  end
139
147
  end
140
148
 
@@ -104,7 +104,7 @@ class Mongrel2::Connection
104
104
  self.check_closed
105
105
 
106
106
  self.log.debug "Fetching next request (PULL)"
107
- data = self.request_sock.recv
107
+ data = self.request_sock.recv or raise( ZMQ.error || 'unknown error' )
108
108
  self.log.debug " got %d bytes of %s request data" % [ data.bytesize, data.encoding.name ]
109
109
  return data
110
110
  end
@@ -109,12 +109,14 @@ class Mongrel2::HTTPRequest < Mongrel2::Request
109
109
 
110
110
  ### Return the details to include in the contents of the #inspected object.
111
111
  def inspect_details
112
+ body_size = self.body.size || 0
113
+
112
114
  return %Q{[%s] "%s %s %s" -- %0.2fK body} % [
113
115
  self.headers.x_forwarded_for,
114
116
  self.headers[:method],
115
117
  self.headers.uri,
116
118
  self.headers.version,
117
- (self.body.size / 1024.0),
119
+ (body_size / 1024.0),
118
120
  ]
119
121
  end
120
122
 
@@ -14,7 +14,6 @@ require 'mongrel2/config'
14
14
  describe Mongrel2::Config::Directory do
15
15
 
16
16
  before( :all ) do
17
- setup_logging()
18
17
  setup_config_db()
19
18
  end
20
19
 
@@ -26,10 +25,6 @@ describe Mongrel2::Config::Directory do
26
25
  )
27
26
  end
28
27
 
29
- after( :all ) do
30
- reset_logging()
31
- end
32
-
33
28
 
34
29
  it "is valid if its base, index_file, and default_ctype are all valid" do
35
30
  expect( @dir ).to be_valid()
@@ -16,7 +16,6 @@ describe Mongrel2::Config::DSL do
16
16
  include described_class
17
17
 
18
18
  before( :all ) do
19
- setup_logging()
20
19
  setup_config_db()
21
20
  end
22
21
 
@@ -24,10 +23,6 @@ describe Mongrel2::Config::DSL do
24
23
  clean_config_db()
25
24
  end
26
25
 
27
- after( :all ) do
28
- reset_logging()
29
- end
30
-
31
26
 
32
27
  describe 'servers' do
33
28
  it "can generate a default server config using the 'server' declarative" do
@@ -14,7 +14,6 @@ require 'mongrel2/config'
14
14
  describe Mongrel2::Config::Handler do
15
15
 
16
16
  before( :all ) do
17
- setup_logging()
18
17
  setup_config_db()
19
18
  end
20
19
 
@@ -28,9 +27,7 @@ describe Mongrel2::Config::Handler do
28
27
  )
29
28
  end
30
29
 
31
- after( :all ) do
32
- reset_logging()
33
- end
30
+
34
31
 
35
32
  it "is valid if its specs and identities are all valid" do
36
33
  expect( @handler ).to be_valid()
@@ -16,14 +16,9 @@ require 'mongrel2/config'
16
16
  describe Mongrel2::Config::Log do
17
17
 
18
18
  before( :all ) do
19
- setup_logging()
20
19
  setup_config_db()
21
20
  end
22
21
 
23
- after( :all ) do
24
- reset_logging()
25
- end
26
-
27
22
 
28
23
  it "has a convenience method for writing to the commit log" do
29
24
  what = 'load etc/mongrel2.conf'
@@ -14,7 +14,6 @@ require 'mongrel2/config'
14
14
  describe Mongrel2::Config::Route do
15
15
 
16
16
  before( :all ) do
17
- setup_logging()
18
17
  setup_config_db()
19
18
  end
20
19
 
@@ -22,10 +21,6 @@ describe Mongrel2::Config::Route do
22
21
  @route = Mongrel2::Config::Route.new( :path => '' )
23
22
  end
24
23
 
25
- after( :all ) do
26
- reset_logging()
27
- end
28
-
29
24
 
30
25
  it "returns a Mongrel2::Config::Directory if its target_type is 'dir'" do
31
26
  dir = Mongrel2::Config::Directory.create(
@@ -14,7 +14,6 @@ require 'mongrel2/config'
14
14
  describe Mongrel2::Config::Server do
15
15
 
16
16
  before( :all ) do
17
- setup_logging()
18
17
  setup_config_db()
19
18
  end
20
19
 
@@ -30,10 +29,6 @@ describe Mongrel2::Config::Server do
30
29
  )
31
30
  end
32
31
 
33
- after( :all ) do
34
- reset_logging()
35
- end
36
-
37
32
 
38
33
  it "is valid if its access_log, error_log, pid_file, default_host, and port are all valid" do
39
34
  expect( @server ).to be_valid()
@@ -13,12 +13,10 @@ require 'mongrel2/config'
13
13
  describe Mongrel2::Config do
14
14
 
15
15
  before( :all ) do
16
- setup_logging()
17
16
  setup_config_db()
18
17
  end
19
18
 
20
19
  after( :all ) do
21
- reset_logging()
22
20
  File.delete( 'config-spec.sqlite' ) if File.exist?( 'config.spec.sqlite' )
23
21
  end
24
22
 
@@ -14,7 +14,6 @@ describe Mongrel2::Connection do
14
14
  include Mongrel2::Config::DSL
15
15
 
16
16
  before( :all ) do
17
- setup_logging()
18
17
  end
19
18
 
20
19
  # Ensure 0MQ never actually gets called
@@ -29,10 +28,6 @@ describe Mongrel2::Connection do
29
28
  Mongrel2.instance_variable_set( :@zmq_ctx, nil )
30
29
  end
31
30
 
32
- after( :all ) do
33
- reset_logging()
34
- end
35
-
36
31
 
37
32
  it "doesn't connect to the endpoints when it's created" do
38
33
  expect( @conn.instance_variable_get( :@request_sock ) ).to be_nil()
@@ -124,6 +119,22 @@ describe Mongrel2::Connection do
124
119
  expect( @conn.receive ).to be_a( Mongrel2::Request )
125
120
  end
126
121
 
122
+ it "handles a socket error while receiving" do
123
+ expect( @request_sock ).to receive( :recv ).and_return( nil )
124
+ expect( ZMQ ).to receive( :error ).and_return( ZMQ::Error.new("something bad happened") )
125
+ expect {
126
+ @conn.receive
127
+ }.to raise_error( ZMQ::Error, 'something bad happened' )
128
+ end
129
+
130
+ it "handles a socket error that doesn't set an error message while receiving" do
131
+ expect( @request_sock ).to receive( :recv ).and_return( nil )
132
+ expect( ZMQ ).to receive( :error ).and_return( nil )
133
+ expect {
134
+ @conn.receive
135
+ }.to raise_error( RuntimeError, 'unknown error' )
136
+ end
137
+
127
138
  it "can write raw response messages with a TNetString header onto the response_sock" do
128
139
  expect( @response_sock ).to receive( :send ).with( "#{TEST_UUID} 1:8, the data" )
129
140
  @conn.send( TEST_UUID, 8, "the data" )
@@ -13,7 +13,6 @@ require 'mongrel2/control'
13
13
  describe Mongrel2::Control do
14
14
 
15
15
  before( :all ) do
16
- setup_logging()
17
16
  end
18
17
 
19
18
  before( :each ) do
@@ -30,7 +29,6 @@ describe Mongrel2::Control do
30
29
 
31
30
  after( :all ) do
32
31
  Mongrel2.instance_variable_set( :@zmq_ctx, nil )
33
- reset_logging()
34
32
  end
35
33
 
36
34
 
@@ -35,14 +35,9 @@ describe Mongrel2::Handler do
35
35
 
36
36
 
37
37
  before( :all ) do
38
- setup_logging()
39
38
  setup_config_db()
40
39
  end
41
40
 
42
- after( :all ) do
43
- reset_logging()
44
- end
45
-
46
41
 
47
42
  # Ensure 0MQ never actually gets called
48
43
  before( :each ) do
@@ -17,7 +17,6 @@ require 'mongrel2/httpresponse'
17
17
  describe Mongrel2::HTTPRequest do
18
18
 
19
19
  before( :all ) do
20
- setup_logging()
21
20
  @factory = Mongrel2::RequestFactory.new( route: '/glamour' )
22
21
  end
23
22
 
@@ -25,10 +24,6 @@ describe Mongrel2::HTTPRequest do
25
24
  @req = @factory.get( '/glamour/test' )
26
25
  end
27
26
 
28
- after( :all ) do
29
- reset_logging()
30
- end
31
-
32
27
 
33
28
  it "can create an HTTPResponse for itself" do
34
29
  result = @req.response
@@ -83,6 +78,13 @@ describe Mongrel2::HTTPRequest do
83
78
  expect( @req ).to be_secure()
84
79
  end
85
80
 
81
+ it "doesn't error when inspecting a bodiless instance" do
82
+ # I don't remember what circumstances this is guarding against, so this is a bit
83
+ # artificial
84
+ @req.body = double( "sizeless body", size: nil )
85
+ expect( @req.inspect ).to match( /0.00K body/ )
86
+ end
87
+
86
88
 
87
89
  describe "header convenience methods" do
88
90
 
@@ -14,18 +14,10 @@ require 'mongrel2/httpresponse'
14
14
 
15
15
  describe Mongrel2::HTTPResponse do
16
16
 
17
- before( :all ) do
18
- setup_logging()
19
- end
20
-
21
17
  before( :each ) do
22
18
  @response = Mongrel2::HTTPResponse.new( TEST_UUID, 299 )
23
19
  end
24
20
 
25
- after( :all ) do
26
- reset_logging()
27
- end
28
-
29
21
 
30
22
  it "has a headers table" do
31
23
  expect( @response.headers ).to be_a( Mongrel2::Table )
@@ -12,19 +12,10 @@ require 'mongrel2/table'
12
12
 
13
13
  describe Mongrel2::Table do
14
14
 
15
-
16
- before( :all ) do
17
- setup_logging()
18
- end
19
-
20
15
  before( :each ) do
21
16
  @table = Mongrel2::Table.new
22
17
  end
23
18
 
24
- after( :all ) do
25
- reset_logging()
26
- end
27
-
28
19
 
29
20
 
30
21
  it "allows setting/fetching case-insensitively" do
@@ -19,13 +19,9 @@ require 'mongrel2/websocket'
19
19
  describe Mongrel2::WebSocket do
20
20
 
21
21
  before( :all ) do
22
- setup_logging()
23
22
  @factory = Mongrel2::WebSocketFrameFactory.new( route: '/websock' )
24
23
  end
25
24
 
26
- after( :all ) do
27
- reset_logging()
28
- end
29
25
 
30
26
  # Data for testing payload of binary frames
31
27
  BINARY_DATA =
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongrel2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.44.0
4
+ version: 0.45.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -10,27 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQwwCgYDVQQDDANnZWQx
13
+ MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA+MQwwCgYDVQQDDANnZWQx
14
14
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
15
- HhcNMTUwNDAxMjEyNDEzWhcNMTYwMzMxMjEyNDEzWjA+MQwwCgYDVQQDDANnZWQx
15
+ HhcNMTYwODIwMTgxNzQyWhcNMTcwODIwMTgxNzQyWjA+MQwwCgYDVQQDDANnZWQx
16
16
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
17
- ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDb92mkyYwuGBg1oRxt2tkH
18
- +Uo3LAsaL/APBfSLzy8o3+B3AUHKCjMUaVeBoZdWtMHB75X3VQlvXfZMyBxj59Vo
19
- cDthr3zdao4HnyrzAIQf7BO5Y8KBwVD+yyXCD/N65TTwqsQnO3ie7U5/9ut1rnNr
20
- OkOzAscMwkfQxBkXDzjvAWa6UF4c5c9kR/T79iA21kDx9+bUMentU59aCJtUcbxa
21
- 7kcKJhPEYsk4OdxR9q2dphNMFDQsIdRO8rywX5FRHvcb+qnXC17RvxLHtOjysPtp
22
- EWsYoZMxyCDJpUqbwoeiM+tAHoz2ABMv3Ahie3Qeb6+MZNAtMmaWfBx3dg2u+/WN
23
- AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSZ0hCV
24
- qoHr122fGKelqffzEQBhszAcBgNVHREEFTATgRFnZWRARmFlcmllTVVELm9yZzAc
25
- BgNVHRIEFTATgRFnZWRARmFlcmllTVVELm9yZzANBgkqhkiG9w0BAQUFAAOCAQEA
26
- lUKo3NXePpuvN3QGsOLJ6QhNd4+Q9Rz75GipuMrCl296V8QFkd2gg9EG44Pqtk+9
27
- Zac8TkKc9bCSR0snakp+cCPplVvZF0/gMzkSTUJkDBHlNV16z73CyWpbQQa+iLJ4
28
- uisI6gF2ZXK919MYLn2bFJfb7OsCvVfyTPqq8afPY+rq9vlf9ZPwU49AlD8bPRic
29
- 0LX0gO5ykvETIOv+WgGcqp96ceNi9XVuJMh20uWuw6pmv/Ub2RqAf82jQSbpz09G
30
- G8LHR7EjtPPmqCCunfyecJ6MmCNaiJCBxq2NYzyNmluPyHT8+0fuB5kccUVZm6CD
31
- xn3DzOkDE6NYbk8gC9rTsA==
17
+ ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC/JWGRHO+USzR97vXjkFgt
18
+ 83qeNf2KHkcvrRTSnR64i6um/ziin0I0oX23H7VYrDJC9A/uoUa5nGRJS5Zw/+wW
19
+ ENcvWVZS4iUzi4dsYJGY6yEOsXh2CcF46+QevV8iE+UmbkU75V7Dy1JCaUOyizEt
20
+ TH5UHsOtUU7k9TYARt/TgYZKuaoAMZZd5qyVqhF1vV+7/Qzmp89NGflXf2xYP26a
21
+ 4MAX2qqKX/FKXqmFO+AGsbwYTEds1mksBF3fGsFgsQWxftG8GfZQ9+Cyu2+l1eOw
22
+ cZ+lPcg834G9DrqW2zhqUoLr1MTly4pqxYGb7XoDhoR7dd1kFE2a067+DzWC/ADt
23
+ +QkcqWUm5oh1fN0eqr7NsZlVJDulFgdiiYPQiIN7UNsii4Wc9aZqBoGcYfBeQNPZ
24
+ soo/6za/bWajOKUmDhpqvaiRv9EDpVLzuj53uDoukMMwxCMfgb04+ckQ0t2G7wqc
25
+ /D+K9JW9DDs3Yjgv9k4h7YMhW5gftosd+NkNC/+Y2CkCAwEAAaN1MHMwCQYDVR0T
26
+ BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFHKN/nkRusdqCJEuq3lgB3fJvyTg
27
+ MBwGA1UdEQQVMBOBEWdlZEBGYWVyaWVNVUQub3JnMBwGA1UdEgQVMBOBEWdlZEBG
28
+ YWVyaWVNVUQub3JnMA0GCSqGSIb3DQEBCwUAA4IBgQAPJzKiT0zBU7kpqe0aS2qb
29
+ FI0PJ4y5I8buU4IZGUD5NEt/N7pZNfOyBxkrZkXhS44Fp+xwBH5ebLbq/WY78Bqd
30
+ db0z6ZgW4LMYMpWFfbXsRbd9TU2f52L8oMAhxOvF7Of5qJMVWuFQ8FPagk2iHrdH
31
+ inYLQagqAF6goWTXgAJCdPd6SNeeSNqA6vlY7CV1Jh5kfNJJ6xu/CVij1GzCLu/5
32
+ DMOr26DBv+qLJRRC/2h34uX71q5QgeOyxvMg+7V3u/Q06DXyQ2VgeeqiwDFFpEH0
33
+ PFkdPO6ZqbTRcLfNH7mFgCBJjsfSjJrn0sPBlYyOXgCoByfZnZyrIMH/UY+lgQqS
34
+ 6Von1VDsfQm0eJh5zYZD64ZF86phSR7mUX3mXItwH04HrZwkWpvgd871DZVR3i1n
35
+ w8aNA5re5+Rt/Vvjxj5AcEnZnZiz5x959NaddQocX32Z1unHw44pzRNUur1GInfW
36
+ p4vpx2kUSFSAGjtCbDGTNV2AH8w9OU4xEmNz8c5lyoA=
32
37
  -----END CERTIFICATE-----
33
- date: 2016-01-20 00:00:00.000000000 Z
38
+ date: 2016-11-04 00:00:00.000000000 Z
34
39
  dependencies:
35
40
  - !ruby/object:Gem::Dependency
36
41
  name: sequel
@@ -122,14 +127,14 @@ dependencies:
122
127
  requirements:
123
128
  - - "~>"
124
129
  - !ruby/object:Gem::Version
125
- version: '0.5'
130
+ version: '0.11'
126
131
  type: :runtime
127
132
  prerelease: false
128
133
  version_requirements: !ruby/object:Gem::Requirement
129
134
  requirements:
130
135
  - - "~>"
131
136
  - !ruby/object:Gem::Version
132
- version: '0.5'
137
+ version: '0.11'
133
138
  - !ruby/object:Gem::Dependency
134
139
  name: sqlite3
135
140
  requirement: !ruby/object:Gem::Requirement
@@ -178,14 +183,14 @@ dependencies:
178
183
  requirements:
179
184
  - - "~>"
180
185
  - !ruby/object:Gem::Version
181
- version: '0.7'
186
+ version: '0.8'
182
187
  type: :development
183
188
  prerelease: false
184
189
  version_requirements: !ruby/object:Gem::Requirement
185
190
  requirements:
186
191
  - - "~>"
187
192
  - !ruby/object:Gem::Version
188
- version: '0.7'
193
+ version: '0.8'
189
194
  - !ruby/object:Gem::Dependency
190
195
  name: hoe-highline
191
196
  requirement: !ruby/object:Gem::Requirement
@@ -201,89 +206,89 @@ dependencies:
201
206
  - !ruby/object:Gem::Version
202
207
  version: '0.2'
203
208
  - !ruby/object:Gem::Dependency
204
- name: rdoc
209
+ name: amalgalite
205
210
  requirement: !ruby/object:Gem::Requirement
206
211
  requirements:
207
212
  - - "~>"
208
213
  - !ruby/object:Gem::Version
209
- version: '4.0'
214
+ version: '1.5'
210
215
  type: :development
211
216
  prerelease: false
212
217
  version_requirements: !ruby/object:Gem::Requirement
213
218
  requirements:
214
219
  - - "~>"
215
220
  - !ruby/object:Gem::Version
216
- version: '4.0'
221
+ version: '1.5'
217
222
  - !ruby/object:Gem::Dependency
218
- name: amalgalite
223
+ name: configurability
219
224
  requirement: !ruby/object:Gem::Requirement
220
225
  requirements:
221
226
  - - "~>"
222
227
  - !ruby/object:Gem::Version
223
- version: '1.3'
228
+ version: '2.2'
224
229
  type: :development
225
230
  prerelease: false
226
231
  version_requirements: !ruby/object:Gem::Requirement
227
232
  requirements:
228
233
  - - "~>"
229
234
  - !ruby/object:Gem::Version
230
- version: '1.3'
235
+ version: '2.2'
231
236
  - !ruby/object:Gem::Dependency
232
- name: configurability
237
+ name: simplecov
233
238
  requirement: !ruby/object:Gem::Requirement
234
239
  requirements:
235
240
  - - "~>"
236
241
  - !ruby/object:Gem::Version
237
- version: '2.0'
242
+ version: '0.12'
238
243
  type: :development
239
244
  prerelease: false
240
245
  version_requirements: !ruby/object:Gem::Requirement
241
246
  requirements:
242
247
  - - "~>"
243
248
  - !ruby/object:Gem::Version
244
- version: '2.0'
249
+ version: '0.12'
245
250
  - !ruby/object:Gem::Dependency
246
- name: simplecov
251
+ name: rdoc-generator-fivefish
247
252
  requirement: !ruby/object:Gem::Requirement
248
253
  requirements:
249
254
  - - "~>"
250
255
  - !ruby/object:Gem::Version
251
- version: '0.7'
256
+ version: '0'
252
257
  type: :development
253
258
  prerelease: false
254
259
  version_requirements: !ruby/object:Gem::Requirement
255
260
  requirements:
256
261
  - - "~>"
257
262
  - !ruby/object:Gem::Version
258
- version: '0.7'
263
+ version: '0'
259
264
  - !ruby/object:Gem::Dependency
260
- name: rdoc-generator-fivefish
265
+ name: rdoc
261
266
  requirement: !ruby/object:Gem::Requirement
262
267
  requirements:
263
268
  - - "~>"
264
269
  - !ruby/object:Gem::Version
265
- version: '0'
270
+ version: '4.0'
266
271
  type: :development
267
272
  prerelease: false
268
273
  version_requirements: !ruby/object:Gem::Requirement
269
274
  requirements:
270
275
  - - "~>"
271
276
  - !ruby/object:Gem::Version
272
- version: '0'
277
+ version: '4.0'
273
278
  - !ruby/object:Gem::Dependency
274
279
  name: hoe
275
280
  requirement: !ruby/object:Gem::Requirement
276
281
  requirements:
277
282
  - - "~>"
278
283
  - !ruby/object:Gem::Version
279
- version: '3.14'
284
+ version: '3.15'
280
285
  type: :development
281
286
  prerelease: false
282
287
  version_requirements: !ruby/object:Gem::Requirement
283
288
  requirements:
284
289
  - - "~>"
285
290
  - !ruby/object:Gem::Version
286
- version: '3.14'
291
+ version: '3.15'
287
292
  description: |-
288
293
  Ruby-Mongrel2 is a complete Ruby connector for Mongrel2[http://mongrel2.org/].
289
294
 
@@ -402,7 +407,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
402
407
  requirements:
403
408
  - - ">="
404
409
  - !ruby/object:Gem::Version
405
- version: 2.0.0
410
+ version: 2.2.0
406
411
  required_rubygems_version: !ruby/object:Gem::Requirement
407
412
  requirements:
408
413
  - - ">="
@@ -410,7 +415,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
410
415
  version: '0'
411
416
  requirements: []
412
417
  rubyforge_project:
413
- rubygems_version: 2.4.8
418
+ rubygems_version: 2.5.1
414
419
  signing_key:
415
420
  specification_version: 4
416
421
  summary: Ruby-Mongrel2 is a complete Ruby connector for Mongrel2[http://mongrel2.org/]
metadata.gz.sig CHANGED
Binary file