isimud 1.3.1 → 1.3.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|