mongrel2 0.44.0 → 0.45.0

Sign up to get free protection for your applications and to get access to all the features.
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