isimud 1.3.9 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.yardoc/checksums +0 -15
  5. data/.yardoc/object_types +0 -0
  6. data/.yardoc/objects/root.dat +0 -0
  7. data/Gemfile +2 -2
  8. data/Gemfile.lock +17 -13
  9. data/LICENSE.txt +1 -1
  10. data/README.md +98 -62
  11. data/Rakefile +1 -1
  12. data/checksum/isimud-1.4.0.gem.sha512 +1 -0
  13. data/doc/Isimud.html +118 -138
  14. data/doc/Isimud/BunnyClient.html +2 -2
  15. data/doc/Isimud/Client.html +2 -2
  16. data/doc/Isimud/Event.html +2 -2
  17. data/doc/Isimud/EventListener.html +208 -88
  18. data/doc/Isimud/EventObserver.html +96 -31
  19. data/doc/Isimud/EventObserver/ClassMethods.html +14 -14
  20. data/doc/Isimud/Generators.html +2 -2
  21. data/doc/Isimud/Logging.html +2 -2
  22. data/doc/Isimud/ModelWatcher.html +2 -2
  23. data/doc/Isimud/ModelWatcher/ClassMethods.html +2 -2
  24. data/doc/Isimud/Railtie.html +2 -2
  25. data/doc/Isimud/TestClient.html +2 -2
  26. data/doc/Isimud/TestClient/Queue.html +74 -2
  27. data/doc/_index.html +2 -195
  28. data/doc/class_list.html +1 -1
  29. data/doc/file.LICENSE.html +3 -3
  30. data/doc/file.README.html +157 -65
  31. data/doc/index.html +157 -65
  32. data/doc/method_list.html +0 -732
  33. data/doc/top-level-namespace.html +2 -12
  34. data/lib/isimud.rb +22 -17
  35. data/lib/isimud/bunny_client.rb +12 -10
  36. data/lib/isimud/client.rb +10 -1
  37. data/lib/isimud/event_listener.rb +6 -6
  38. data/lib/isimud/test_client.rb +12 -12
  39. data/lib/isimud/version.rb +1 -1
  40. data/release +1 -1
  41. data/spec/isimud/bunny_client_spec.rb +28 -27
  42. data/spec/isimud/client_spec.rb +50 -5
  43. metadata +3 -4
  44. metadata.gz.sig +0 -0
  45. data/doc/Isimud/Generators/ConfigGenerator.html +0 -192
  46. data/doc/Isimud/Generators/InitializerGenerator.html +0 -192
@@ -62,6 +62,9 @@
62
62
  <iframe id="search_frame"></iframe>
63
63
 
64
64
  <div id="content"><div id='filecontents'>
65
+ <p><a href="https://badge.fury.io/rb/isimud"><img
66
+ src="https://badge.fury.io/rb/isimud.svg"></a></p>
67
+
65
68
  <h1 id="label-Isimud-3A+AMQP+based+Messaging+and+Event+Processing+Abstraction+Component.">Isimud: AMQP based Messaging and Event Processing Abstraction Component.</h1>
66
69
 
67
70
  <blockquote>
@@ -72,15 +75,12 @@ in opposite directions.</p>
72
75
  <p><em>Source: Wikipedia</em></p>
73
76
  </blockquote>
74
77
 
75
- <p>Isimud is a message publishing and consumption gem. It consists of the
76
- following components:</p>
78
+ <p>Isimud is an AMQP message publishing and consumption gem intended for Rails
79
+ applications. It includes the following components:</p>
77
80
  <ul><li>
78
81
  <p>A <a href="http://rubybunny.info">Bunny</a> based client interface for
79
82
  publishing and receiving messages using AMQP.</p>
80
83
  </li><li>
81
- <p>A test client which mocks most client operations and allows for synchronous
82
- delivery and processing of messages for unit tests.</p>
83
- </li><li>
84
84
  <p>A Model Watcher mixin for ActiveRecord that automatically sends messages
85
85
  whenever an ActiveRecord instance is created, modified, or destroyed.</p>
86
86
  </li><li>
@@ -89,9 +89,12 @@ with the EventListener for receiving messages.</p>
89
89
  </li><li>
90
90
  <p>An Event Listener daemon process which manages queues and dispatches
91
91
  messages for Event Observers.</p>
92
+ </li><li>
93
+ <p>A test client for mocking message publication, allowing synchronous
94
+ delivery and processing of messages in unit tests.</p>
92
95
  </li></ul>
93
96
 
94
- <h2 id="label-Installation">Installation</h2>
97
+ <h1 id="label-Installation">Installation</h1>
95
98
 
96
99
  <p>Add this line to your application&#39;s Gemfile:</p>
97
100
 
@@ -114,18 +117,18 @@ $ rails g isimud:initializer</code></pre>
114
117
 
115
118
  <p>Customize the AMQP broker settings in the config/isimud.yml</p>
116
119
 
117
- <h2 id="label-Usage">Usage</h2>
120
+ <h1 id="label-Usage">Usage</h1>
118
121
 
119
- <h3 id="label-Connecting+to+an+AMQP+server">Connecting to an AMQP server</h3>
122
+ <h2 id="label-Connecting+to+an+AMQP+Server">Connecting to an AMQP Server</h2>
120
123
 
121
124
  <p>There are two supported conventions for specifying a RabbitMQ server
122
125
  (broker) in the configuration file:</p>
123
126
 
124
- <h4 id="label-Using+a+URL">Using a URL</h4>
127
+ <h3 id="label-Using+a+URL">Using a URL</h3>
125
128
 
126
129
  <pre class="code ruby"><code class="ruby">server: amqp:port//user_name:password@host/vhost</code></pre>
127
130
 
128
- <h4 id="label-Using+separate+parameters-3A">Using separate parameters:</h4>
131
+ <h3 id="label-Using+Separate+Parameters-3A">Using Separate Parameters:</h3>
129
132
 
130
133
  <pre class="code ruby"><code class="ruby">server:
131
134
  host: hostname
@@ -150,32 +153,129 @@ exchange in order to prevent loss of messages due to failures.</p>
150
153
  <p>Isimud uses <a href="http://rubybunny.info">Bunny</a> to connect to
151
154
  RabbitMQ.</p>
152
155
 
153
- <h3 id="label-Message+publication">Message publication</h3>
156
+ <h2 id="label-Message+Publication">Message Publication</h2>
157
+
158
+ <p>Isimud publish messages to topic based exchanges. Each message is tagged
159
+ with a routing key, allowing for multiple audiences to selectively receive
160
+ messages.</p>
161
+
162
+ <h2 id="label-Message+Queues-2C+Bindings-2C+and+Consumption">Message Queues, Bindings, and Consumption</h2>
163
+
164
+ <p>Isimud uses named, non-exclusive, durable queues to consume messages, with
165
+ a configurable pre-fetch amount.</p>
166
+
167
+ <p>There are two ways that message queues may be declared:</p>
168
+ <ol><li>
169
+ <p>Using EventObserver instances. The EventObserver module allows an
170
+ implementing class to define queues and bindings for each instance.</p>
171
+ </li><li>
172
+ <p>The EventListener automatically establishes and manages queues for
173
+ instances of each implementing class.</p>
174
+ </li><li>
175
+ <p>Each EventListener process maintains its own exclusive queue to
176
+ automatically add or cancel consumers for EventObserver instances as they
177
+ added, modified, or deleted.</p>
178
+ </li><li>
179
+ <p>Custom standalone queues. You may extend EventListener to declare
180
+ individual queues not associated with a specific object instance.</p>
181
+ </li></ol>
182
+
183
+ <p>The EventListener process will automatically create queues on initial
184
+ startup if they do not already exist. This allows for cold startup on a new
185
+ AMQP broker.</p>
186
+
187
+ <h3 id="label-Message+Delivery+Information+and+Metadata">Message Delivery Information and Metadata</h3>
188
+
189
+ <p>Each time that a message is retrieved from the queue, the following
190
+ properties are set in the current thread:</p>
191
+
192
+ <p>| name | contents | | —- | ——– | | isimud_queue_name | Name of the queue
193
+ processing the thread | | isimud_delivery_info | Message delivery
194
+ information (<em>Bunny::DeliveryInfo</em>) | | isimud_properties | Message
195
+ properties metadata (<em>Bunny::MessageProperties</em>) |</p>
196
+
197
+ <h3 id="label-Exception+Handling">Exception Handling</h3>
198
+
199
+ <p>If an uncaught instance of StandardError is raised during message
200
+ processing, all exception handlers added to the client are run in the order
201
+ they were declared (see Client#on_exception). Any exceptions raised by the
202
+ exception handlers themselves are silently ignored.</p>
203
+
204
+ <p>You can configure the disposition of the message that triggered the
205
+ exception using the configuration attribute Isimud.retry_failures as
206
+ follows:</p>
207
+
208
+ <p>| Isimud.retry_failures | Behavior | | :——————-: | ——– | | <em>false</em> |
209
+ Never requeue messages (default) | | <em>true</em> | Always requeue
210
+ messages | | <em>nil</em> | Conditionally re-queue messages based on
211
+ exception handler return values |</p>
212
+
213
+ <p>When conditional re-queueing is enabled, requeue is determined based on the
214
+ return value of all exception handlers, logically AND-ed. If the result is
215
+ truthy, the message is re-queued. If the return value of any handler is
216
+ falsey, the message is not re-queued.</p>
217
+
218
+ <h1 id="label-Changes">Changes</h1>
219
+
220
+ <h2 id="label-1.4.0">1.4.0</h2>
221
+ <ul><li>
222
+ <p>Enable conditional re-queuing of messages after an exception is raised (see
223
+ <em>Exception Handling</em> above).</p>
224
+ </li><li>
225
+ <p>Log messages for receipt and ack of messages downgraded to debug level.</p>
226
+ </li><li>
227
+ <p>Force manual_ack mode for all queue subscriptions.</p>
228
+ </li></ul>
229
+
230
+ <h2 id="label-1.3.8">1.3.8</h2>
231
+ <ul><li>
232
+ <p>In EventListener event thread, rescue all exceptions, not just Bunny ones.</p>
233
+ </li></ul>
154
234
 
155
- <p>Isimud uses topic based exchanges publish messages. This allows for
156
- multiple listener workers to operate in parallel to process messages.</p>
235
+ <h2 id="label-1.3.7">1.3.7</h2>
236
+ <ul><li>
237
+ <p>Change instance var &#39;status&#39; inside the start event thread</p>
238
+ </li></ul>
157
239
 
158
- <h3 id="label-Message+binding+and+consumption">Message binding and consumption</h3>
240
+ <h2 id="label-1.3.6">1.3.6</h2>
241
+ <ul><li>
242
+ <p>Don&#39;t include ModelWatcher attributes in event publish log message</p>
243
+ </li><li>
244
+ <p>Include routing key in ModelWatcher event publish log message</p>
245
+ </li></ul>
159
246
 
160
- <p>Isimud uses non-exclusive, durable queues to listen for and consume
161
- messages. Named queues are automatically created if they do not exist.</p>
247
+ <h2 id="label-1.3.5">1.3.5</h2>
248
+ <ul><li>
249
+ <p>Added option to EventObserver#observe_events to recreate bindings for
250
+ observer queues</p>
251
+ </li><li>
252
+ <p>EventListener only create bindings and queues for EventObserver instances
253
+ on initial startup</p>
254
+ </li></ul>
162
255
 
163
- <h2 id="label-Changes">Changes</h2>
256
+ <h2 id="label-1.3.4">1.3.4</h2>
257
+ <ul><li>
258
+ <p>Always recreate bindings for observer queues when EventListener starts the
259
+ event thread.</p>
260
+ </li><li>
261
+ <p>Cleaned up method signature on EventObserver#delete_queue so that a client
262
+ may be passed to it.</p>
263
+ </li></ul>
164
264
 
165
- <h3 id="label-1.3.2">1.3.2</h3>
265
+ <h2 id="label-1.3.3">1.3.3</h2>
166
266
  <ul><li>
167
267
  <p>Fixed handling of exceptions in TestClient</p>
168
268
  </li><li>
169
269
  <p>Make EventListener#has_observer? public</p>
170
270
  </li></ul>
171
271
 
172
- <h3 id="label-1.3.1">1.3.1</h3>
272
+ <h2 id="label-1.3.1">1.3.1</h2>
173
273
  <ul><li>
174
274
  <p>Add EventObserver#deactivate_observer to trigger queue deletion for an
175
275
  observer instance.</p>
176
276
  </li></ul>
177
277
 
178
- <h3 id="label-1.3.0">1.3.0</h3>
278
+ <h2 id="label-1.3.0">1.3.0</h2>
179
279
  <ul><li>
180
280
  <p>Added a new method, EventListener#bind_event_queues() for registering
181
281
  custom event handlers. Override this method instead of bind_queues() to
@@ -187,12 +287,12 @@ collisions caused by processes on different hosts sharing the same PID.</p>
187
287
  <p>Added lots of documentation.</p>
188
288
  </li></ul>
189
289
 
190
- <h3 id="label-1.2.1">1.2.1</h3>
290
+ <h2 id="label-1.2.1">1.2.1</h2>
191
291
  <ul><li>
192
292
  <p>Include attributes in ModelWatcher destroy message</p>
193
293
  </li></ul>
194
294
 
195
- <h3 id="label-1.2.0">1.2.0</h3>
295
+ <h2 id="label-1.2.0">1.2.0</h2>
196
296
  <ul><li>
197
297
  <p>EventObserver#update_queue now always binds current routing keys. This
198
298
  ensures that when an enable_listener? changes state from false to true
@@ -205,19 +305,19 @@ an observer instance on demand.</p>
205
305
  for subclasses.</p>
206
306
  </li></ul>
207
307
 
208
- <h3 id="label-1.1.0">1.1.0</h3>
308
+ <h2 id="label-1.1.0">1.1.0</h2>
209
309
  <ul><li>
210
310
  <p>Clients now support multiple exception handlers. Each call to
211
311
  Client#on_exception will add a new block to the exception handlers list</p>
212
312
  </li></ul>
213
313
 
214
- <h3 id="label-1.0.2">1.0.2</h3>
314
+ <h2 id="label-1.0.2">1.0.2</h2>
215
315
 
216
- <h4 id="label-Breaking+Changes-3A">Breaking Changes:</h4>
316
+ <h3 id="label-Breaking+Changes-3A">Breaking Changes:</h3>
217
317
  <ul><li>
218
318
  <p>EventObserver instances are now required to have the persistent attribute
219
- /exchange_routing_keys/. These are used to store the current value of
220
- routing keys assoicated with an instance. The queue associated with an
319
+ <em>exchange_routing_keys</em>. These are used to store the current value
320
+ of routing keys assoicated with an instance. The queue associated with an
221
321
  EventObserver is now created and updated at the same time the
222
322
  EventObserver is updated, rather than relying on the EventListener to
223
323
  create it.</p>
@@ -235,17 +335,14 @@ subscribe to messages.</p>
235
335
  <p>Removed Client#rebind.</p>
236
336
  </li></ul>
237
337
 
238
- <h4 id="label-Other+Changes-3A">Other Changes:</h4>
338
+ <h3 id="label-Other+Changes-3A">Other Changes:</h3>
239
339
  <ul><li>
240
340
  <p>TestClient::Queue now responds to bind() and unbind() in the same manner as
241
341
  Bunny::Queue.</p>
242
342
  </li><li>
243
343
  <p>BunnyClient#create_queue now may be called without a block to instantiate
244
344
  an AMQP queue without subscribing to messages</p>
245
- </li></ul>
246
-
247
- <h3 id="label-0.6.0+-28broken-29">0.6.0 (broken)</h3>
248
- <ul><li>
345
+ </li><li>
249
346
  <p>Added Client#rebind to change the exchange and routing keys for a durable
250
347
  named queue.</p>
251
348
  </li><li>
@@ -255,19 +352,19 @@ named queue.</p>
255
352
  modified EventObserver instances.</p>
256
353
  </li></ul>
257
354
 
258
- <h3 id="label-0.5.2">0.5.2</h3>
355
+ <h2 id="label-0.5.2">0.5.2</h2>
259
356
  <ul><li>
260
357
  <p>Fixed regexp bug in TestClient affecting message delivery</p>
261
358
  </li><li>
262
359
  <p>Add more logging for EventObserver binding</p>
263
360
  </li></ul>
264
361
 
265
- <h3 id="label-0.5.1">0.5.1</h3>
362
+ <h2 id="label-0.5.1">0.5.1</h2>
266
363
  <ul><li>
267
364
  <p>Added Event#attributes</p>
268
365
  </li></ul>
269
366
 
270
- <h3 id="label-0.5.0">0.5.0</h3>
367
+ <h2 id="label-0.5.0">0.5.0</h2>
271
368
  <ul><li>
272
369
  <p>Allow EventObserver classes to override the exchange for listening to
273
370
  events</p>
@@ -283,7 +380,7 @@ events appropriately when default columns are watched</p>
283
380
  <p>Moved requires for Isimud below config attribute declarations</p>
284
381
  </li></ul>
285
382
 
286
- <h3 id="label-0.4.10">0.4.10</h3>
383
+ <h2 id="label-0.4.10">0.4.10</h2>
287
384
  <ul><li>
288
385
  <p>Corrected trap of INT and TERM signals</p>
289
386
  </li><li>
@@ -292,12 +389,12 @@ events appropriately when default columns are watched</p>
292
389
  <p>Corrected race condition for registering EventObserver classes</p>
293
390
  </li></ul>
294
391
 
295
- <h3 id="label-0.4.5">0.4.5</h3>
392
+ <h2 id="label-0.4.5">0.4.5</h2>
296
393
  <ul><li>
297
394
  <p>Fixed issues with exception handling</p>
298
395
  </li></ul>
299
396
 
300
- <h3 id="label-0.4.1">0.4.1</h3>
397
+ <h2 id="label-0.4.1">0.4.1</h2>
301
398
  <ul><li>
302
399
  <p>Event now accepts an exchange option for publishing</p>
303
400
  </li><li>
@@ -306,7 +403,7 @@ events appropriately when default columns are watched</p>
306
403
  <p>Cleaned up initializer template</p>
307
404
  </li></ul>
308
405
 
309
- <h3 id="label-0.4.0">0.4.0</h3>
406
+ <h2 id="label-0.4.0">0.4.0</h2>
310
407
  <ul><li>
311
408
  <p>Event logging of published message now set to debug level</p>
312
409
  </li><li>
@@ -321,61 +418,61 @@ EventListener to intercept exceptions raised during message handling by an
321
418
  observer.</p>
322
419
  </li></ul>
323
420
 
324
- <h3 id="label-0.3.7">0.3.7</h3>
421
+ <h2 id="label-0.3.7">0.3.7</h2>
325
422
  <ul><li>
326
423
  <p>Added EventObserver mix-in</p>
327
424
  </li><li>
328
425
  <p>Added accessors for queues and routing_keys to TestClient</p>
329
426
  </li></ul>
330
427
 
331
- <h3 id="label-0.3.6">0.3.6</h3>
428
+ <h2 id="label-0.3.6">0.3.6</h2>
332
429
  <ul><li>
333
430
  <p>Reraise all exceptions in message processing block in BunnyClient#bind.</p>
334
431
  </li></ul>
335
432
 
336
- <h3 id="label-0.3.5">0.3.5</h3>
433
+ <h2 id="label-0.3.5">0.3.5</h2>
337
434
  <ul><li>
338
435
  <p>Fixed deprecation on setting manual ack on Bunny queue subscriptions.</p>
339
436
  </li></ul>
340
437
 
341
- <h3 id="label-0.3.4">0.3.4</h3>
438
+ <h2 id="label-0.3.4">0.3.4</h2>
342
439
  <ul><li>
343
440
  <p>Catch Timeout::Error in ModelWatcher.synchronize</p>
344
441
  </li></ul>
345
442
 
346
- <h3 id="label-0.3.1">0.3.1</h3>
443
+ <h2 id="label-0.3.1">0.3.1</h2>
347
444
  <ul><li>
348
445
  <p>Tuning gargabe collector on ModelWatcher.synchronize</p>
349
446
  </li></ul>
350
447
 
351
- <h3 id="label-0.3.0">0.3.0</h3>
448
+ <h2 id="label-0.3.0">0.3.0</h2>
352
449
  <ul><li>
353
450
  <p>Added rake task for manual synchronization using ModelWatcher</p>
354
451
  </li></ul>
355
452
 
356
- <h3 id="label-0.2.17">0.2.17</h3>
453
+ <h2 id="label-0.2.17">0.2.17</h2>
357
454
  <ul><li>
358
455
  <p>Added guard on null #updated_at instances</p>
359
456
  </li><li>
360
457
  <p>Added ModelWatcher#isimud_sync for manual synchronization</p>
361
458
  </li></ul>
362
459
 
363
- <h3 id="label-0.2.15">0.2.15</h3>
460
+ <h2 id="label-0.2.15">0.2.15</h2>
364
461
  <ul><li>
365
462
  <p>Changed Event#send to Event#publish, to avoid overloading Ruby.</p>
366
463
  </li></ul>
367
464
 
368
- <h3 id="label-0.2.13">0.2.13</h3>
465
+ <h2 id="label-0.2.13">0.2.13</h2>
369
466
  <ul><li>
370
467
  <p>Add :omit_parameters option to Event#as_json</p>
371
468
  </li></ul>
372
469
 
373
- <h3 id="label-0.2.12">0.2.12</h3>
470
+ <h2 id="label-0.2.12">0.2.12</h2>
374
471
  <ul><li>
375
472
  <p>Demodulize ActiveRecord model name when setting ModelWatcher event type</p>
376
473
  </li></ul>
377
474
 
378
- <h3 id="label-0.2.10">0.2.10</h3>
475
+ <h2 id="label-0.2.10">0.2.10</h2>
379
476
  <ul><li>
380
477
  <p>Added Isimud.retry_failures</p>
381
478
  </li><li>
@@ -388,30 +485,30 @@ default</p>
388
485
  called</p>
389
486
  </li></ul>
390
487
 
391
- <h3 id="label-0.2.4">0.2.4</h3>
488
+ <h2 id="label-0.2.4">0.2.4</h2>
392
489
  <ul><li>
393
490
  <p>Add Isimud::ModelWatcher#isimud_synchronize? to allow conditional
394
491
  synchronization. Override to activate.</p>
395
492
  </li></ul>
396
493
 
397
- <h3 id="label-0.2.2">0.2.2</h3>
494
+ <h2 id="label-0.2.2">0.2.2</h2>
398
495
  <ul><li>
399
496
  <p>Add enable_model_watcher configuration parameter (default is true)</p>
400
497
  </li></ul>
401
498
 
402
- <h3 id="label-0.2.0">0.2.0</h3>
499
+ <h2 id="label-0.2.0">0.2.0</h2>
403
500
  <ul><li>
404
501
  <p>Added Isimud::Event</p>
405
502
  </li><li>
406
503
  <p>Extracted Isimud::Client#log into Isimud::Logging module</p>
407
504
  </li></ul>
408
505
 
409
- <h3 id="label-0.1.4">0.1.4</h3>
506
+ <h2 id="label-0.1.4">0.1.4</h2>
410
507
  <ul><li>
411
508
  <p>Don&#39;t reject messages when exception is raised in bind block</p>
412
509
  </li></ul>
413
510
 
414
- <h3 id="label-0.1.3">0.1.3</h3>
511
+ <h2 id="label-0.1.3">0.1.3</h2>
415
512
  <ul><li>
416
513
  <p>Upgrade bunny gem requirement to 1.3.x</p>
417
514
  </li><li>
@@ -420,28 +517,23 @@ synchronization. Override to activate.</p>
420
517
  <p>Added log_level configuration parameter (default is :debug)</p>
421
518
  </li></ul>
422
519
 
423
- <h3 id="label-0.1.2">0.1.2</h3>
520
+ <h2 id="label-0.1.2">0.1.2</h2>
424
521
  <ul><li>
425
522
  <p>Reject message with requeue when an exception is raised during processing</p>
426
523
  </li></ul>
427
524
 
428
- <h3 id="label-0.1.1">0.1.1</h3>
525
+ <h2 id="label-0.1.1">0.1.1</h2>
429
526
  <ul><li>
430
527
  <p>Enable channel confirmations for message publication</p>
431
528
  </li></ul>
432
529
 
433
- <h3 id="label-0.1.0">0.1.0</h3>
530
+ <h2 id="label-0.1.0">0.1.0</h2>
434
531
  <ul><li>
435
532
  <p>ModelWatcher mix-in for ActiveRecord, sends events on instance changes</p>
436
533
  </li><li>
437
534
  <p>Initializer generator for Rails</p>
438
535
  </li></ul>
439
536
 
440
- <h3 id="label-0.0.8+-28first+working+version-29">0.0.8 (first working version)</h3>
441
- <ul><li>
442
- <p>Don&#39;t clear the queues when reconnecting TestClient</p>
443
- </li></ul>
444
-
445
537
  <h2 id="label-Contributing">Contributing</h2>
446
538
  <ol><li>
447
539
  <p>Fork it ( <a
@@ -460,9 +552,9 @@ feature&#39;</code>)</p>
460
552
  </div></div>
461
553
 
462
554
  <div id="footer">
463
- Generated on Mon Jan 18 17:07:52 2016 by
555
+ Generated on Wed Aug 24 18:59:44 2016 by
464
556
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
465
- 0.8.7.6 (ruby-2.2.3).
557
+ 0.8.7.6 (ruby-2.3.0).
466
558
  </div>
467
559
 
468
560
  </body>