isimud 1.3.1 → 1.3.8
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 +4 -4
- data/.yardoc/checksums +3 -3
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/Gemfile.lock +5 -5
- data/README.md +28 -0
- data/doc/Isimud.html +2 -2
- data/doc/Isimud/BunnyClient.html +1 -1
- data/doc/Isimud/Client.html +1 -1
- data/doc/Isimud/Event.html +1 -1
- data/doc/Isimud/EventListener.html +1 -1
- data/doc/Isimud/EventObserver.html +1 -1
- data/doc/Isimud/EventObserver/ClassMethods.html +1 -1
- data/doc/Isimud/Generators.html +1 -1
- data/doc/Isimud/Generators/ConfigGenerator.html +1 -1
- data/doc/Isimud/Generators/InitializerGenerator.html +1 -1
- data/doc/Isimud/Logging.html +1 -1
- data/doc/Isimud/ModelWatcher.html +1 -1
- data/doc/Isimud/ModelWatcher/ClassMethods.html +1 -1
- data/doc/Isimud/Railtie.html +1 -1
- data/doc/Isimud/TestClient.html +41 -41
- data/doc/Isimud/TestClient/Queue.html +29 -27
- data/doc/_index.html +1 -1
- data/doc/file.LICENSE.html +1 -1
- data/doc/file.README.html +8 -1
- data/doc/index.html +8 -1
- data/doc/top-level-namespace.html +1 -1
- data/isimud.gemspec +1 -1
- data/lib/isimud/event_listener.rb +50 -37
- data/lib/isimud/event_observer.rb +10 -5
- data/lib/isimud/model_watcher.rb +1 -1
- data/lib/isimud/test_client.rb +5 -4
- data/lib/isimud/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c4bd12288bf7f6d9c776b2873356404985e009d5
|
|
4
|
+
data.tar.gz: e228c75de6ac2b514ac79769d092500acf13481b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b84a8cd3ad57e80fb9165cf16336d017e294f1244cb0d98bc278d9c209c116c590ce03e8e4c69b39f53ffe5ea4000e54e579e64626246a1a4497f0b6205300f
|
|
7
|
+
data.tar.gz: e5f2b25aa559d680d1e4521e246ed00a59328d4e3abe9a6fbfa32a437130b49f7761f5de3ed0208756425899565814e64279fee51e9a575720ecf910af84a2c0
|
data/.yardoc/checksums
CHANGED
|
@@ -2,14 +2,14 @@ lib/isimud.rb 5a9fee170ff924c6347d98fb5a80980d5f0ecc9a
|
|
|
2
2
|
lib/isimud/event.rb f29a804bfa084e68329825b5fb9863d268f3ff27
|
|
3
3
|
lib/isimud/tasks.rb 8d07d80e178928098e959ebdcbda1707e9b50617
|
|
4
4
|
lib/isimud/client.rb 88ffac5ff4cc3306d0f1c9f9a1ca9d5c344e81cf
|
|
5
|
-
lib/isimud/version.rb
|
|
5
|
+
lib/isimud/version.rb 3c726b1fa933bfa72e64a8c111f741f10a0a8220
|
|
6
6
|
lib/isimud/logging.rb 2f506f049011441628a3d573d8e2a670156b4a3a
|
|
7
7
|
lib/isimud/railtie.rb e644c4d74ae8298f11dd0c2fcae1d72259e24ea3
|
|
8
|
-
lib/isimud/test_client.rb
|
|
8
|
+
lib/isimud/test_client.rb e70e3b96b7cec013f8edcb4005ea72ea8acc48c7
|
|
9
9
|
lib/isimud/bunny_client.rb 7009922019087e2c9920073cb79c93aba8446dc4
|
|
10
10
|
lib/isimud/model_watcher.rb f6694603386e538f755ff7217f975f04c9529c26
|
|
11
11
|
lib/isimud/event_observer.rb 64c3af1d81df6a97cf9700eb71dc4d241f5b0044
|
|
12
|
-
lib/isimud/event_listener.rb
|
|
12
|
+
lib/isimud/event_listener.rb e7fea6bb36d76bc50c28c32869653d0558a3e7f7
|
|
13
13
|
lib/rails/generators/isimud/config_generator.rb d1c964f26c6e0f0289343bac17d3a9b1f99d7a98
|
|
14
14
|
lib/rails/generators/isimud/initializer_generator.rb c7b188459d17d35ccbfa820a434dd6a97a58aeeb
|
|
15
15
|
lib/rails/generators/isimud/templates/initializer.rb 6b937955296d704bfa4a06eec91ce14a6dd954ba
|
data/.yardoc/object_types
CHANGED
|
Binary file
|
data/.yardoc/objects/root.dat
CHANGED
|
Binary file
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
isimud (1.3.
|
|
4
|
+
isimud (1.3.8)
|
|
5
5
|
activerecord (>= 4.1.4)
|
|
6
6
|
activesupport (>= 4.1.4)
|
|
7
7
|
bunny (>= 1.6.0)
|
|
@@ -32,12 +32,12 @@ GEM
|
|
|
32
32
|
minitest (~> 5.1)
|
|
33
33
|
thread_safe (~> 0.1)
|
|
34
34
|
tzinfo (~> 1.1)
|
|
35
|
-
amq-protocol (2.0.
|
|
35
|
+
amq-protocol (2.0.1)
|
|
36
36
|
arel (5.0.1.20140414130214)
|
|
37
37
|
awesome_print (1.6.1)
|
|
38
38
|
builder (3.2.2)
|
|
39
|
-
bunny (2.
|
|
40
|
-
amq-protocol (>= 2.0.
|
|
39
|
+
bunny (2.3.0)
|
|
40
|
+
amq-protocol (>= 2.0.1)
|
|
41
41
|
chronic_duration (0.10.6)
|
|
42
42
|
numerizer (~> 0.1.1)
|
|
43
43
|
codeclimate-test-reporter (0.4.8)
|
|
@@ -110,4 +110,4 @@ DEPENDENCIES
|
|
|
110
110
|
yard
|
|
111
111
|
|
|
112
112
|
BUNDLED WITH
|
|
113
|
-
1.
|
|
113
|
+
1.11.2
|
data/README.md
CHANGED
|
@@ -77,6 +77,34 @@ if they do not exist.
|
|
|
77
77
|
|
|
78
78
|
## Changes
|
|
79
79
|
|
|
80
|
+
### 1.3.8
|
|
81
|
+
|
|
82
|
+
* In EventListener event thread, rescue all exceptions, not just Bunny ones.
|
|
83
|
+
|
|
84
|
+
### 1.3.7
|
|
85
|
+
|
|
86
|
+
* Change instance var 'status' inside the start event thread
|
|
87
|
+
|
|
88
|
+
### 1.3.6
|
|
89
|
+
|
|
90
|
+
* Don't include ModelWatcher attributes in event publish log message
|
|
91
|
+
* Include routing key in ModelWatcher event publish log message
|
|
92
|
+
|
|
93
|
+
### 1.3.5
|
|
94
|
+
|
|
95
|
+
* Added option to EventObserver#observe_events to recreate bindings for observer queues
|
|
96
|
+
* EventListener only create bindings and queues for EventObserver instances on initial startup
|
|
97
|
+
|
|
98
|
+
### 1.3.4
|
|
99
|
+
|
|
100
|
+
* Always recreate bindings for observer queues when EventListener starts the event thread.
|
|
101
|
+
* Cleaned up method signature on EventObserver#delete_queue so that a client may be passed to it.
|
|
102
|
+
|
|
103
|
+
### 1.3.3
|
|
104
|
+
|
|
105
|
+
* Fixed handling of exceptions in TestClient
|
|
106
|
+
* Make EventListener#has_observer? public
|
|
107
|
+
|
|
80
108
|
### 1.3.1
|
|
81
109
|
|
|
82
110
|
* Add EventObserver#deactivate_observer to trigger queue deletion for an observer instance.
|
data/doc/Isimud.html
CHANGED
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
<dt id="VERSION-constant" class="">VERSION =
|
|
126
126
|
|
|
127
127
|
</dt>
|
|
128
|
-
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1.3.
|
|
128
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1.3.2</span><span class='tstring_end'>'</span></span></pre></dd>
|
|
129
129
|
|
|
130
130
|
</dl>
|
|
131
131
|
|
|
@@ -1691,7 +1691,7 @@ it</p>
|
|
|
1691
1691
|
</div>
|
|
1692
1692
|
|
|
1693
1693
|
<div id="footer">
|
|
1694
|
-
Generated on
|
|
1694
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
1695
1695
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1696
1696
|
0.8.7.6 (ruby-2.2.3).
|
|
1697
1697
|
</div>
|
data/doc/Isimud/BunnyClient.html
CHANGED
|
@@ -1698,7 +1698,7 @@ be called.</code></pre>
|
|
|
1698
1698
|
</div>
|
|
1699
1699
|
|
|
1700
1700
|
<div id="footer">
|
|
1701
|
-
Generated on
|
|
1701
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
1702
1702
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1703
1703
|
0.8.7.6 (ruby-2.2.3).
|
|
1704
1704
|
</div>
|
data/doc/Isimud/Client.html
CHANGED
|
@@ -1021,7 +1021,7 @@ for instance.</p>
|
|
|
1021
1021
|
</div>
|
|
1022
1022
|
|
|
1023
1023
|
<div id="footer">
|
|
1024
|
-
Generated on
|
|
1024
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
1025
1025
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1026
1026
|
0.8.7.6 (ruby-2.2.3).
|
|
1027
1027
|
</div>
|
data/doc/Isimud/Event.html
CHANGED
|
@@ -1607,7 +1607,7 @@ based on the class and ID of the object.</p>
|
|
|
1607
1607
|
</div>
|
|
1608
1608
|
|
|
1609
1609
|
<div id="footer">
|
|
1610
|
-
Generated on
|
|
1610
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
1611
1611
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1612
1612
|
0.8.7.6 (ruby-2.2.3).
|
|
1613
1613
|
</div>
|
|
@@ -1226,7 +1226,7 @@ threads</p>
|
|
|
1226
1226
|
</div>
|
|
1227
1227
|
|
|
1228
1228
|
<div id="footer">
|
|
1229
|
-
Generated on
|
|
1229
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
1230
1230
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1231
1231
|
0.8.7.6 (ruby-2.2.3).
|
|
1232
1232
|
</div>
|
|
@@ -740,7 +740,7 @@ want to specify an alternative exchange.</p>
|
|
|
740
740
|
</div>
|
|
741
741
|
|
|
742
742
|
<div id="footer">
|
|
743
|
-
Generated on
|
|
743
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
744
744
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
745
745
|
0.8.7.6 (ruby-2.2.3).
|
|
746
746
|
</div>
|
|
@@ -283,7 +283,7 @@ class</p>
|
|
|
283
283
|
</div>
|
|
284
284
|
|
|
285
285
|
<div id="footer">
|
|
286
|
-
Generated on
|
|
286
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
287
287
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
288
288
|
0.8.7.6 (ruby-2.2.3).
|
|
289
289
|
</div>
|
data/doc/Isimud/Generators.html
CHANGED
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
</div>
|
|
109
109
|
|
|
110
110
|
<div id="footer">
|
|
111
|
-
Generated on
|
|
111
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
112
112
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
113
113
|
0.8.7.6 (ruby-2.2.3).
|
|
114
114
|
</div>
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
</div>
|
|
184
184
|
|
|
185
185
|
<div id="footer">
|
|
186
|
-
Generated on
|
|
186
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
187
187
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
188
188
|
0.8.7.6 (ruby-2.2.3).
|
|
189
189
|
</div>
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
</div>
|
|
184
184
|
|
|
185
185
|
<div id="footer">
|
|
186
|
-
Generated on
|
|
186
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
187
187
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
188
188
|
0.8.7.6 (ruby-2.2.3).
|
|
189
189
|
</div>
|
data/doc/Isimud/Logging.html
CHANGED
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
</div>
|
|
222
222
|
|
|
223
223
|
<div id="footer">
|
|
224
|
-
Generated on
|
|
224
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
225
225
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
226
226
|
0.8.7.6 (ruby-2.2.3).
|
|
227
227
|
</div>
|
|
@@ -303,7 +303,7 @@
|
|
|
303
303
|
</div>
|
|
304
304
|
|
|
305
305
|
<div id="footer">
|
|
306
|
-
Generated on
|
|
306
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
307
307
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
308
308
|
0.8.7.6 (ruby-2.2.3).
|
|
309
309
|
</div>
|
|
@@ -502,7 +502,7 @@ a return value may be included in the list of attributes.</p>
|
|
|
502
502
|
</div>
|
|
503
503
|
|
|
504
504
|
<div id="footer">
|
|
505
|
-
Generated on
|
|
505
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
506
506
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
507
507
|
0.8.7.6 (ruby-2.2.3).
|
|
508
508
|
</div>
|
data/doc/Isimud/Railtie.html
CHANGED
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
</div>
|
|
115
115
|
|
|
116
116
|
<div id="footer">
|
|
117
|
-
Generated on
|
|
117
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
118
118
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
119
119
|
0.8.7.6 (ruby-2.2.3).
|
|
120
120
|
</div>
|
data/doc/Isimud/TestClient.html
CHANGED
|
@@ -521,12 +521,12 @@ occur.</p>
|
|
|
521
521
|
<pre class="lines">
|
|
522
522
|
|
|
523
523
|
|
|
524
|
-
63
|
|
525
524
|
64
|
|
526
|
-
65
|
|
525
|
+
65
|
|
526
|
+
66</pre>
|
|
527
527
|
</td>
|
|
528
528
|
<td>
|
|
529
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
529
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 64</span>
|
|
530
530
|
|
|
531
531
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_connection'>connection</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
532
532
|
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_queues'>queues</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
@@ -606,13 +606,13 @@ occur.</p>
|
|
|
606
606
|
<pre class="lines">
|
|
607
607
|
|
|
608
608
|
|
|
609
|
-
86
|
|
610
609
|
87
|
|
611
610
|
88
|
|
612
|
-
89
|
|
611
|
+
89
|
|
612
|
+
90</pre>
|
|
613
613
|
</td>
|
|
614
614
|
<td>
|
|
615
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
615
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 87</span>
|
|
616
616
|
|
|
617
617
|
<span class='kw'>def</span> <span class='id identifier rubyid_bind'>bind</span><span class='lparen'>(</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='comma'>,</span> <span class='id identifier rubyid_exchange_name'>exchange_name</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
618
618
|
<span class='id identifier rubyid_queue'>queue</span> <span class='op'>=</span> <span class='id identifier rubyid_create_queue'>create_queue</span><span class='lparen'>(</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='comma'>,</span> <span class='id identifier rubyid_exchange_name'>exchange_name</span><span class='comma'>,</span> <span class='label'>routing_keys:</span> <span class='id identifier rubyid_keys'>keys</span><span class='rparen'>)</span>
|
|
@@ -638,12 +638,12 @@ occur.</p>
|
|
|
638
638
|
<pre class="lines">
|
|
639
639
|
|
|
640
640
|
|
|
641
|
-
71
|
|
642
641
|
72
|
|
643
|
-
73
|
|
642
|
+
73
|
|
643
|
+
74</pre>
|
|
644
644
|
</td>
|
|
645
645
|
<td>
|
|
646
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
646
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 72</span>
|
|
647
647
|
|
|
648
648
|
<span class='kw'>def</span> <span class='id identifier rubyid_channel'>channel</span>
|
|
649
649
|
<span class='kw'>self</span>
|
|
@@ -668,11 +668,11 @@ occur.</p>
|
|
|
668
668
|
<pre class="lines">
|
|
669
669
|
|
|
670
670
|
|
|
671
|
-
|
|
672
|
-
|
|
671
|
+
80
|
|
672
|
+
81</pre>
|
|
673
673
|
</td>
|
|
674
674
|
<td>
|
|
675
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
675
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 80</span>
|
|
676
676
|
|
|
677
677
|
<span class='kw'>def</span> <span class='id identifier rubyid_close'>close</span>
|
|
678
678
|
<span class='kw'>end</span></pre>
|
|
@@ -696,12 +696,12 @@ occur.</p>
|
|
|
696
696
|
<pre class="lines">
|
|
697
697
|
|
|
698
698
|
|
|
699
|
-
67
|
|
700
699
|
68
|
|
701
|
-
69
|
|
700
|
+
69
|
|
701
|
+
70</pre>
|
|
702
702
|
</td>
|
|
703
703
|
<td>
|
|
704
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
704
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 68</span>
|
|
705
705
|
|
|
706
706
|
<span class='kw'>def</span> <span class='id identifier rubyid_connect'>connect</span>
|
|
707
707
|
<span class='kw'>self</span>
|
|
@@ -748,12 +748,12 @@ occur.</p>
|
|
|
748
748
|
<pre class="lines">
|
|
749
749
|
|
|
750
750
|
|
|
751
|
-
75
|
|
752
751
|
76
|
|
753
|
-
77
|
|
752
|
+
77
|
|
753
|
+
78</pre>
|
|
754
754
|
</td>
|
|
755
755
|
<td>
|
|
756
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
756
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 76</span>
|
|
757
757
|
|
|
758
758
|
<span class='kw'>def</span> <span class='id identifier rubyid_connected?'>connected?</span>
|
|
759
759
|
<span class='kw'>true</span>
|
|
@@ -778,7 +778,6 @@ occur.</p>
|
|
|
778
778
|
<pre class="lines">
|
|
779
779
|
|
|
780
780
|
|
|
781
|
-
95
|
|
782
781
|
96
|
|
783
782
|
97
|
|
784
783
|
98
|
|
@@ -786,10 +785,11 @@ occur.</p>
|
|
|
786
785
|
100
|
|
787
786
|
101
|
|
788
787
|
102
|
|
789
|
-
103
|
|
788
|
+
103
|
|
789
|
+
104</pre>
|
|
790
790
|
</td>
|
|
791
791
|
<td>
|
|
792
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
792
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 96</span>
|
|
793
793
|
|
|
794
794
|
<span class='kw'>def</span> <span class='id identifier rubyid_create_queue'>create_queue</span><span class='lparen'>(</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='comma'>,</span> <span class='id identifier rubyid_exchange_name'>exchange_name</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
795
795
|
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:routing_keys</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
|
@@ -820,12 +820,12 @@ occur.</p>
|
|
|
820
820
|
<pre class="lines">
|
|
821
821
|
|
|
822
822
|
|
|
823
|
-
82
|
|
824
823
|
83
|
|
825
|
-
84
|
|
824
|
+
84
|
|
825
|
+
85</pre>
|
|
826
826
|
</td>
|
|
827
827
|
<td>
|
|
828
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
828
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 83</span>
|
|
829
829
|
|
|
830
830
|
<span class='kw'>def</span> <span class='id identifier rubyid_delete_queue'>delete_queue</span><span class='lparen'>(</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='rparen'>)</span>
|
|
831
831
|
<span class='id identifier rubyid_queues'>queues</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='rparen'>)</span>
|
|
@@ -850,15 +850,15 @@ occur.</p>
|
|
|
850
850
|
<pre class="lines">
|
|
851
851
|
|
|
852
852
|
|
|
853
|
-
91
|
|
854
853
|
92
|
|
855
|
-
93
|
|
854
|
+
93
|
|
855
|
+
94</pre>
|
|
856
856
|
</td>
|
|
857
857
|
<td>
|
|
858
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
858
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 92</span>
|
|
859
859
|
|
|
860
860
|
<span class='kw'>def</span> <span class='id identifier rubyid_find_queue'>find_queue</span><span class='lparen'>(</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
861
|
-
<span class='id identifier rubyid_queues'>queues</span><span class='lbracket'>[</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='const'>Queue</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='rparen'>)</span>
|
|
861
|
+
<span class='id identifier rubyid_queues'>queues</span><span class='lbracket'>[</span><span class='id identifier rubyid_queue_name'>queue_name</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='const'>Queue</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_queue_name'>queue_name</span><span class='rparen'>)</span>
|
|
862
862
|
<span class='kw'>end</span></pre>
|
|
863
863
|
</td>
|
|
864
864
|
</tr>
|
|
@@ -880,17 +880,17 @@ occur.</p>
|
|
|
880
880
|
<pre class="lines">
|
|
881
881
|
|
|
882
882
|
|
|
883
|
-
110
|
|
884
883
|
111
|
|
885
884
|
112
|
|
886
885
|
113
|
|
887
886
|
114
|
|
888
887
|
115
|
|
889
888
|
116
|
|
890
|
-
117
|
|
889
|
+
117
|
|
890
|
+
118</pre>
|
|
891
891
|
</td>
|
|
892
892
|
<td>
|
|
893
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
893
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 111</span>
|
|
894
894
|
|
|
895
895
|
<span class='kw'>def</span> <span class='id identifier rubyid_publish'>publish</span><span class='lparen'>(</span><span class='id identifier rubyid_exchange'>exchange</span><span class='comma'>,</span> <span class='id identifier rubyid_routing_key'>routing_key</span><span class='comma'>,</span> <span class='id identifier rubyid_payload'>payload</span><span class='rparen'>)</span>
|
|
896
896
|
<span class='id identifier rubyid_log'>log</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Isimud::TestClient: Delivering message exchange: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_exchange'>exchange</span><span class='embexpr_end'>}</span><span class='tstring_content'> key: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_routing_key'>routing_key</span><span class='embexpr_end'>}</span><span class='tstring_content'> payload: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_payload'>payload</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
|
@@ -920,12 +920,12 @@ occur.</p>
|
|
|
920
920
|
<pre class="lines">
|
|
921
921
|
|
|
922
922
|
|
|
923
|
-
123
|
|
924
923
|
124
|
|
925
|
-
125
|
|
924
|
+
125
|
|
925
|
+
126</pre>
|
|
926
926
|
</td>
|
|
927
927
|
<td>
|
|
928
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
928
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 124</span>
|
|
929
929
|
|
|
930
930
|
<span class='kw'>def</span> <span class='id identifier rubyid_reconnect'>reconnect</span>
|
|
931
931
|
<span class='kw'>self</span>
|
|
@@ -950,12 +950,12 @@ occur.</p>
|
|
|
950
950
|
<pre class="lines">
|
|
951
951
|
|
|
952
952
|
|
|
953
|
-
119
|
|
954
953
|
120
|
|
955
|
-
121
|
|
954
|
+
121
|
|
955
|
+
122</pre>
|
|
956
956
|
</td>
|
|
957
957
|
<td>
|
|
958
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
958
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 120</span>
|
|
959
959
|
|
|
960
960
|
<span class='kw'>def</span> <span class='id identifier rubyid_reset'>reset</span>
|
|
961
961
|
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_queues'>queues</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span>
|
|
@@ -980,13 +980,13 @@ occur.</p>
|
|
|
980
980
|
<pre class="lines">
|
|
981
981
|
|
|
982
982
|
|
|
983
|
-
105
|
|
984
983
|
106
|
|
985
984
|
107
|
|
986
|
-
108
|
|
985
|
+
108
|
|
986
|
+
109</pre>
|
|
987
987
|
</td>
|
|
988
988
|
<td>
|
|
989
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
989
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 106</span>
|
|
990
990
|
|
|
991
991
|
<span class='kw'>def</span> <span class='id identifier rubyid_subscribe'>subscribe</span><span class='lparen'>(</span><span class='id identifier rubyid_queue'>queue</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
992
992
|
<span class='id identifier rubyid_queue'>queue</span><span class='period'>.</span><span class='id identifier rubyid_proc'>proc</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
|
|
@@ -1002,7 +1002,7 @@ occur.</p>
|
|
|
1002
1002
|
</div>
|
|
1003
1003
|
|
|
1004
1004
|
<div id="footer">
|
|
1005
|
-
Generated on
|
|
1005
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
1006
1006
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1007
1007
|
0.8.7.6 (ruby-2.2.3).
|
|
1008
1008
|
</div>
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
<li class="public ">
|
|
322
322
|
<span class="summary_signature">
|
|
323
323
|
|
|
324
|
-
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Queue) <strong>initialize</strong>(name, proc = Proc.new{ |_| }) </a>
|
|
324
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Queue) <strong>initialize</strong>(client, name, proc = Proc.new{ |_| }) </a>
|
|
325
325
|
|
|
326
326
|
|
|
327
327
|
|
|
@@ -408,7 +408,7 @@
|
|
|
408
408
|
<div class="method_details first">
|
|
409
409
|
<h3 class="signature first" id="initialize-instance_method">
|
|
410
410
|
|
|
411
|
-
- (<tt><span class='object_link'><a href="" title="Isimud::TestClient::Queue (class)">Queue</a></span></tt>) <strong>initialize</strong>(name, proc = Proc.new{ |_| })
|
|
411
|
+
- (<tt><span class='object_link'><a href="" title="Isimud::TestClient::Queue (class)">Queue</a></span></tt>) <strong>initialize</strong>(client, name, proc = Proc.new{ |_| })
|
|
412
412
|
|
|
413
413
|
|
|
414
414
|
|
|
@@ -435,12 +435,14 @@
|
|
|
435
435
|
18
|
|
436
436
|
19
|
|
437
437
|
20
|
|
438
|
-
21
|
|
438
|
+
21
|
|
439
|
+
22</pre>
|
|
439
440
|
</td>
|
|
440
441
|
<td>
|
|
441
442
|
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 17</span>
|
|
442
443
|
|
|
443
|
-
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_proc'>proc</span> <span class='op'>=</span> <span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='rbrace'>}</span> <span class='rparen'>)</span>
|
|
444
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_client'>client</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_proc'>proc</span> <span class='op'>=</span> <span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='rbrace'>}</span> <span class='rparen'>)</span>
|
|
445
|
+
<span class='ivar'>@client</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span>
|
|
444
446
|
<span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
|
|
445
447
|
<span class='ivar'>@bindings</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='op'>|</span> <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Set</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='rbrace'>}</span>
|
|
446
448
|
<span class='ivar'>@proc</span> <span class='op'>=</span> <span class='id identifier rubyid_proc'>proc</span>
|
|
@@ -606,14 +608,14 @@
|
|
|
606
608
|
<pre class="lines">
|
|
607
609
|
|
|
608
610
|
|
|
609
|
-
23
|
|
610
611
|
24
|
|
611
612
|
25
|
|
612
613
|
26
|
|
613
|
-
27
|
|
614
|
+
27
|
|
615
|
+
28</pre>
|
|
614
616
|
</td>
|
|
615
617
|
<td>
|
|
616
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
618
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 24</span>
|
|
617
619
|
|
|
618
620
|
<span class='kw'>def</span> <span class='id identifier rubyid_bind'>bind</span><span class='lparen'>(</span><span class='id identifier rubyid_exchange'>exchange</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
619
621
|
<span class='id identifier rubyid_routing_key'>routing_key</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:routing_key</span><span class='rbracket'>]</span>
|
|
@@ -640,12 +642,12 @@
|
|
|
640
642
|
<pre class="lines">
|
|
641
643
|
|
|
642
644
|
|
|
643
|
-
29
|
|
644
645
|
30
|
|
645
|
-
31
|
|
646
|
+
31
|
|
647
|
+
32</pre>
|
|
646
648
|
</td>
|
|
647
649
|
<td>
|
|
648
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
650
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 30</span>
|
|
649
651
|
|
|
650
652
|
<span class='kw'>def</span> <span class='id identifier rubyid_cancel'>cancel</span>
|
|
651
653
|
<span class='ivar'>@proc</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
|
@@ -670,14 +672,14 @@
|
|
|
670
672
|
<pre class="lines">
|
|
671
673
|
|
|
672
674
|
|
|
673
|
-
33
|
|
674
675
|
34
|
|
675
676
|
35
|
|
676
677
|
36
|
|
677
|
-
37
|
|
678
|
+
37
|
|
679
|
+
38</pre>
|
|
678
680
|
</td>
|
|
679
681
|
<td>
|
|
680
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
682
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 34</span>
|
|
681
683
|
|
|
682
684
|
<span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
683
685
|
<span class='id identifier rubyid_log'>log</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TestClient: delete queue </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
|
@@ -704,24 +706,24 @@
|
|
|
704
706
|
<pre class="lines">
|
|
705
707
|
|
|
706
708
|
|
|
707
|
-
53
|
|
708
709
|
54
|
|
709
710
|
55
|
|
710
711
|
56
|
|
711
712
|
57
|
|
712
713
|
58
|
|
713
714
|
59
|
|
714
|
-
60
|
|
715
|
+
60
|
|
716
|
+
61</pre>
|
|
715
717
|
</td>
|
|
716
718
|
<td>
|
|
717
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
719
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 54</span>
|
|
718
720
|
|
|
719
721
|
<span class='kw'>def</span> <span class='id identifier rubyid_deliver'>deliver</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
|
|
720
722
|
<span class='kw'>begin</span>
|
|
721
723
|
<span class='ivar'>@proc</span><span class='period'>.</span><span class='id identifier rubyid_try'>try</span><span class='lparen'>(</span><span class='symbol'>:call</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
|
|
722
724
|
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
|
723
725
|
<span class='id identifier rubyid_log'>log</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TestClient: error delivering message: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_content'>\n </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\n </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='symbol'>:error</span>
|
|
724
|
-
<span class='id identifier rubyid_run_exception_handlers'>run_exception_handlers</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='rparen'>)</span>
|
|
726
|
+
<span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_run_exception_handlers'>run_exception_handlers</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='rparen'>)</span>
|
|
725
727
|
<span class='kw'>end</span>
|
|
726
728
|
<span class='kw'>end</span></pre>
|
|
727
729
|
</td>
|
|
@@ -766,12 +768,12 @@
|
|
|
766
768
|
<pre class="lines">
|
|
767
769
|
|
|
768
770
|
|
|
769
|
-
49
|
|
770
771
|
50
|
|
771
|
-
51
|
|
772
|
+
51
|
|
773
|
+
52</pre>
|
|
772
774
|
</td>
|
|
773
775
|
<td>
|
|
774
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
776
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 50</span>
|
|
775
777
|
|
|
776
778
|
<span class='kw'>def</span> <span class='id identifier rubyid_has_matching_key?'>has_matching_key?</span><span class='lparen'>(</span><span class='id identifier rubyid_exchange'>exchange</span><span class='comma'>,</span> <span class='id identifier rubyid_route'>route</span><span class='rparen'>)</span>
|
|
777
779
|
<span class='ivar'>@bindings</span><span class='lbracket'>[</span><span class='id identifier rubyid_exchange'>exchange</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='op'>|</span> <span class='id identifier rubyid_route'>route</span> <span class='op'>=~</span> <span class='id identifier rubyid_make_regexp'>make_regexp</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
|
@@ -796,12 +798,12 @@
|
|
|
796
798
|
<pre class="lines">
|
|
797
799
|
|
|
798
800
|
|
|
799
|
-
45
|
|
800
801
|
46
|
|
801
|
-
47
|
|
802
|
+
47
|
|
803
|
+
48</pre>
|
|
802
804
|
</td>
|
|
803
805
|
<td>
|
|
804
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
806
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 46</span>
|
|
805
807
|
|
|
806
808
|
<span class='kw'>def</span> <span class='id identifier rubyid_make_regexp'>make_regexp</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
807
809
|
<span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\.</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\\.</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\*</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.*</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
@@ -826,14 +828,14 @@
|
|
|
826
828
|
<pre class="lines">
|
|
827
829
|
|
|
828
830
|
|
|
829
|
-
39
|
|
830
831
|
40
|
|
831
832
|
41
|
|
832
833
|
42
|
|
833
|
-
43
|
|
834
|
+
43
|
|
835
|
+
44</pre>
|
|
834
836
|
</td>
|
|
835
837
|
<td>
|
|
836
|
-
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line
|
|
838
|
+
<pre class="code"><span class="info file"># File 'lib/isimud/test_client.rb', line 40</span>
|
|
837
839
|
|
|
838
840
|
<span class='kw'>def</span> <span class='id identifier rubyid_unbind'>unbind</span><span class='lparen'>(</span><span class='id identifier rubyid_exchange'>exchange</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
839
841
|
<span class='id identifier rubyid_routing_key'>routing_key</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:routing_key</span><span class='rbracket'>]</span>
|
|
@@ -850,7 +852,7 @@
|
|
|
850
852
|
</div>
|
|
851
853
|
|
|
852
854
|
<div id="footer">
|
|
853
|
-
Generated on
|
|
855
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
854
856
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
855
857
|
0.8.7.6 (ruby-2.2.3).
|
|
856
858
|
</div>
|
data/doc/_index.html
CHANGED
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
</div>
|
|
285
285
|
|
|
286
286
|
<div id="footer">
|
|
287
|
-
Generated on
|
|
287
|
+
Generated on Mon Jan 18 17:07:51 2016 by
|
|
288
288
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
289
289
|
0.8.7.6 (ruby-2.2.3).
|
|
290
290
|
</div>
|
data/doc/file.LICENSE.html
CHANGED
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
<div id="content"><div id='filecontents'>Copyright (c) 2016 Keas Inc.<br/><br/>Permission is hereby granted, free of charge, to any person obtaining a copy<br/>of this software and associated documentation files (the "Software"), to deal<br/>in the Software without restriction, including without limitation the rights<br/>to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br/>copies of the Software, and to permit persons to whom the Software is<br/>furnished to do so, subject to the following conditions:<br/><br/>The above copyright notice and this permission notice shall be included in all<br/>copies or substantial portions of the Software.<br/><br/>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br/>IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br/>FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<br/>AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br/>LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br/>OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE<br/>SOFTWARE.</div></div>
|
|
65
65
|
|
|
66
66
|
<div id="footer">
|
|
67
|
-
Generated on
|
|
67
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
68
68
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
69
69
|
0.8.7.6 (ruby-2.2.3).
|
|
70
70
|
</div>
|
data/doc/file.README.html
CHANGED
|
@@ -162,6 +162,13 @@ messages. Named queues are automatically created if they do not exist.</p>
|
|
|
162
162
|
|
|
163
163
|
<h2 id="label-Changes">Changes</h2>
|
|
164
164
|
|
|
165
|
+
<h3 id="label-1.3.2">1.3.2</h3>
|
|
166
|
+
<ul><li>
|
|
167
|
+
<p>Fixed handling of exceptions in TestClient</p>
|
|
168
|
+
</li><li>
|
|
169
|
+
<p>Make EventListener#has_observer? public</p>
|
|
170
|
+
</li></ul>
|
|
171
|
+
|
|
165
172
|
<h3 id="label-1.3.1">1.3.1</h3>
|
|
166
173
|
<ul><li>
|
|
167
174
|
<p>Add EventObserver#deactivate_observer to trigger queue deletion for an
|
|
@@ -453,7 +460,7 @@ feature'</code>)</p>
|
|
|
453
460
|
</div></div>
|
|
454
461
|
|
|
455
462
|
<div id="footer">
|
|
456
|
-
Generated on
|
|
463
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
457
464
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
458
465
|
0.8.7.6 (ruby-2.2.3).
|
|
459
466
|
</div>
|
data/doc/index.html
CHANGED
|
@@ -162,6 +162,13 @@ messages. Named queues are automatically created if they do not exist.</p>
|
|
|
162
162
|
|
|
163
163
|
<h2 id="label-Changes">Changes</h2>
|
|
164
164
|
|
|
165
|
+
<h3 id="label-1.3.2">1.3.2</h3>
|
|
166
|
+
<ul><li>
|
|
167
|
+
<p>Fixed handling of exceptions in TestClient</p>
|
|
168
|
+
</li><li>
|
|
169
|
+
<p>Make EventListener#has_observer? public</p>
|
|
170
|
+
</li></ul>
|
|
171
|
+
|
|
165
172
|
<h3 id="label-1.3.1">1.3.1</h3>
|
|
166
173
|
<ul><li>
|
|
167
174
|
<p>Add EventObserver#deactivate_observer to trigger queue deletion for an
|
|
@@ -453,7 +460,7 @@ feature'</code>)</p>
|
|
|
453
460
|
</div></div>
|
|
454
461
|
|
|
455
462
|
<div id="footer">
|
|
456
|
-
Generated on
|
|
463
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
457
464
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
458
465
|
0.8.7.6 (ruby-2.2.3).
|
|
459
466
|
</div>
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
</div>
|
|
104
104
|
|
|
105
105
|
<div id="footer">
|
|
106
|
-
Generated on
|
|
106
|
+
Generated on Mon Jan 18 17:07:52 2016 by
|
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
108
108
|
0.8.7.6 (ruby-2.2.3).
|
|
109
109
|
</div>
|
data/isimud.gemspec
CHANGED
|
@@ -16,7 +16,7 @@ Isimud is an AMQP message publishing and consumption gem that is intended for ma
|
|
|
16
16
|
* A test client which mocks most client operations and allows for synchronous delivery and processing of messages for unit tests.
|
|
17
17
|
* A Model Watcher mixin for ActiveRecord that automatically sends messages whenever an ActiveRecord instance is created, modified, or destroyed.
|
|
18
18
|
* An Event Observer mixin for registering ActiveRecord models and instances with the EventListener for receiving messages.
|
|
19
|
-
* An Event Listener daemon process which manages queues and dispatches messages for Event Observers.
|
|
19
|
+
* An Event Listener daemon process which manages queues and dispatches messages for Event Observers and other consumers.
|
|
20
20
|
EOT
|
|
21
21
|
spec.homepage = 'https://github.com/KeasInc/isimud'
|
|
22
22
|
spec.license = 'MITNFA'
|
|
@@ -43,21 +43,21 @@ module Isimud
|
|
|
43
43
|
# Whenever a Bunny exception is rescued in the event processing thread, the Bunny session is closed (canceling all
|
|
44
44
|
# queue consumers), in addition to the error being counted, all Bunny channels are closed, and queues are
|
|
45
45
|
# reinitialized.
|
|
46
|
-
class EventListener
|
|
46
|
+
class EventListener
|
|
47
47
|
include Logging
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
# @return [Integer] count of errors (uncaught exceptions) that have occurred in the current error interval
|
|
49
|
+
attr_reader :error_count, :error_interval, :error_limit, :name, :queues, :events_exchange, :models_exchange, :status
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
DEFAULT_ERROR_LIMIT = 10
|
|
56
|
-
DEFAULT_ERROR_INTERVAL = 3600
|
|
51
|
+
DEFAULT_ERROR_LIMIT = 10
|
|
52
|
+
DEFAULT_ERROR_INTERVAL = 3600
|
|
57
53
|
|
|
58
54
|
DEFAULT_EVENTS_EXCHANGE = 'events'
|
|
59
55
|
DEFAULT_MODELS_EXCHANGE = 'models'
|
|
60
56
|
|
|
57
|
+
STATUS_INITIALIZE = :initialize
|
|
58
|
+
STATUS_RUNNING = :running
|
|
59
|
+
STATUS_SHUTDOWN = :shutdown
|
|
60
|
+
|
|
61
61
|
# Initialize a new EventListener daemon instance
|
|
62
62
|
# @param [Hash] options daemon options
|
|
63
63
|
# @option options [Integer] :error_limit (10) maximum number of errors that are allowed to occur within error_interval
|
|
@@ -69,29 +69,28 @@ class EventListener
|
|
|
69
69
|
# @option options [String] :name ("#{Rails.application.class.parent_name.downcase}-listener") daemon instance name.
|
|
70
70
|
def initialize(options = {})
|
|
71
71
|
default_options = {
|
|
72
|
-
error_limit:
|
|
73
|
-
error_interval:
|
|
74
|
-
events_exchange:
|
|
75
|
-
models_exchange:
|
|
76
|
-
name:
|
|
72
|
+
error_limit: Isimud.listener_error_limit || DEFAULT_ERROR_LIMIT,
|
|
73
|
+
error_interval: DEFAULT_ERROR_INTERVAL,
|
|
74
|
+
events_exchange: Isimud.events_exchange || DEFAULT_EVENTS_EXCHANGE,
|
|
75
|
+
models_exchange: Isimud.model_watcher_exchange || DEFAULT_MODELS_EXCHANGE,
|
|
76
|
+
name: "#{Rails.application.class.parent_name.downcase}-listener"
|
|
77
77
|
}
|
|
78
78
|
options.reverse_merge!(default_options)
|
|
79
|
-
@error_count
|
|
80
|
-
@observers
|
|
81
|
-
@observed_models
|
|
82
|
-
@error_limit
|
|
83
|
-
@error_interval
|
|
84
|
-
@events_exchange
|
|
85
|
-
@models_exchange
|
|
86
|
-
@name
|
|
87
|
-
@observer_mutex
|
|
88
|
-
@error_counter_mutex
|
|
89
|
-
@
|
|
79
|
+
@error_count = 0
|
|
80
|
+
@observers = Hash.new
|
|
81
|
+
@observed_models = Set.new
|
|
82
|
+
@error_limit = options[:error_limit]
|
|
83
|
+
@error_interval = options[:error_interval]
|
|
84
|
+
@events_exchange = options[:events_exchange]
|
|
85
|
+
@models_exchange = options[:models_exchange]
|
|
86
|
+
@name = options[:name]
|
|
87
|
+
@observer_mutex = Mutex.new
|
|
88
|
+
@error_counter_mutex = Mutex.new
|
|
89
|
+
@status = STATUS_INITIALIZE
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
# Run the daemon process. This creates the event, error counter, and shutdown threads
|
|
93
93
|
def run
|
|
94
|
-
@running = true
|
|
95
94
|
bind_queues and return if test_env?
|
|
96
95
|
start_shutdown_thread
|
|
97
96
|
start_error_counter_thread
|
|
@@ -117,6 +116,11 @@ class EventListener
|
|
|
117
116
|
bind_event_queues
|
|
118
117
|
end
|
|
119
118
|
|
|
119
|
+
# @private
|
|
120
|
+
def has_observer?(observer)
|
|
121
|
+
@observers.has_key?(observer_key_for(observer.class, observer.id))
|
|
122
|
+
end
|
|
123
|
+
|
|
120
124
|
private
|
|
121
125
|
|
|
122
126
|
def test_env?
|
|
@@ -139,15 +143,11 @@ class EventListener
|
|
|
139
143
|
end
|
|
140
144
|
end
|
|
141
145
|
|
|
142
|
-
def has_observer?(observer)
|
|
143
|
-
@observers.has_key?(observer_key_for(observer.class, observer.id))
|
|
144
|
-
end
|
|
145
|
-
|
|
146
146
|
def start_shutdown_thread
|
|
147
147
|
shutdown_thread = Thread.new do
|
|
148
148
|
Thread.stop # wait until we get a TERM or INT signal.
|
|
149
149
|
log 'EventListener: shutdown requested. Shutting down AMQP...', :info
|
|
150
|
-
@
|
|
150
|
+
@status = STATUS_SHUTDOWN
|
|
151
151
|
Thread.main.run
|
|
152
152
|
end
|
|
153
153
|
%w(SIGINT SIGTERM).each { |sig| trap(sig) { shutdown_thread.wakeup } }
|
|
@@ -157,15 +157,28 @@ class EventListener
|
|
|
157
157
|
Isimud.client
|
|
158
158
|
end
|
|
159
159
|
|
|
160
|
+
def initializing?
|
|
161
|
+
status == STATUS_INITIALIZE
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def running?
|
|
165
|
+
status == STATUS_RUNNING
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def shutdown?
|
|
169
|
+
status == STATUS_SHUTDOWN
|
|
170
|
+
end
|
|
171
|
+
|
|
160
172
|
def start_event_thread
|
|
161
173
|
Thread.new do
|
|
162
174
|
log 'EventListener: starting event_thread'
|
|
163
|
-
|
|
175
|
+
until shutdown? do
|
|
164
176
|
begin
|
|
165
177
|
bind_queues
|
|
166
178
|
log 'EventListener: event_thread finished'
|
|
179
|
+
@status = STATUS_RUNNING
|
|
167
180
|
Thread.stop
|
|
168
|
-
rescue
|
|
181
|
+
rescue => e
|
|
169
182
|
count_error(e)
|
|
170
183
|
log 'EventListener: resetting queues', :warn
|
|
171
184
|
@observer_queue = nil
|
|
@@ -181,7 +194,7 @@ class EventListener
|
|
|
181
194
|
log "EventListener#count_error count = #{@error_count} limit=#{error_limit}", :warn
|
|
182
195
|
if (@error_count >= error_limit)
|
|
183
196
|
log 'EventListener: too many errors, exiting', :fatal
|
|
184
|
-
@
|
|
197
|
+
@status = STATUS_SHUTDOWN
|
|
185
198
|
Thread.main.run unless test_env?
|
|
186
199
|
end
|
|
187
200
|
end
|
|
@@ -202,7 +215,7 @@ class EventListener
|
|
|
202
215
|
end
|
|
203
216
|
|
|
204
217
|
def handle_observer_event(payload)
|
|
205
|
-
event
|
|
218
|
+
event = JSON.parse(payload).with_indifferent_access
|
|
206
219
|
action = event[:action]
|
|
207
220
|
log "EventListener: received observer model message: #{event.inspect}"
|
|
208
221
|
if %w(update destroy).include?(action)
|
|
@@ -229,7 +242,7 @@ class EventListener
|
|
|
229
242
|
def register_observer(observer)
|
|
230
243
|
@observer_mutex.synchronize do
|
|
231
244
|
log "EventListener: registering observer #{observer.class} #{observer.id}"
|
|
232
|
-
@observers[observer_key_for(observer.class, observer.id)] = observer.observe_events(client)
|
|
245
|
+
@observers[observer_key_for(observer.class, observer.id)] = observer.observe_events(client, initializing?)
|
|
233
246
|
end
|
|
234
247
|
end
|
|
235
248
|
|
|
@@ -247,8 +260,8 @@ class EventListener
|
|
|
247
260
|
def observer_queue
|
|
248
261
|
@observer_queue ||= client.create_queue([name, 'listener', Socket.gethostname, Process.pid].join('.'),
|
|
249
262
|
models_exchange,
|
|
250
|
-
queue_options:
|
|
251
|
-
subscribe_options:
|
|
263
|
+
queue_options: {exclusive: true},
|
|
264
|
+
subscribe_options: {manual_ack: true})
|
|
252
265
|
end
|
|
253
266
|
|
|
254
267
|
def observer_key_for(type, id)
|
|
@@ -52,10 +52,14 @@ module Isimud
|
|
|
52
52
|
|
|
53
53
|
# Create or attach to a queue on the specified exchange. When an event message that matches the observer's routing keys
|
|
54
54
|
# is received, parse the event and call handle_event on same.
|
|
55
|
-
#
|
|
56
|
-
|
|
55
|
+
# @param [Isimud::Client] client client instance
|
|
56
|
+
# @param [Boolean] refresh_bindings when set, refresh bindings on queue (true)
|
|
57
|
+
# @return queue or consumer object
|
|
58
|
+
# @see BunnyClient#subscribe
|
|
59
|
+
# @see TestClient#subscribe
|
|
60
|
+
def observe_events(client, refresh_bindings = true)
|
|
57
61
|
return unless enable_listener?
|
|
58
|
-
queue = client.kind_of?(Isimud::TestClient) ? create_queue(client) : client.find_queue(event_queue_name)
|
|
62
|
+
queue = (refresh_bindings || client.kind_of?(Isimud::TestClient)) ? create_queue(client) : client.find_queue(event_queue_name)
|
|
59
63
|
client.subscribe(queue) do |message|
|
|
60
64
|
event = Event.parse(message)
|
|
61
65
|
handle_event(event)
|
|
@@ -102,14 +106,15 @@ module Isimud
|
|
|
102
106
|
queue = isimud_client.find_queue(event_queue_name)
|
|
103
107
|
exchange = observed_exchange || Isimud.events_exchange
|
|
104
108
|
(prev_keys - current_keys).each { |key| queue.unbind(exchange, routing_key: key) }
|
|
109
|
+
log "Isimud::EventObserver: binding queue #{event_queue_name} on exchange #{exchange} with bindings [#{current_keys.join(',')}]"
|
|
105
110
|
(current_keys).each { |key| queue.bind(exchange, routing_key: key) }
|
|
106
111
|
else
|
|
107
112
|
isimud_client.delete_queue(event_queue_name)
|
|
108
113
|
end
|
|
109
114
|
end
|
|
110
115
|
|
|
111
|
-
def delete_queue
|
|
112
|
-
|
|
116
|
+
def delete_queue(client = isimud_client)
|
|
117
|
+
client.delete_queue(event_queue_name)
|
|
113
118
|
end
|
|
114
119
|
|
|
115
120
|
def set_routing_keys
|
data/lib/isimud/model_watcher.rb
CHANGED
|
@@ -137,7 +137,7 @@ module Isimud
|
|
|
137
137
|
}
|
|
138
138
|
payload[:attributes] = isimud_attribute_data
|
|
139
139
|
routing_key = isimud_model_watcher_routing_key(action)
|
|
140
|
-
log "Isimud::ModelWatcher#publish: exchange
|
|
140
|
+
log "Isimud::ModelWatcher#publish: exchange=#{isimud_model_watcher_exchange} routing_key=#{routing_key} id=#{id}"
|
|
141
141
|
Isimud.client.publish(isimud_model_watcher_exchange, routing_key, payload.to_json)
|
|
142
142
|
end
|
|
143
143
|
end
|
data/lib/isimud/test_client.rb
CHANGED
|
@@ -11,10 +11,11 @@ module Isimud
|
|
|
11
11
|
|
|
12
12
|
class Queue
|
|
13
13
|
include Isimud::Logging
|
|
14
|
-
attr_reader :name, :bindings
|
|
14
|
+
attr_reader :name, :bindings, :client
|
|
15
15
|
attr_accessor :proc
|
|
16
16
|
|
|
17
|
-
def initialize(name, proc = Proc.new{ |_| } )
|
|
17
|
+
def initialize(client, name, proc = Proc.new{ |_| } )
|
|
18
|
+
@client = client
|
|
18
19
|
@name = name
|
|
19
20
|
@bindings = Hash.new{ |hash, key| hash[key] = Set.new }
|
|
20
21
|
@proc = proc
|
|
@@ -55,7 +56,7 @@ module Isimud
|
|
|
55
56
|
@proc.try(:call, data)
|
|
56
57
|
rescue => e
|
|
57
58
|
log "TestClient: error delivering message: #{e.message}\n #{e.backtrace.join("\n ")}", :error
|
|
58
|
-
run_exception_handlers(e)
|
|
59
|
+
client.run_exception_handlers(e)
|
|
59
60
|
end
|
|
60
61
|
end
|
|
61
62
|
end
|
|
@@ -89,7 +90,7 @@ module Isimud
|
|
|
89
90
|
end
|
|
90
91
|
|
|
91
92
|
def find_queue(queue_name, options = {})
|
|
92
|
-
queues[queue_name] ||= Queue.new(queue_name)
|
|
93
|
+
queues[queue_name] ||= Queue.new(self, queue_name)
|
|
93
94
|
end
|
|
94
95
|
|
|
95
96
|
def create_queue(queue_name, exchange_name, options = {})
|
data/lib/isimud/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: isimud
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- George Feil
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2016-
|
|
12
|
+
date: 2016-08-09 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activerecord
|
|
@@ -74,7 +74,7 @@ description: |
|
|
|
74
74
|
* A test client which mocks most client operations and allows for synchronous delivery and processing of messages for unit tests.
|
|
75
75
|
* A Model Watcher mixin for ActiveRecord that automatically sends messages whenever an ActiveRecord instance is created, modified, or destroyed.
|
|
76
76
|
* An Event Observer mixin for registering ActiveRecord models and instances with the EventListener for receiving messages.
|
|
77
|
-
* An Event Listener daemon process which manages queues and dispatches messages for Event Observers.
|
|
77
|
+
* An Event Listener daemon process which manages queues and dispatches messages for Event Observers and other consumers.
|
|
78
78
|
email:
|
|
79
79
|
- george.feil@keas.com
|
|
80
80
|
- bonkydog@bonkydog.com
|