rservicebus 0.1.66 → 0.1.67
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.
- data/lib/rservicebus/Host.rb +102 -102
- data/lib/rservicebus/Monitor/CsvDir.rb +2 -1
- data/lib/rservicebus/Monitor/Dir.rb +0 -1
- metadata +12 -12
data/lib/rservicebus/Host.rb
CHANGED
|
@@ -13,25 +13,25 @@ module RServiceBus
|
|
|
13
13
|
#Host process for rservicebus
|
|
14
14
|
class Host
|
|
15
15
|
attr_accessor :sagaData
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
@sagaData
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
@handlerList
|
|
20
20
|
@resourceListByHandlerName
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
@subscriptions
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
@mq
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
@resourceManager
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
@config
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
@subscriptionManager
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
@stats
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
|
|
34
|
+
|
|
35
35
|
@queueForMsgsToBeSentOnComplete
|
|
36
36
|
|
|
37
37
|
|
|
@@ -49,8 +49,8 @@ module RServiceBus
|
|
|
49
49
|
@resourceManager = ConfigureAppResource.new.getResources( ENV, self, @stateManager, @sagaStorage )
|
|
50
50
|
return self;
|
|
51
51
|
end
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
|
|
53
|
+
|
|
54
54
|
#Thin veneer for Configuring SendAt
|
|
55
55
|
#
|
|
56
56
|
def configureSendAtManager
|
|
@@ -64,7 +64,7 @@ module RServiceBus
|
|
|
64
64
|
@stateManager = StateManager.new
|
|
65
65
|
return self;
|
|
66
66
|
end
|
|
67
|
-
|
|
67
|
+
|
|
68
68
|
#Thin veneer for Configuring state
|
|
69
69
|
#
|
|
70
70
|
def configureSagaStorage
|
|
@@ -84,20 +84,20 @@ module RServiceBus
|
|
|
84
84
|
@circuitBreaker = CircuitBreaker.new( self )
|
|
85
85
|
return self;
|
|
86
86
|
end
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
|
|
88
|
+
|
|
89
89
|
#Thin veneer for Configuring external resources
|
|
90
90
|
#
|
|
91
91
|
def configureMonitors
|
|
92
92
|
@monitors = ConfigureMonitor.new( self, @resourceManager ).getMonitors( ENV )
|
|
93
93
|
return self;
|
|
94
94
|
end
|
|
95
|
-
|
|
95
|
+
|
|
96
96
|
#Thin veneer for Configuring the Message Queue
|
|
97
97
|
#
|
|
98
98
|
def connectToMq
|
|
99
99
|
@mq = MQ.get
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
return self
|
|
102
102
|
end
|
|
103
103
|
|
|
@@ -105,91 +105,91 @@ module RServiceBus
|
|
|
105
105
|
#msg endpoint mapping
|
|
106
106
|
def sendSubscriptions
|
|
107
107
|
log "Send Subscriptions"
|
|
108
|
-
|
|
108
|
+
|
|
109
109
|
@endpointMapping.getSubscriptionEndpoints.each { |eventName| self.Subscribe( eventName ) }
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
return self
|
|
112
112
|
end
|
|
113
|
-
|
|
113
|
+
|
|
114
114
|
#Load and configure Message Handlers
|
|
115
115
|
#
|
|
116
116
|
def loadHandlers()
|
|
117
117
|
log "Load Message Handlers"
|
|
118
118
|
@handlerManager = HandlerManager.new( self, @resourceManager, @stateManager )
|
|
119
119
|
@handlerLoader = HandlerLoader.new( self, @handlerManager )
|
|
120
|
-
|
|
120
|
+
|
|
121
121
|
@config.handlerPathList.each do |path|
|
|
122
122
|
@handlerLoader.loadHandlersFromPath(path)
|
|
123
123
|
end
|
|
124
|
-
|
|
124
|
+
|
|
125
125
|
return self
|
|
126
126
|
end
|
|
127
|
-
|
|
127
|
+
|
|
128
128
|
#Load and configure Sagas
|
|
129
129
|
def loadSagas()
|
|
130
130
|
log "Load Sagas"
|
|
131
131
|
@sagaManager = Saga_Manager.new( self, @resourceManager, @sagaStorage )
|
|
132
132
|
@sagaLoader = SagaLoader.new( self, @sagaManager )
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
@config.sagaPathList.each do |path|
|
|
135
135
|
@sagaLoader.loadSagasFromPath(path)
|
|
136
136
|
end
|
|
137
|
-
|
|
137
|
+
|
|
138
138
|
return self
|
|
139
139
|
end
|
|
140
|
-
|
|
140
|
+
|
|
141
141
|
#Thin veneer for Configuring Cron
|
|
142
142
|
#
|
|
143
143
|
def configureCronManager
|
|
144
144
|
@cronManager = CronManager.new( self, @handlerManager.getListOfMsgNames )
|
|
145
145
|
return self;
|
|
146
146
|
end
|
|
147
|
-
|
|
147
|
+
|
|
148
148
|
#Load Contracts
|
|
149
149
|
#
|
|
150
150
|
def loadContracts()
|
|
151
151
|
log "Load Contracts"
|
|
152
|
-
|
|
152
|
+
|
|
153
153
|
@config.contractList.each do |path|
|
|
154
154
|
require path
|
|
155
155
|
RServiceBus.rlog "Loaded Contract: #{path}"
|
|
156
156
|
end
|
|
157
|
-
|
|
157
|
+
|
|
158
158
|
return self
|
|
159
159
|
end
|
|
160
|
-
|
|
160
|
+
|
|
161
161
|
#For each directory given, find and load all librarys
|
|
162
162
|
#
|
|
163
163
|
def loadLibs()
|
|
164
164
|
log "Load Libs"
|
|
165
|
-
|
|
165
|
+
|
|
166
166
|
@config.libList.each do |path|
|
|
167
167
|
$:.unshift path
|
|
168
168
|
end
|
|
169
|
-
|
|
169
|
+
|
|
170
170
|
return self
|
|
171
171
|
end
|
|
172
|
-
|
|
172
|
+
|
|
173
173
|
#Load, configure and initialise Subscriptions
|
|
174
174
|
#
|
|
175
175
|
def configureSubscriptions
|
|
176
176
|
subscriptionStorage = ConfigureSubscriptionStorage.new.get( @config.appName, @config.subscriptionUri )
|
|
177
177
|
@subscriptionManager = SubscriptionManager.new( subscriptionStorage )
|
|
178
|
-
|
|
178
|
+
|
|
179
179
|
return self
|
|
180
180
|
end
|
|
181
|
-
|
|
181
|
+
|
|
182
182
|
#Initialise statistics monitor
|
|
183
183
|
#
|
|
184
184
|
def configureStatistics
|
|
185
185
|
@stats = StatisticManager.new( self )
|
|
186
|
-
|
|
186
|
+
|
|
187
187
|
return self
|
|
188
188
|
end
|
|
189
|
-
|
|
189
|
+
|
|
190
190
|
def initialize()
|
|
191
191
|
RServiceBus.rlog "Current directory: #{Dir.pwd}"
|
|
192
|
-
|
|
192
|
+
|
|
193
193
|
@config = ConfigFromEnv.new
|
|
194
194
|
.loadHostSection()
|
|
195
195
|
.loadContracts()
|
|
@@ -197,11 +197,11 @@ module RServiceBus
|
|
|
197
197
|
.loadSagaPathList()
|
|
198
198
|
.loadLibs()
|
|
199
199
|
.loadWorkingDirList();
|
|
200
|
-
|
|
200
|
+
|
|
201
201
|
self.connectToMq()
|
|
202
|
-
|
|
202
|
+
|
|
203
203
|
@endpointMapping = EndpointMapping.new.Configure( @mq.localQueueName )
|
|
204
|
-
|
|
204
|
+
|
|
205
205
|
self.configureStatistics()
|
|
206
206
|
.loadContracts()
|
|
207
207
|
.loadLibs()
|
|
@@ -216,16 +216,16 @@ module RServiceBus
|
|
|
216
216
|
.configureCronManager()
|
|
217
217
|
.configureSubscriptions()
|
|
218
218
|
.sendSubscriptions()
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
|
|
220
|
+
|
|
221
221
|
return self
|
|
222
222
|
end
|
|
223
|
-
|
|
223
|
+
|
|
224
224
|
#Ignition
|
|
225
225
|
#
|
|
226
226
|
def run
|
|
227
227
|
log "Starting the Host"
|
|
228
|
-
|
|
228
|
+
|
|
229
229
|
log "Watching, #{@mq.localQueueName}"
|
|
230
230
|
$0 = "rservicebus - #{@mq.localQueueName}"
|
|
231
231
|
if !@config.forwardReceivedMessagesTo.nil? then
|
|
@@ -234,10 +234,10 @@ module RServiceBus
|
|
|
234
234
|
if !@config.forwardSentMessagesTo.nil? then
|
|
235
235
|
log "Forwarding all sent messages to: " + @config.forwardSentMessagesTo.to_s
|
|
236
236
|
end
|
|
237
|
-
|
|
237
|
+
|
|
238
238
|
self.StartListeningToEndpoints
|
|
239
239
|
end
|
|
240
|
-
|
|
240
|
+
|
|
241
241
|
#Receive a msg, prep it, and handle any errors that may occur
|
|
242
242
|
# - Most of this should be queue independant
|
|
243
243
|
def StartListeningToEndpoints
|
|
@@ -245,17 +245,17 @@ module RServiceBus
|
|
|
245
245
|
# statOutputCountdown = 0
|
|
246
246
|
messageLoop = true
|
|
247
247
|
retries = @config.maxRetries
|
|
248
|
-
|
|
248
|
+
|
|
249
249
|
while messageLoop do
|
|
250
250
|
#Popping a msg off the queue should not be in the message handler, as it affects retry
|
|
251
251
|
begin
|
|
252
252
|
@stats.tick
|
|
253
|
-
|
|
253
|
+
|
|
254
254
|
if @circuitBreaker.Broken then
|
|
255
255
|
sleep 0.5
|
|
256
256
|
next
|
|
257
257
|
end
|
|
258
|
-
|
|
258
|
+
|
|
259
259
|
body = @mq.pop
|
|
260
260
|
begin
|
|
261
261
|
@stats.incTotalProcessed
|
|
@@ -274,12 +274,12 @@ module RServiceBus
|
|
|
274
274
|
elsif @msg.msg.class.name == "RServiceBus::Message_VerboseOutputOff" then
|
|
275
275
|
ENV.delete( "VERBOSE" )
|
|
276
276
|
log "Turn off Verbose logging"
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
|
|
278
|
+
|
|
279
279
|
else
|
|
280
|
-
|
|
280
|
+
|
|
281
281
|
self.HandleMessage()
|
|
282
|
-
|
|
282
|
+
|
|
283
283
|
if !@config.forwardReceivedMessagesTo.nil? then
|
|
284
284
|
self._SendAlreadyWrappedAndSerialised(body,@config.forwardReceivedMessagesTo)
|
|
285
285
|
end
|
|
@@ -288,59 +288,59 @@ module RServiceBus
|
|
|
288
288
|
rescue ClassNotFoundForMsg => e
|
|
289
289
|
puts "*** Class not found for msg, #{e.message}"
|
|
290
290
|
puts "*** Ensure, #{e.message}, is defined in Contract.rb, most likely as 'Class #{e.message} end"
|
|
291
|
-
|
|
291
|
+
|
|
292
292
|
@msg.addErrorMsg( @mq.localQueueName, e.message )
|
|
293
293
|
serialized_object = YAML::dump(@msg)
|
|
294
294
|
self._SendAlreadyWrappedAndSerialised(serialized_object, @config.errorQueueName)
|
|
295
295
|
@mq.ack
|
|
296
|
-
|
|
296
|
+
|
|
297
297
|
rescue NoHandlerFound => e
|
|
298
298
|
puts "*** Handler not found for msg, #{e.message}"
|
|
299
299
|
puts "*** Ensure a handler named, #{e.message}, is present in the MessageHandler directory."
|
|
300
|
-
|
|
300
|
+
|
|
301
301
|
@msg.addErrorMsg( @mq.localQueueName, e.message )
|
|
302
302
|
serialized_object = YAML::dump(@msg)
|
|
303
303
|
self._SendAlreadyWrappedAndSerialised(serialized_object, @config.errorQueueName)
|
|
304
304
|
@mq.ack
|
|
305
|
-
|
|
305
|
+
|
|
306
306
|
rescue PropertyNotSet => e
|
|
307
307
|
#This has been re-rasied from a rescue in the handler
|
|
308
308
|
puts "*** #{e.message}"
|
|
309
309
|
#"Property, #{e.message}, not set for, #{handler.class.name}"
|
|
310
310
|
propertyName = e.message[10, e.message.index(",", 10)-10]
|
|
311
|
-
puts "*** Ensure the
|
|
312
|
-
|
|
311
|
+
puts "*** Ensure the environment variable, RSB_#{propertyName}, has been set at startup."
|
|
312
|
+
|
|
313
313
|
rescue Exception => e
|
|
314
314
|
sleep 0.5
|
|
315
|
-
|
|
315
|
+
|
|
316
316
|
puts "*** Exception occurred"
|
|
317
317
|
puts e.message
|
|
318
318
|
puts e.backtrace
|
|
319
319
|
puts "***"
|
|
320
|
-
|
|
320
|
+
|
|
321
321
|
if retries > 0 then
|
|
322
322
|
retries = retries - 1
|
|
323
323
|
@mq.returnToQueue
|
|
324
324
|
else
|
|
325
|
-
|
|
325
|
+
|
|
326
326
|
@circuitBreaker.Failure
|
|
327
|
-
|
|
327
|
+
|
|
328
328
|
@stats.incTotalErrored
|
|
329
329
|
if e.class.name == "Beanstalk::NotConnected" then
|
|
330
330
|
puts "Lost connection to beanstalkd."
|
|
331
331
|
puts "*** Start or Restart beanstalkd and try again."
|
|
332
332
|
abort();
|
|
333
333
|
end
|
|
334
|
-
|
|
334
|
+
|
|
335
335
|
if e.class.name == "Redis::CannotConnectError" then
|
|
336
336
|
puts "Lost connection to redis."
|
|
337
337
|
puts "*** Start or Restart redis and try again."
|
|
338
338
|
abort();
|
|
339
339
|
end
|
|
340
|
-
|
|
340
|
+
|
|
341
341
|
errorString = e.message + ". " + e.backtrace.join( ". " )
|
|
342
342
|
# log errorString
|
|
343
|
-
|
|
343
|
+
|
|
344
344
|
@msg.addErrorMsg( @mq.localQueueName, errorString )
|
|
345
345
|
serialized_object = YAML::dump(@msg)
|
|
346
346
|
self._SendAlreadyWrappedAndSerialised(serialized_object, @config.errorQueueName)
|
|
@@ -351,7 +351,7 @@ module RServiceBus
|
|
|
351
351
|
rescue SystemExit, Interrupt
|
|
352
352
|
puts "Exiting on request ..."
|
|
353
353
|
messageLoop = false
|
|
354
|
-
|
|
354
|
+
|
|
355
355
|
rescue NoMsgToProcess => e
|
|
356
356
|
#This exception is just saying there are no messages to process
|
|
357
357
|
statOutputCountdown = 0
|
|
@@ -361,7 +361,7 @@ module RServiceBus
|
|
|
361
361
|
end
|
|
362
362
|
self.sendQueuedMsgs
|
|
363
363
|
@queueForMsgsToBeSentOnComplete = nil
|
|
364
|
-
|
|
364
|
+
|
|
365
365
|
@queueForMsgsToBeSentOnComplete = Array.new
|
|
366
366
|
@cronManager.Run
|
|
367
367
|
self.sendQueuedMsgs
|
|
@@ -372,9 +372,9 @@ module RServiceBus
|
|
|
372
372
|
|
|
373
373
|
|
|
374
374
|
@circuitBreaker.Success
|
|
375
|
-
|
|
375
|
+
|
|
376
376
|
rescue Exception => e
|
|
377
|
-
if e.message == "SIGTERM" then
|
|
377
|
+
if e.message == "SIGTERM" || e.message == "SIGINT" then
|
|
378
378
|
puts "Exiting on request ..."
|
|
379
379
|
messageLoop = false
|
|
380
380
|
else
|
|
@@ -386,19 +386,19 @@ module RServiceBus
|
|
|
386
386
|
end
|
|
387
387
|
end
|
|
388
388
|
end
|
|
389
|
-
|
|
389
|
+
|
|
390
390
|
#Send the current msg to the appropriate handlers
|
|
391
391
|
#
|
|
392
392
|
def HandleMessage()
|
|
393
393
|
@resourceManager.Begin
|
|
394
394
|
msgName = @msg.msg.class.name
|
|
395
395
|
handlerList = @handlerManager.getHandlerListForMsg(msgName)
|
|
396
|
-
|
|
397
|
-
|
|
396
|
+
|
|
397
|
+
|
|
398
398
|
RServiceBus.rlog "Handler found for: " + msgName
|
|
399
399
|
begin
|
|
400
400
|
@queueForMsgsToBeSentOnComplete = Array.new
|
|
401
|
-
|
|
401
|
+
|
|
402
402
|
log "Started processing msg, #{msgName}"
|
|
403
403
|
handlerList.each do |handler|
|
|
404
404
|
begin
|
|
@@ -413,42 +413,42 @@ module RServiceBus
|
|
|
413
413
|
raise e
|
|
414
414
|
end
|
|
415
415
|
end
|
|
416
|
-
|
|
417
|
-
|
|
416
|
+
|
|
417
|
+
|
|
418
418
|
if @sagaManager.Handle( @msg ) == false && handlerList.length == 0 then
|
|
419
419
|
raise NoHandlerFound.new( msgName )
|
|
420
420
|
end
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
424
|
@resourceManager.Commit( msgName )
|
|
425
|
-
|
|
425
|
+
|
|
426
426
|
self.sendQueuedMsgs
|
|
427
427
|
log "Finished processing msg, #{msgName}"
|
|
428
|
-
|
|
428
|
+
|
|
429
429
|
rescue Exception => e
|
|
430
|
-
|
|
430
|
+
|
|
431
431
|
@resourceManager.Rollback( msgName )
|
|
432
432
|
@queueForMsgsToBeSentOnComplete = nil
|
|
433
|
-
|
|
433
|
+
|
|
434
434
|
raise e
|
|
435
435
|
end
|
|
436
436
|
end
|
|
437
|
-
|
|
437
|
+
|
|
438
438
|
#######################################################################################################
|
|
439
439
|
# All msg sending Methods
|
|
440
|
-
|
|
440
|
+
|
|
441
441
|
#Sends a msg across the bus
|
|
442
442
|
#
|
|
443
443
|
# @param [String] serialized_object serialized RServiceBus::Message
|
|
444
444
|
# @param [String] queueName endpoint to which the msg will be sent
|
|
445
445
|
def _SendAlreadyWrappedAndSerialised( serialized_object, queueName )
|
|
446
446
|
RServiceBus.rlog "Bus._SendAlreadyWrappedAndSerialised"
|
|
447
|
-
|
|
447
|
+
|
|
448
448
|
if !@config.forwardSentMessagesTo.nil? then
|
|
449
449
|
@mq.send( @config.forwardSentMessagesTo, serialized_object )
|
|
450
450
|
end
|
|
451
|
-
|
|
451
|
+
|
|
452
452
|
@mq.send( queueName, serialized_object )
|
|
453
453
|
end
|
|
454
454
|
|
|
@@ -470,7 +470,7 @@ module RServiceBus
|
|
|
470
470
|
q = 'transport-out'
|
|
471
471
|
RServiceBus.rlog "Sending, #{msg.class.name} to, #{queueName}, via #{q}"
|
|
472
472
|
end
|
|
473
|
-
|
|
473
|
+
|
|
474
474
|
serialized_object = YAML::dump(rMsg)
|
|
475
475
|
self._SendAlreadyWrappedAndSerialised( serialized_object, q )
|
|
476
476
|
end
|
|
@@ -499,22 +499,22 @@ module RServiceBus
|
|
|
499
499
|
def Reply( msg )
|
|
500
500
|
RServiceBus.rlog "Reply with: " + msg.class.name + " To: " + @msg.returnAddress
|
|
501
501
|
@stats.incTotalReply
|
|
502
|
-
|
|
502
|
+
|
|
503
503
|
self.queueMsgForSendOnComplete( msg, @msg.returnAddress )
|
|
504
504
|
end
|
|
505
|
-
|
|
505
|
+
|
|
506
506
|
def getEndpointForMsg( msgName )
|
|
507
507
|
queueName = @endpointMapping.get( msgName )
|
|
508
508
|
return queueName unless queueName.nil?
|
|
509
|
-
|
|
509
|
+
|
|
510
510
|
return @mq.localQueueName if @handlerManager.canMsgBeHandledLocally(msgName)
|
|
511
|
-
|
|
511
|
+
|
|
512
512
|
log "No end point mapping found for: " + msgName
|
|
513
513
|
log "**** Check environment variable MessageEndpointMappings contains an entry named : " + msgName
|
|
514
514
|
raise "No end point mapping found for: " + msgName
|
|
515
515
|
end
|
|
516
|
-
|
|
517
|
-
|
|
516
|
+
|
|
517
|
+
|
|
518
518
|
#Send a msg across the bus
|
|
519
519
|
#msg destination is specified at the infrastructure level
|
|
520
520
|
#
|
|
@@ -525,7 +525,7 @@ module RServiceBus
|
|
|
525
525
|
|
|
526
526
|
msgName = msg.class.name
|
|
527
527
|
queueName = self.getEndpointForMsg( msgName )
|
|
528
|
-
|
|
528
|
+
|
|
529
529
|
self.queueMsgForSendOnComplete( msg, queueName, timestamp )
|
|
530
530
|
end
|
|
531
531
|
|
|
@@ -535,12 +535,12 @@ module RServiceBus
|
|
|
535
535
|
def Publish( msg )
|
|
536
536
|
RServiceBus.rlog "Bus.Publish"
|
|
537
537
|
@stats.incTotalPublished
|
|
538
|
-
|
|
538
|
+
|
|
539
539
|
subscriptions = @subscriptionManager.get(msg.class.name)
|
|
540
540
|
subscriptions.each do |subscriber|
|
|
541
541
|
self.queueMsgForSendOnComplete( msg, subscriber )
|
|
542
542
|
end
|
|
543
|
-
|
|
543
|
+
|
|
544
544
|
end
|
|
545
545
|
|
|
546
546
|
#Sends a subscription request across the Bus
|
|
@@ -548,13 +548,13 @@ module RServiceBus
|
|
|
548
548
|
# @param [String] eventName event to be subscribes to
|
|
549
549
|
def Subscribe( eventName )
|
|
550
550
|
RServiceBus.rlog "Bus.Subscribe: " + eventName
|
|
551
|
-
|
|
551
|
+
|
|
552
552
|
queueName = self.getEndpointForMsg( eventName )
|
|
553
553
|
subscription = Message_Subscription.new( eventName )
|
|
554
|
-
|
|
554
|
+
|
|
555
555
|
self._SendNeedsWrapping( subscription, queueName, nil )
|
|
556
556
|
end
|
|
557
|
-
|
|
557
|
+
|
|
558
558
|
end
|
|
559
|
-
|
|
559
|
+
|
|
560
560
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rservicebus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.67
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2014-
|
|
12
|
+
date: 2014-03-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: uuidtools
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70158534691240 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70158534691240
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: json
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &70158534690800 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *70158534690800
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: beanstalk-client
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &70158534690380 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *70158534690380
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: fluiddb
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &70158534689960 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>='
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: '0'
|
|
55
55
|
type: :runtime
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *70158534689960
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: parse-cron
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &70158534689540 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>='
|
|
@@ -65,7 +65,7 @@ dependencies:
|
|
|
65
65
|
version: '0'
|
|
66
66
|
type: :runtime
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *70158534689540
|
|
69
69
|
description: A Ruby interpretation of NServiceBus
|
|
70
70
|
email: guy@guyirvine.com
|
|
71
71
|
executables:
|