mongrel2 0.45.1 → 0.46.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: 56244e5c7ad23b9c4453caf6e96cd4f74741b50c
4
- data.tar.gz: da2a57b2a838edfb493d9a7bb082f7b1195cd7a5
3
+ metadata.gz: 49700ba2e7f76c60b009989939796b167fa306a4
4
+ data.tar.gz: 831cea720fb5b58e5e451a297b5754422c5acd40
5
5
  SHA512:
6
- metadata.gz: 6c4815d7a74cd4d830332a940b2d212728951e6c69e3fd19504c3e482d84cf8676f50412f77cb945148def0fc992f5781c55c581de72008277f99f688b915176
7
- data.tar.gz: a32dad853c1e2ea5ca154731d1f49e7e80cb8b2605d42637b23c69be46e0e1712c1a6bcade4711e1868e7e6d0322e7e613681ab9fa84dd43cccd40c158478397
6
+ metadata.gz: cc2b3e24804bc1560fa49e85ac2ef464aeccd0c7fc3075e81bb290da92a5459402bc9754fa5bb5bfb8769da5054fa98f29ccc91af9c83fde1b43eaa63a17be8d
7
+ data.tar.gz: 3491dfd9764efb5256ec50631452661d8058ecfe7e340201d88b73fdfb48a84fc28e1e7e301fea7b629d7c94f0d86c9422ccc072d6e898d62d0c8e7135bfdaa5
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,11 @@
1
+ == v0.46.0 [2016-11-05] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Enhancements:
4
+
5
+ - Pull up config setup/teardown into the spec helper
6
+ - Cache config mimetype table
7
+
8
+
1
9
  == v0.45.1 [2016-11-03] Michael Granger <ged@FaerieMUD.org>
2
10
 
3
11
  Bugfixes:
@@ -25,10 +25,10 @@ module Mongrel2
25
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.45.1'
28
+ VERSION = '0.46.0'
29
29
 
30
30
  # Version-control revision constant
31
- REVISION = %q$Revision: 3bf29899020f $
31
+ REVISION = %q$Revision: a28294965462 $
32
32
 
33
33
 
34
34
  require 'mongrel2/constants'
@@ -164,7 +164,11 @@ module Mongrel2
164
164
 
165
165
  ### Return a Hash of current mimetypes from the config database keyed by extension.
166
166
  def self::mimetypes
167
- return Mongrel2::Config::Mimetype.to_hash( :extension, :mimetype )
167
+ unless @mimetypes
168
+ @mimetypes = Mongrel2::Config::Mimetype.to_hash( :extension, :mimetype )
169
+ @mimetypes.freeze
170
+ end
171
+ return @mimetypes
168
172
  end
169
173
 
170
174
 
@@ -29,7 +29,6 @@ module Mongrel2::Constants
29
29
  # Maximum number of identifiers that can be included in a broadcast response
30
30
  MAX_BROADCAST_IDENTS = 100
31
31
 
32
-
33
32
  # HTTP status and result constants
34
33
  module HTTP
35
34
  CONTINUE = 100
@@ -172,6 +171,5 @@ module Mongrel2::Constants
172
171
 
173
172
  end
174
173
 
175
-
176
174
  end # module Mongrel2::Constants
177
175
 
@@ -11,12 +11,14 @@ require 'mongrel2/httpresponse'
11
11
  class Mongrel2::HTTPRequest < Mongrel2::Request
12
12
  extend Loggability
13
13
 
14
- # Loggability API -- set up logging under the 'mongrel2' log host
15
- log_to :mongrel2
16
14
 
17
15
  # HTTP verbs from RFC2616
18
16
  HANDLED_HTTP_METHODS = [ :OPTIONS, :GET, :HEAD, :POST, :PUT, :DELETE, :TRACE, :CONNECT ]
19
17
 
18
+
19
+ # Loggability API -- set up logging under the 'mongrel2' log host
20
+ log_to :mongrel2
21
+
20
22
  # Mongrel2::Request API -- register this class as handling the HTTP verbs
21
23
  register_request_type( self, *HANDLED_HTTP_METHODS )
22
24
 
@@ -52,7 +52,6 @@ class Mongrel2::Request
52
52
  end
53
53
 
54
54
 
55
-
56
55
  ### Register the specified +subclass+ as the class to instantiate when the +METHOD+
57
56
  ### header is one of the specified +req_methods+. This method exists for frameworks
58
57
  ### which wish to provide their own Request types.
@@ -15,6 +15,46 @@ module Mongrel2
15
15
  # A collection of helper functions that are generally useful
16
16
  # for testing Mongrel2::Handlers.
17
17
  module SpecHelpers
18
+
19
+ ### Inclusion callback -- install some hooks
20
+ def self::included( context )
21
+
22
+ context.before( :all ) do
23
+ setup_config_db
24
+ end
25
+
26
+ context.around( :each ) do |example|
27
+ if (( setting = example.metadata[:db] ))
28
+ if setting == :no_transaction || setting == :without_transaction
29
+ Loggability[ Mongrel2 ].debug " running without a transaction"
30
+ example.run
31
+ else
32
+ Loggability[ Mongrel2 ].debug " running with a transaction"
33
+ Mongrel2::Config.db.transaction( rollback: :always ) do
34
+ example.run
35
+ end
36
+ end
37
+ else
38
+ example.run
39
+ end
40
+ end
41
+
42
+ super
43
+ end
44
+
45
+
46
+ ### Set up a Mongrel2 configuration database in memory.
47
+ def setup_config_db
48
+ Mongrel2::Config.db ||= Mongrel2::Config.in_memory_db
49
+ Mongrel2::Config.init_database!
50
+ end
51
+
52
+
53
+ ### Truncate all the tables in the current config DB.
54
+ def clean_config_db
55
+ Mongrel2::Config.db.tables.collect {|t| Mongrel2::Config.db[t] }.each( &:truncate )
56
+ end
57
+
18
58
  end # module SpecHelpers
19
59
 
20
60
 
@@ -42,20 +42,6 @@ module Mongrel2::SpecHelpers
42
42
  end
43
43
 
44
44
 
45
- ### Set up a Mongrel2 configuration database in memory.
46
- def setup_config_db
47
- Mongrel2::Config.db ||= Mongrel2::Config.in_memory_db
48
- Mongrel2::Config.init_database
49
- clean_config_db()
50
- end
51
-
52
-
53
- ### Wipe out any existing db data.
54
- def clean_config_db
55
- Mongrel2::Config.db.tables.collect {|t| Mongrel2::Config.db[t] }.each( &:truncate )
56
- end
57
-
58
-
59
45
  ### Normalize and fill in missing members for the given +opts+.
60
46
  def normalize_headers( opts, defaults=TEST_HEADERS )
61
47
  headers = defaults.merge( opts[:headers] || {} )
@@ -171,6 +157,7 @@ module Mongrel2::SpecHelpers
171
157
  return data.encode( 'binary' )
172
158
  end
173
159
 
160
+
174
161
  ### Make a Mongrel2 handshake request for a WebSocket route.
175
162
  def make_websocket_handshake( opts={} )
176
163
  opts = TEST_WEBSOCKET_REQUEST_OPTS.merge( opts )
@@ -192,6 +179,7 @@ module Mongrel2::SpecHelpers
192
179
  return data.encode( 'binary' )
193
180
  end
194
181
 
182
+
195
183
  ### Make a Mongrel2 frame for a WebSocket route.
196
184
  def make_websocket_frame( opts={} )
197
185
  opts = TEST_WEBSOCKET_REQUEST_OPTS.merge( opts )
@@ -216,8 +204,6 @@ module Mongrel2::SpecHelpers
216
204
  end
217
205
 
218
206
 
219
- abort "You need a version of RSpec >= 2.6.0" unless defined?( RSpec )
220
-
221
207
  if defined?( ::Amalgalite )
222
208
  $stderr.puts ">>> Using Amalgalite #{Amalgalite::VERSION} for DB access."
223
209
  else
@@ -11,11 +11,7 @@ require 'mongrel2/config'
11
11
  ### C O N T E X T S
12
12
  #####################################################################
13
13
 
14
- describe Mongrel2::Config::Directory do
15
-
16
- before( :all ) do
17
- setup_config_db()
18
- end
14
+ describe Mongrel2::Config::Directory, :db do
19
15
 
20
16
  before( :each ) do
21
17
  @dir = Mongrel2::Config::Directory.new(
@@ -11,18 +11,10 @@ require 'mongrel2/config'
11
11
  ### C O N T E X T S
12
12
  #####################################################################
13
13
 
14
- describe Mongrel2::Config::DSL do
14
+ describe Mongrel2::Config::DSL, :db do
15
15
 
16
16
  include described_class
17
17
 
18
- before( :all ) do
19
- setup_config_db()
20
- end
21
-
22
- before( :each ) do
23
- clean_config_db()
24
- end
25
-
26
18
 
27
19
  describe 'servers' do
28
20
  it "can generate a default server config using the 'server' declarative" do
@@ -11,11 +11,7 @@ require 'mongrel2/config'
11
11
  ### C O N T E X T S
12
12
  #####################################################################
13
13
 
14
- describe Mongrel2::Config::Handler do
15
-
16
- before( :all ) do
17
- setup_config_db()
18
- end
14
+ describe Mongrel2::Config::Handler, :db do
19
15
 
20
16
  before( :each ) do
21
17
  Mongrel2::Config::Handler.truncate
@@ -13,12 +13,7 @@ require 'mongrel2/config'
13
13
  ### C O N T E X T S
14
14
  #####################################################################
15
15
 
16
- describe Mongrel2::Config::Log do
17
-
18
- before( :all ) do
19
- setup_config_db()
20
- end
21
-
16
+ describe Mongrel2::Config::Log, :db do
22
17
 
23
18
  it "has a convenience method for writing to the commit log" do
24
19
  what = 'load etc/mongrel2.conf'
@@ -11,11 +11,7 @@ require 'mongrel2/config'
11
11
  ### C O N T E X T S
12
12
  #####################################################################
13
13
 
14
- describe Mongrel2::Config::Route do
15
-
16
- before( :all ) do
17
- setup_config_db()
18
- end
14
+ describe Mongrel2::Config::Route, :db do
19
15
 
20
16
  before( :each ) do
21
17
  @route = Mongrel2::Config::Route.new( :path => '' )
@@ -11,11 +11,7 @@ require 'mongrel2/config'
11
11
  ### C O N T E X T S
12
12
  #####################################################################
13
13
 
14
- describe Mongrel2::Config::Server do
15
-
16
- before( :all ) do
17
- setup_config_db()
18
- end
14
+ describe Mongrel2::Config::Server, :db do
19
15
 
20
16
  before( :each ) do
21
17
  @server = Mongrel2::Config::Server.new(
@@ -11,7 +11,7 @@ require 'mongrel2/handler'
11
11
  ### C O N T E X T S
12
12
  #####################################################################
13
13
 
14
- describe Mongrel2::Handler do
14
+ describe Mongrel2::Handler, :db do
15
15
 
16
16
  # Make a handler class for testing that only ever handles one request, and
17
17
  # keeps track of any requests it handles and their responses.
@@ -34,11 +34,6 @@ describe Mongrel2::Handler do
34
34
  end # class OneShotHandler
35
35
 
36
36
 
37
- before( :all ) do
38
- setup_config_db()
39
- end
40
-
41
-
42
37
  # Ensure 0MQ never actually gets called
43
38
  before( :each ) do
44
39
  @ctx = double( '0mq context', close: nil )
@@ -16,10 +16,9 @@ require 'mongrel2/request'
16
16
  ### C O N T E X T S
17
17
  #####################################################################
18
18
 
19
- describe Mongrel2::Request do
19
+ describe Mongrel2::Request, :db do
20
20
 
21
21
  before( :all ) do
22
- setup_config_db()
23
22
 
24
23
  # Set up a test server config so the request can find the server's chroot
25
24
  server 'specs' do
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.45.1
4
+ version: 0.46.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -35,7 +35,7 @@ cert_chain:
35
35
  w8aNA5re5+Rt/Vvjxj5AcEnZnZiz5x959NaddQocX32Z1unHw44pzRNUur1GInfW
36
36
  p4vpx2kUSFSAGjtCbDGTNV2AH8w9OU4xEmNz8c5lyoA=
37
37
  -----END CERTIFICATE-----
38
- date: 2016-11-04 00:00:00.000000000 Z
38
+ date: 2016-11-14 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: sequel
metadata.gz.sig CHANGED
Binary file