mongrel2 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,9 +1,70 @@
1
+ 2011-09-23 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * .hgtags:
4
+ Added tag v0.3.0 for changeset 627526429d63
5
+ [9c054d0e96c0] [tip]
6
+
7
+ * .hgsigs:
8
+ Added signature for changeset 745c431bcc1b
9
+ [627526429d63] [v0.3.0]
10
+
11
+ * History.rdoc, lib/mongrel2.rb:
12
+ Bump minor version, update History.
13
+ [745c431bcc1b]
14
+
15
+ * lib/mongrel2/control.rb, spec/mongrel2/control_spec.rb:
16
+ Mongrel2::Client fixes/doc updates:
17
+ - Added examples for some of the more-complex return values
18
+ - Fixed wording for some of the methods that I lazily copied from the
19
+ manual
20
+ - Client socket sets ZMQ::LINGER to 0 to try to avoid hangs when
21
+ destroying it without closing its socket first.
22
+ - Made Mongrel2::Client#time return a Time object directly instead of
23
+ wrapping it in a Hash. Need more experimentation with multiple
24
+ servers before I do this for other methods, however.
25
+ [1722ea9675c8]
26
+
27
+ * bin/m2sh.rb:
28
+ Include FileUtils in the 'm2sh.rb load' context so configs can
29
+ create run/log directories, etc.
30
+ [4c93cdb75813]
31
+
32
+ * lib/mongrel2/connection.rb:
33
+ Set SO_LINGER on the sockets so closing the connection doesn't wait
34
+ for unconsumed events.
35
+ [5e7a155a054e]
36
+
37
+ * lib/mongrel2/handler.rb:
38
+ Add missing include to Mongrel2::Handler
39
+ [47c4026c1f8d]
40
+
41
+ * lib/mongrel2/connection.rb:
42
+ Add a bit more debugging to Connection#send and #recv
43
+ [937683f0be2e]
44
+
1
45
  2011-09-21 Michael Granger <ged@FaerieMUD.org>
2
46
 
47
+ * .hgtags:
48
+ Added tag v0.2.4 for changeset d4523fc43396
49
+ [89029a1edce5]
50
+
51
+ * .hgsigs:
52
+ Added signature for changeset d6797487c359
53
+ [d4523fc43396] [v0.2.4]
54
+
55
+ * History.rdoc, lib/mongrel2.rb:
56
+ Updated history, bumping patch version for release.
57
+ [d6797487c359]
58
+
59
+ * lib/mongrel2/httprequest.rb, lib/mongrel2/httpresponse.rb,
60
+ lib/mongrel2/request.rb:
61
+ Correct body size in inspected request/response output.
62
+ [e344d8af9fb9]
63
+
3
64
  * lib/mongrel2/httpresponse.rb, lib/mongrel2/response.rb:
4
65
  Added a cleaned-up Mongrel2::Response#inspect like
5
66
  Mongrel2::Request.
6
- [263a11ebf987] [tip]
67
+ [263a11ebf987]
7
68
 
8
69
  * .hgtags:
9
70
  Added tag v0.2.3 for changeset 49b62d1014e9
@@ -68,7 +129,7 @@
68
129
 
69
130
  * lib/mongrel2/constants.rb:
70
131
  Whitespace fix; add missing HTTP::CONTINUE constant.
71
- [3082d251f00c]
132
+ [3082d251f00c] [github/master]
72
133
 
73
134
  2011-09-18 Michael Granger <ged@FaerieMUD.org>
74
135
 
@@ -142,18 +203,14 @@
142
203
  * Automated merge with ssh://deveiate.org/Ruby-Mongrel2
143
204
  [2da76acfb8db]
144
205
 
145
- * Rakefile:
146
- Automated merge with ssh://deveiate.org/Ruby-Mongrel2
147
- [e3908fd8e744]
148
-
149
- * Rakefile:
150
- Remove ChangeLog task, since hoe-deveiate already does it
151
- [5f4982a32949]
152
-
153
206
  * History.rdoc:
154
207
  Updating History
155
208
  [3b013d4918c6]
156
209
 
210
+ * Rakefile:
211
+ Automated merge with ssh://deveiate.org/Ruby-Mongrel2
212
+ [e3908fd8e744]
213
+
157
214
  * .hgtags:
158
215
  Added tag v0.1.1 for changeset 42da048fe158
159
216
  [2489be2693d5]
@@ -170,6 +227,10 @@
170
227
  Updated rbzmq dependency
171
228
  [758fe465780e]
172
229
 
230
+ * Rakefile:
231
+ Remove ChangeLog task, since hoe-deveiate already does it
232
+ [5f4982a32949]
233
+
173
234
  * .hgtags:
174
235
  Added tag v0.1.0 for changeset 55c8f01c01c6
175
236
  [39b509c68142]
@@ -211,15 +272,11 @@
211
272
  Merged with 3659a56af8fb
212
273
  [f2201728e874]
213
274
 
214
- * .hgignore:
215
- Ignoring packaging directory
216
- [0613976b6735]
217
-
218
275
  2011-09-12 Michael Granger <ged@FaerieMUD.org>
219
276
 
220
277
  * README.rdoc:
221
278
  README fixes
222
- [3659a56af8fb] [github/master]
279
+ [3659a56af8fb]
223
280
 
224
281
  * Rakefile:
225
282
  Fixing gem name
@@ -283,6 +340,12 @@
283
340
  procedures.
284
341
  [19e0a72320dd]
285
342
 
343
+ 2011-09-13 Michael Granger <ged@FaerieMUD.org>
344
+
345
+ * .hgignore:
346
+ Ignoring packaging directory
347
+ [0613976b6735]
348
+
286
349
  2011-09-10 Michael Granger <ged@FaerieMUD.org>
287
350
 
288
351
  * bin/m2sh.rb:
@@ -323,18 +386,6 @@
323
386
  * Merged with 6ea60b67e106
324
387
  [6d5341f30cc4]
325
388
 
326
- * Manifest.txt:
327
- Updating the manifest for the first release
328
- [916a79570cdc]
329
-
330
- * examples/helloworld-handler.rb, lib/mongrel2/handler.rb:
331
- More Handler API docs.
332
- [47427db9b4fb]
333
-
334
- * lib/mongrel2/handler.rb:
335
- Adding some Mongrel2::Handler API docs.
336
- [da95bfdf83da]
337
-
338
389
  * lib/mongrel2/config/host.rb:
339
390
  Adding a many_to_one association for the server belonging to a
340
391
  Mongrel2::Config::Host
@@ -354,6 +405,18 @@
354
405
  Adding a proftools dump of the requestdumper app
355
406
  [00cbc1b89a61]
356
407
 
408
+ * Manifest.txt:
409
+ Updating the manifest for the first release
410
+ [916a79570cdc]
411
+
412
+ * examples/helloworld-handler.rb, lib/mongrel2/handler.rb:
413
+ More Handler API docs.
414
+ [47427db9b4fb]
415
+
416
+ * lib/mongrel2/handler.rb:
417
+ Adding some Mongrel2::Handler API docs.
418
+ [da95bfdf83da]
419
+
357
420
  2011-09-08 Michael Granger <ged@FaerieMUD.org>
358
421
 
359
422
  * README.rdoc, lib/mongrel2.rb, lib/mongrel2/config.rb,
data/History.rdoc CHANGED
@@ -1,3 +1,13 @@
1
+ == v0.3.0 [2011-09-23] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ - Mongrel2::Client fixes/documentation updates.
4
+ - Include FileUtils in the 'm2sh.rb load' context so configs
5
+ loaded by it can create run/log directories, etc.
6
+ - Mongrel2::Connection: Set SO_LINGER on the sockets so
7
+ closing the connection doesn't wait for unconsumed events.
8
+ - Add missing include to Mongrel2::Handler
9
+
10
+
1
11
  == v0.2.4 [2011-09-21] Michael Granger <ged@FaerieMUD.org>
2
12
 
3
13
  - Added a cleaned-up Mongrel2::Response#inspect like
data/bin/m2sh.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'pp'
4
4
  require 'shellwords'
5
+ require 'fileutils'
5
6
  require 'tnetstring'
6
7
 
7
8
  require 'trollop'
@@ -283,7 +284,7 @@ class Mongrel2::M2SHCommand
283
284
  raise "No configfile specified."
284
285
 
285
286
  runspace = Module.new do
286
- extend Mongrel2::Config::DSL
287
+ extend Mongrel2::Config::DSL, FileUtils::Verbose
287
288
  end
288
289
 
289
290
  header "Loading config from #{configfile}"
data/lib/mongrel2.rb CHANGED
@@ -14,10 +14,10 @@ module Mongrel2
14
14
  abort "\n\n>>> Mongrel2 requires Ruby 1.9.2 or later. <<<\n\n" if RUBY_VERSION < '1.9.2'
15
15
 
16
16
  # Library version constant
17
- VERSION = '0.2.4'
17
+ VERSION = '0.3.0'
18
18
 
19
19
  # Version-control revision constant
20
- REVISION = %q$Revision: d6797487c359 $
20
+ REVISION = %q$Revision: 745c431bcc1b $
21
21
 
22
22
 
23
23
  require 'mongrel2/logging'
@@ -58,15 +58,15 @@ class Mongrel2::Connection
58
58
  ctx = Mongrel2.zmq_context
59
59
  self.log.debug "0mq Context is: %p" % [ ctx ]
60
60
 
61
- self.log.info "Connecting request socket (%s)" % [ @sub_addr ]
61
+ self.log.info "Connecting PULL request socket (%s)" % [ @sub_addr ]
62
62
  @request_sock = ctx.socket( ZMQ::PULL )
63
63
  @request_sock.setsockopt( ZMQ::LINGER, 0 )
64
64
  @request_sock.connect( @sub_addr )
65
65
 
66
- self.log.info "Connecting response socket (%s)" % [ @pub_addr ]
66
+ self.log.info "Connecting PUB response socket (%s)" % [ @pub_addr ]
67
67
  @response_sock = ctx.socket( ZMQ::PUB )
68
- @response_sock.setsockopt( ZMQ::LINGER, 0 )
69
68
  @response_sock.setsockopt( ZMQ::IDENTITY, @app_id )
69
+ @response_sock.setsockopt( ZMQ::LINGER, 0 )
70
70
  @response_sock.connect( @pub_addr )
71
71
  end
72
72
 
@@ -93,7 +93,7 @@ class Mongrel2::Connection
93
93
  def recv
94
94
  self.check_closed
95
95
 
96
- self.log.debug "Fetching next request"
96
+ self.log.debug "Fetching next request (PULL)"
97
97
  data = self.request_sock.recv
98
98
  self.log.debug " got request data: %p" % [ data ]
99
99
  return data
@@ -112,8 +112,9 @@ class Mongrel2::Connection
112
112
  self.check_closed
113
113
  header = "%s %d:%s," % [ sender_id, conn_id.to_s.length, conn_id ]
114
114
  buf = header + ' ' + data
115
- self.log.debug "Sending response: %p" % [ buf ]
115
+ self.log.debug "Sending response (PUB): %p" % [ buf ]
116
116
  self.response_sock.send( buf )
117
+ self.log.debug " done with send."
117
118
  end
118
119
 
119
120
 
@@ -23,6 +23,7 @@ class Mongrel2::Control
23
23
  def initialize( port=DEFAULT_PORT )
24
24
  @ctx = Mongrel2.zmq_context
25
25
  @socket = @ctx.socket( ZMQ::REQ )
26
+ @socket.setsockopt( ZMQ::LINGER, 0 )
26
27
  @socket.connect( port.to_s )
27
28
  end
28
29
 
@@ -35,66 +36,105 @@ class Mongrel2::Control
35
36
  attr_reader :socket
36
37
 
37
38
 
38
- ### Stops the server using a SIGINT.
39
+ ### Stops the server using a SIGINT. Returns a hash with a ':msg' key
40
+ ### that describes what happened on success.
39
41
  def stop
40
42
  self.request( :stop )
41
43
  end
42
44
 
43
45
 
44
- ### Reloads the server using a SIGHUP.
46
+ ### Reloads the server using a SIGHUP. Returns a hash with a ':msg' key
47
+ ### that describes what happened on success.
45
48
  def reload
46
49
  self.request( :reload )
47
50
  end
51
+ alias_method :restart, :reload
48
52
 
49
53
 
50
- ### Terminates the server with SIGTERM.
54
+ ### Terminates the server with SIGTERM. Returns a hash with a ':msg' key
55
+ ### that describes what happened on success.
51
56
  def terminate
52
57
  self.request( :terminate )
53
58
  end
54
59
 
55
60
 
56
- ### Prints out a simple help message.
61
+ ### Return an Array of Hashes, one for each command the server supports.
62
+ ###
63
+ ### Example:
64
+ ### [
65
+ ### {:name=>"stop", :help=>"stop the server (SIGINT)"},
66
+ ### {:name=>"reload", :help=>"reload the server"},
67
+ ### {:name=>"help", :help=>"this command"},
68
+ ### {:name=>"control_stop", :help=>"stop control port"},
69
+ ### {:name=>"kill", :help=>"kill a connection"},
70
+ ### {:name=>"status", :help=>"status, what=['net'|'tasks']"},
71
+ ### {:name=>"terminate", :help=>"terminate the server (SIGTERM)"},
72
+ ### {:name=>"time", :help=>"the server's time"},
73
+ ### {:name=>"uuid", :help=>"the server's uuid"},
74
+ ### {:name=>"info", :help=>"information about this server"}
75
+ ### ]
57
76
  def help
58
77
  self.request( :help )
59
78
  end
60
79
 
61
80
 
62
81
  ### Returns the server’s UUID as a String.
82
+ ###
83
+ ### Example:
84
+ ### [{:uuid=>"28F6DCCF-28EB-48A4-A5B0-ED71D224FAE0"}]
63
85
  def uuid
64
86
  self.request( :uuid )
65
87
  end
66
88
 
67
89
 
68
- ### More information about the server.
90
+ ### Return information about the server.
91
+ ###
92
+ ### Example:
93
+ ### [{:port=>7337,
94
+ ### :bind_addr=>"0.0.0.0",
95
+ ### :uuid=>"28F6DCCF-28EB-48A4-A5B0-ED71D224FAE0",
96
+ ### :chroot=>"/var/www",
97
+ ### :access_log=>"/var/www/logs/admin-access.log",
98
+ ### :error_log=>"/logs/admin-error.log",
99
+ ### :pid_file=>"./run/admin.pid",
100
+ ### :default_hostname=>"localhost"}]
69
101
  def info
70
102
  self.request( :info )
71
103
  end
72
104
 
73
105
 
74
- ### Returns a Hash of all the currently running tasks and what they’re doing, keyed
75
- ### by conn_id.
106
+ ### Returns an Array of Hashes, one for each currently running task.
107
+ ###
108
+ ### Example:
109
+ ### [
110
+ ### {:id=>1, :system=>false, :name=>"SERVER", :state=>"read fd", :status=>"idle"},
111
+ ### {:id=>2, :system=>false, :name=>"Handler_task", :state=>"read handler", :status=>"idle"},
112
+ ### {:id=>3, :system=>false, :name=>"control", :state=>"read handler", :status=>"running"},
113
+ ### {:id=>4, :system=>false, :name=>"ticker", :state=>"", :status=>"idle"},
114
+ ### {:id=>5, :system=>true, :name=>"fdtask", :state=>"yield", :status=>"ready"}
115
+ ### ]
76
116
  def tasklist
77
117
  self.request( :status, :what => 'tasks' )
78
118
  end
79
119
 
80
120
 
81
- ### Dumps a JSON dict that matches connections IDs (same ones your handlers
82
- ### get) to the seconds since their last ping. In the case of an HTTP
83
- ### connection this is how long they’ve been connected. In the case of a
84
- ### JSON socket this is the last time a ping message was received.
121
+ ### Returns an Array of Hashes, one for each connection to the server.
122
+ ###
123
+ ### Example:
124
+ ### [
125
+ ### {:id=>9, :fd=>27, :type=>1, :last_ping=>0, :last_read=>0, :last_write=>0,
126
+ ### :bytes_read=>319, :bytes_written=>1065}
127
+ ### ]
85
128
  def conn_status
86
129
  self.request( :status, :what => 'net' )
87
130
  end
88
131
 
89
132
 
90
- ### Prints the unix time the server thinks it’s using. Useful for synching.
133
+ ### Returns the server's time as a Time object.
91
134
  def time
92
135
  response = self.request( :time )
93
- response.each do |row|
94
- row[ :time ] = Time.at( row.delete(:time).to_i ) if row[:time]
95
- end
96
-
97
- return response
136
+ return nil if response.empty?
137
+ return Time.at( response.first[:time].to_i )
98
138
  end
99
139
 
100
140
 
@@ -111,6 +151,16 @@ class Mongrel2::Control
111
151
  end
112
152
 
113
153
 
154
+ ### Close the control port connection.
155
+ def close
156
+ self.socket.close
157
+ end
158
+
159
+
160
+ #########
161
+ protected
162
+ #########
163
+
114
164
  ### Send a raw request to the server, asking it to perform the +command+ with the specified
115
165
  ### +options+ hash and return the results.
116
166
  def request( command, options={} )
@@ -124,12 +174,6 @@ class Mongrel2::Control
124
174
  end
125
175
 
126
176
 
127
- ### Close the control port connection.
128
- def close
129
- self.socket.close
130
- end
131
-
132
-
133
177
  #######
134
178
  private
135
179
  #######
@@ -79,7 +79,8 @@ require 'mongrel2/jsonrequest'
79
79
  # app.run
80
80
  #
81
81
  class Mongrel2::Handler
82
- include Mongrel2::Loggable
82
+ include Mongrel2::Loggable,
83
+ Mongrel2::Constants
83
84
 
84
85
 
85
86
  ### Create an instance of the handler using the config from the database with
@@ -30,7 +30,7 @@ describe Mongrel2::Control do
30
30
 
31
31
  before( :each ) do
32
32
  @ctx = double( "ZMQ::Context" )
33
- @socket = double( "ZMQ REQ socket", :connect => nil )
33
+ @socket = double( "ZMQ REQ socket", :connect => nil, :setsockopt => nil )
34
34
  @ctx.stub( :socket ).with( ZMQ::REQ ).and_return( @socket )
35
35
 
36
36
  Mongrel2.instance_variable_set( :@zmq_ctx, @ctx )
@@ -160,7 +160,7 @@ describe Mongrel2::Control do
160
160
  @socket.should_receive( :send ).with( "10:4:time,0:}]" )
161
161
  @socket.should_receive( :recv ).
162
162
  and_return( "49:7:headers,7:4:time,]4:rows,18:14:10:1315532674,]]}" )
163
- @control.time.should == [{ :time => Time.at(1315532674) }]
163
+ @control.time.should == Time.at( 1315532674 )
164
164
  end
165
165
 
166
166
  it "sends a 'kill' command with an ID equal to the argument to the control port when #kill " +
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.2.4
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -48,11 +48,11 @@ cert_chain:
48
48
  -----END CERTIFICATE-----
49
49
 
50
50
  '
51
- date: 2011-09-22 00:00:00.000000000Z
51
+ date: 2011-09-24 00:00:00.000000000Z
52
52
  dependencies:
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: nokogiri
55
- requirement: &70275094474160 !ruby/object:Gem::Requirement
55
+ requirement: &2170257000 !ruby/object:Gem::Requirement
56
56
  none: false
57
57
  requirements:
58
58
  - - ~>
@@ -60,10 +60,10 @@ dependencies:
60
60
  version: '1.5'
61
61
  type: :runtime
62
62
  prerelease: false
63
- version_requirements: *70275094474160
63
+ version_requirements: *2170257000
64
64
  - !ruby/object:Gem::Dependency
65
65
  name: sequel
66
- requirement: &70275094472460 !ruby/object:Gem::Requirement
66
+ requirement: &2170254880 !ruby/object:Gem::Requirement
67
67
  none: false
68
68
  requirements:
69
69
  - - ~>
@@ -71,10 +71,10 @@ dependencies:
71
71
  version: '3.26'
72
72
  type: :runtime
73
73
  prerelease: false
74
- version_requirements: *70275094472460
74
+ version_requirements: *2170254880
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: amalgalite
77
- requirement: &70275094471640 !ruby/object:Gem::Requirement
77
+ requirement: &2170254220 !ruby/object:Gem::Requirement
78
78
  none: false
79
79
  requirements:
80
80
  - - ~>
@@ -82,10 +82,10 @@ dependencies:
82
82
  version: '1.1'
83
83
  type: :runtime
84
84
  prerelease: false
85
- version_requirements: *70275094471640
85
+ version_requirements: *2170254220
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: tnetstring
88
- requirement: &70275094470760 !ruby/object:Gem::Requirement
88
+ requirement: &2170253640 !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
91
  - - ~>
@@ -93,10 +93,10 @@ dependencies:
93
93
  version: '0.3'
94
94
  type: :runtime
95
95
  prerelease: false
96
- version_requirements: *70275094470760
96
+ version_requirements: *2170253640
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: yajl-ruby
99
- requirement: &70275094467600 !ruby/object:Gem::Requirement
99
+ requirement: &2170252900 !ruby/object:Gem::Requirement
100
100
  none: false
101
101
  requirements:
102
102
  - - ~>
@@ -104,10 +104,10 @@ dependencies:
104
104
  version: '0.8'
105
105
  type: :runtime
106
106
  prerelease: false
107
- version_requirements: *70275094467600
107
+ version_requirements: *2170252900
108
108
  - !ruby/object:Gem::Dependency
109
109
  name: zmq
110
- requirement: &70275094462620 !ruby/object:Gem::Requirement
110
+ requirement: &2170252240 !ruby/object:Gem::Requirement
111
111
  none: false
112
112
  requirements:
113
113
  - - ~>
@@ -115,10 +115,10 @@ dependencies:
115
115
  version: 2.1.4
116
116
  type: :runtime
117
117
  prerelease: false
118
- version_requirements: *70275094462620
118
+ version_requirements: *2170252240
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: hoe-mercurial
121
- requirement: &70275094461620 !ruby/object:Gem::Requirement
121
+ requirement: &2170251620 !ruby/object:Gem::Requirement
122
122
  none: false
123
123
  requirements:
124
124
  - - ~>
@@ -126,10 +126,10 @@ dependencies:
126
126
  version: 1.3.0
127
127
  type: :development
128
128
  prerelease: false
129
- version_requirements: *70275094461620
129
+ version_requirements: *2170251620
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: hoe-highline
132
- requirement: &70275094460460 !ruby/object:Gem::Requirement
132
+ requirement: &2170250880 !ruby/object:Gem::Requirement
133
133
  none: false
134
134
  requirements:
135
135
  - - ~>
@@ -137,10 +137,10 @@ dependencies:
137
137
  version: 0.0.1
138
138
  type: :development
139
139
  prerelease: false
140
- version_requirements: *70275094460460
140
+ version_requirements: *2170250880
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: configurability
143
- requirement: &70275094459180 !ruby/object:Gem::Requirement
143
+ requirement: &2170250120 !ruby/object:Gem::Requirement
144
144
  none: false
145
145
  requirements:
146
146
  - - ~>
@@ -148,10 +148,10 @@ dependencies:
148
148
  version: '1.0'
149
149
  type: :development
150
150
  prerelease: false
151
- version_requirements: *70275094459180
151
+ version_requirements: *2170250120
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: rspec
154
- requirement: &70275094457960 !ruby/object:Gem::Requirement
154
+ requirement: &2170249500 !ruby/object:Gem::Requirement
155
155
  none: false
156
156
  requirements:
157
157
  - - ~>
@@ -159,10 +159,10 @@ dependencies:
159
159
  version: '2.4'
160
160
  type: :development
161
161
  prerelease: false
162
- version_requirements: *70275094457960
162
+ version_requirements: *2170249500
163
163
  - !ruby/object:Gem::Dependency
164
164
  name: hoe
165
- requirement: &70275094456560 !ruby/object:Gem::Requirement
165
+ requirement: &2170248800 !ruby/object:Gem::Requirement
166
166
  none: false
167
167
  requirements:
168
168
  - - ~>
@@ -170,7 +170,7 @@ dependencies:
170
170
  version: '2.12'
171
171
  type: :development
172
172
  prerelease: false
173
- version_requirements: *70275094456560
173
+ version_requirements: *2170248800
174
174
  description: ! "A complete Ruby connector for Mongrel2[http://mongrel2.org/].\n\nThis
175
175
  library includes configuration-database ORM classes, a Ruby\nimplementation of the
176
176
  'm2sh' tool, a configuration DSL for generating config\ndatabases in pure Ruby,
metadata.gz.sig CHANGED
Binary file