isimud 0.7.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +1 -2
  4. data/.ruby-version +1 -1
  5. data/.yardoc/checksums +10 -10
  6. data/.yardoc/object_types +0 -0
  7. data/.yardoc/objects/root.dat +0 -0
  8. data/Gemfile +2 -1
  9. data/Gemfile.lock +63 -73
  10. data/LICENSE.txt +19 -0
  11. data/README.md +51 -3
  12. data/Rakefile +5 -0
  13. data/doc/Isimud/BunnyClient.html +882 -179
  14. data/doc/Isimud/Client.html +236 -18
  15. data/doc/Isimud/Event.html +211 -95
  16. data/doc/Isimud/EventListener.html +325 -307
  17. data/doc/Isimud/EventObserver/ClassMethods.html +14 -14
  18. data/doc/Isimud/EventObserver.html +418 -36
  19. data/doc/Isimud/Generators/ConfigGenerator.html +2 -2
  20. data/doc/Isimud/Generators/InitializerGenerator.html +2 -2
  21. data/doc/Isimud/Generators.html +2 -2
  22. data/doc/Isimud/Logging.html +3 -3
  23. data/doc/Isimud/ModelWatcher/ClassMethods.html +3 -3
  24. data/doc/Isimud/ModelWatcher.html +2 -2
  25. data/doc/Isimud/Railtie.html +2 -2
  26. data/doc/Isimud/TestClient/Queue.html +374 -71
  27. data/doc/Isimud/TestClient.html +169 -161
  28. data/doc/Isimud.html +80 -76
  29. data/doc/_index.html +5 -2
  30. data/doc/file.LICENSE.html +73 -0
  31. data/doc/file.README.html +131 -7
  32. data/doc/file_list.html +3 -0
  33. data/doc/index.html +131 -7
  34. data/doc/method_list.html +183 -105
  35. data/doc/top-level-namespace.html +2 -2
  36. data/isimud.gemspec +18 -16
  37. data/lib/isimud/bunny_client.rb +85 -32
  38. data/lib/isimud/client.rb +23 -7
  39. data/lib/isimud/event.rb +11 -14
  40. data/lib/isimud/event_listener.rb +123 -65
  41. data/lib/isimud/event_observer.rb +70 -10
  42. data/lib/isimud/model_watcher.rb +1 -1
  43. data/lib/isimud/test_client.rb +54 -26
  44. data/lib/isimud/version.rb +1 -1
  45. data/lib/isimud.rb +1 -1
  46. data/spec/internal/app/models/company.rb +8 -10
  47. data/spec/internal/app/models/user.rb +11 -1
  48. data/spec/internal/db/schema.rb +5 -0
  49. data/spec/isimud/bunny_client_spec.rb +21 -9
  50. data/spec/isimud/client_spec.rb +40 -0
  51. data/spec/isimud/event_listener_spec.rb +50 -22
  52. data/spec/isimud/event_observer_spec.rb +107 -16
  53. data/spec/isimud/model_watcher_spec.rb +18 -23
  54. data/spec/isimud/test_client_spec.rb +43 -8
  55. data/spec/isimud_spec.rb +2 -2
  56. data/spec/spec_helper.rb +2 -0
  57. metadata +19 -35
  58. checksums.yaml.gz.sig +0 -0
  59. data/certs/gfeil.pem +0 -21
  60. data/release +0 -31
  61. data.tar.gz.sig +0 -0
  62. metadata.gz.sig +0 -2
data/doc/index.html CHANGED
@@ -62,7 +62,7 @@
62
62
  <iframe id="search_frame"></iframe>
63
63
 
64
64
  <div id="content"><div id='filecontents'>
65
- <h1 id="label-Isimud-3A+AMQP+based+Messaging+abstraction+component.">Isimud: AMQP based Messaging abstraction component.</h1>
65
+ <h1 id="label-Isimud-3A+AMQP+based+Messaging+and+Event+Processing+Abstraction+Component.">Isimud: AMQP based Messaging and Event Processing Abstraction Component.</h1>
66
66
 
67
67
  <blockquote>
68
68
  <p>Isimud is a minor god, the messenger of the god Enki in Sumerian mythology.
@@ -87,7 +87,8 @@ whenever an ActiveRecord instance is created, modified, or destroyed.</p>
87
87
  <p>An Event Observer mixin for registering ActiveRecord models and instances
88
88
  with the EventListener for receiving messages.</p>
89
89
  </li><li>
90
- <p>An Event Listener daemon process which manages queues for Event Observers.</p>
90
+ <p>An Event Listener daemon process which manages queues and dispatches
91
+ messages for Event Observers.</p>
91
92
  </li></ul>
92
93
 
93
94
  <h2 id="label-Installation">Installation</h2>
@@ -161,9 +162,132 @@ messages. Named queues are automatically created if they do not exist.</p>
161
162
 
162
163
  <h2 id="label-Changes">Changes</h2>
163
164
 
164
- <h3 id="label-0.4.2">0.4.2</h3>
165
+ <h3 id="label-1.3.1">1.3.1</h3>
165
166
  <ul><li>
166
- <p>Fixed issue with exception handling</p>
167
+ <p>Add EventObserver#deactivate_observer to trigger queue deletion for an
168
+ observer instance.</p>
169
+ </li></ul>
170
+
171
+ <h3 id="label-1.3.0">1.3.0</h3>
172
+ <ul><li>
173
+ <p>Added a new method, EventListener#bind_event_queues() for registering
174
+ custom event handlers. Override this method instead of bind_queues() to
175
+ bind custom queues not handled by EventObserver instances.</p>
176
+ </li><li>
177
+ <p>Add local host name to the EventListener observer queue to avoid possible
178
+ collisions caused by processes on different hosts sharing the same PID.</p>
179
+ </li><li>
180
+ <p>Added lots of documentation.</p>
181
+ </li></ul>
182
+
183
+ <h3 id="label-1.2.1">1.2.1</h3>
184
+ <ul><li>
185
+ <p>Include attributes in ModelWatcher destroy message</p>
186
+ </li></ul>
187
+
188
+ <h3 id="label-1.2.0">1.2.0</h3>
189
+ <ul><li>
190
+ <p>EventObserver#update_queue now always binds current routing keys. This
191
+ ensures that when an enable_listener? changes state from false to true
192
+ during an update, all bindings for the queue are established.</p>
193
+ </li><li>
194
+ <p>Add EventObserver#activate_observer(), which creates and binds a queue for
195
+ an observer instance on demand.</p>
196
+ </li><li>
197
+ <p>Add declaration for Client#find_queue, and normalize the method signature
198
+ for subclasses.</p>
199
+ </li></ul>
200
+
201
+ <h3 id="label-1.1.0">1.1.0</h3>
202
+ <ul><li>
203
+ <p>Clients now support multiple exception handlers. Each call to
204
+ Client#on_exception will add a new block to the exception handlers list</p>
205
+ </li></ul>
206
+
207
+ <h3 id="label-1.0.2">1.0.2</h3>
208
+
209
+ <h4 id="label-Breaking+Changes-3A">Breaking Changes:</h4>
210
+ <ul><li>
211
+ <p>EventObserver instances are now required to have the persistent attribute
212
+ /exchange_routing_keys/. These are used to store the current value of
213
+ routing keys assoicated with an instance. The queue associated with an
214
+ EventObserver is now created and updated at the same time the
215
+ EventObserver is updated, rather than relying on the EventListener to
216
+ create it.</p>
217
+ </li><li>
218
+ <p>EventObserver#observe_events now has only one parameter, the Isimud::Client
219
+ instance. No queue bindings are done within this method.</p>
220
+ </li><li>
221
+ <p>Client#bind has been refactored in order to separate concerns. A new
222
+ method, #subscribe, is now used for subscribing to messages by linking a
223
+ Proc.</p>
224
+ </li><li>
225
+ <p>Client#create_queue no longer accepts a block parameter and does not
226
+ subscribe to messages.</p>
227
+ </li><li>
228
+ <p>Removed Client#rebind.</p>
229
+ </li></ul>
230
+
231
+ <h4 id="label-Other+Changes-3A">Other Changes:</h4>
232
+ <ul><li>
233
+ <p>TestClient::Queue now responds to bind() and unbind() in the same manner as
234
+ Bunny::Queue.</p>
235
+ </li><li>
236
+ <p>BunnyClient#create_queue now may be called without a block to instantiate
237
+ an AMQP queue without subscribing to messages</p>
238
+ </li></ul>
239
+
240
+ <h3 id="label-0.6.0+-28broken-29">0.6.0 (broken)</h3>
241
+ <ul><li>
242
+ <p>Added Client#rebind to change the exchange and routing keys for a durable
243
+ named queue.</p>
244
+ </li><li>
245
+ <p>Changed BunnyClient#delete_queue to make it more reliable.</p>
246
+ </li><li>
247
+ <p>EventListener now uses a shared, durable queue for monitoring events on
248
+ modified EventObserver instances.</p>
249
+ </li></ul>
250
+
251
+ <h3 id="label-0.5.2">0.5.2</h3>
252
+ <ul><li>
253
+ <p>Fixed regexp bug in TestClient affecting message delivery</p>
254
+ </li><li>
255
+ <p>Add more logging for EventObserver binding</p>
256
+ </li></ul>
257
+
258
+ <h3 id="label-0.5.1">0.5.1</h3>
259
+ <ul><li>
260
+ <p>Added Event#attributes</p>
261
+ </li></ul>
262
+
263
+ <h3 id="label-0.5.0">0.5.0</h3>
264
+ <ul><li>
265
+ <p>Allow EventObserver classes to override the exchange for listening to
266
+ events</p>
267
+ </li><li>
268
+ <p>Corrected initialization of EventListener for handling defaults</p>
269
+ </li><li>
270
+ <p>Create an explicit name for EventListener model queues for EventObserver
271
+ instances</p>
272
+ </li><li>
273
+ <p>Fixed a bug in EventObserver that caused ModelWatcher to not send update
274
+ events appropriately when default columns are watched</p>
275
+ </li><li>
276
+ <p>Moved requires for Isimud below config attribute declarations</p>
277
+ </li></ul>
278
+
279
+ <h3 id="label-0.4.10">0.4.10</h3>
280
+ <ul><li>
281
+ <p>Corrected trap of INT and TERM signals</p>
282
+ </li><li>
283
+ <p>Added error counter mutex and cleaned up logging</p>
284
+ </li><li>
285
+ <p>Corrected race condition for registering EventObserver classes</p>
286
+ </li></ul>
287
+
288
+ <h3 id="label-0.4.5">0.4.5</h3>
289
+ <ul><li>
290
+ <p>Fixed issues with exception handling</p>
167
291
  </li></ul>
168
292
 
169
293
  <h3 id="label-0.4.1">0.4.1</h3>
@@ -314,7 +438,7 @@ synchronization. Override to activate.</p>
314
438
  <h2 id="label-Contributing">Contributing</h2>
315
439
  <ol><li>
316
440
  <p>Fork it ( <a
317
- href="https://github.com/[my-github-username]/isimud/fork">github.com/[my-github-username]/isimud/fork</a>
441
+ href="https://github.com/KeasInc/isimud/fork">github.com/KeasInc/isimud/fork</a>
318
442
  )</p>
319
443
  </li><li>
320
444
  <p>Create your feature branch (<code>git checkout -b my-new-feature</code>)</p>
@@ -329,9 +453,9 @@ feature&#39;</code>)</p>
329
453
  </div></div>
330
454
 
331
455
  <div id="footer">
332
- Generated on Fri Apr 3 09:28:08 2015 by
456
+ Generated on Wed Jan 13 16:27:28 2016 by
333
457
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
334
- 0.8.7.6 (ruby-2.2.1).
458
+ 0.8.7.6 (ruby-2.2.3).
335
459
  </div>
336
460
 
337
461
  </body>