hyper-resource 1.0.0.lap79 → 1.0.0.lap80

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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.yardopts +1 -0
  4. data/API.md +62 -0
  5. data/Gemfile +2 -0
  6. data/JSON_format.md +62 -0
  7. data/PubSub.md +20 -0
  8. data/README.md +2 -0
  9. data/Security.md +0 -0
  10. data/docs/HyperRecord/ClassMethods.html +2969 -0
  11. data/docs/HyperRecord/ClientInstanceMethods.html +1833 -0
  12. data/docs/HyperRecord/Collection.html +564 -0
  13. data/docs/HyperRecord/DummyValue.html +384 -0
  14. data/docs/HyperRecord/PubSub/ClassMethods.html +2047 -0
  15. data/docs/HyperRecord/PubSub.html +1679 -0
  16. data/docs/HyperRecord/ServerClassMethods.html +697 -0
  17. data/docs/HyperRecord.html +119 -0
  18. data/docs/Hyperloop/Resource/ClientDrivers.html +352 -0
  19. data/docs/Hyperloop/Resource/HTTP.html +1795 -0
  20. data/docs/Hyperloop/Resource/MethodsController.html +479 -0
  21. data/docs/Hyperloop/Resource/PropertiesController.html +225 -0
  22. data/docs/Hyperloop/Resource/PubSub/ClassMethods.html +105 -0
  23. data/docs/Hyperloop/Resource/PubSub.html +1210 -0
  24. data/docs/Hyperloop/Resource/RelationsController.html +529 -0
  25. data/docs/Hyperloop/Resource/ScopesController.html +380 -0
  26. data/docs/Hyperloop/Resource/SecurityError.html +124 -0
  27. data/docs/Hyperloop/Resource/SecurityGuards/ClassMethods.html +226 -0
  28. data/docs/Hyperloop/Resource/SecurityGuards.html +299 -0
  29. data/docs/Hyperloop/Resource.html +135 -0
  30. data/docs/Hyperloop.html +186 -0
  31. data/docs/_index.html +302 -0
  32. data/docs/class_list.html +51 -0
  33. data/docs/css/common.css +1 -0
  34. data/docs/css/full_list.css +58 -0
  35. data/docs/css/style.css +496 -0
  36. data/docs/file.API.html +138 -0
  37. data/docs/file.JSON_format.html +134 -0
  38. data/docs/file.PubSub.html +86 -0
  39. data/docs/file.README.html +192 -0
  40. data/docs/file_list.html +71 -0
  41. data/docs/frames.html +17 -0
  42. data/docs/index.html +192 -0
  43. data/docs/js/app.js +292 -0
  44. data/docs/js/full_list.js +216 -0
  45. data/docs/js/jquery.js +4 -0
  46. data/docs/method_list.html +1115 -0
  47. data/docs/top-level-namespace.html +110 -0
  48. data/hyper-resource.gemspec +19 -18
  49. data/lib/hyper_record/class_methods.rb +186 -3
  50. data/lib/hyper_record/client_instance_methods.rb +68 -3
  51. data/lib/hyper_record/collection.rb +19 -4
  52. data/lib/hyper_record/pub_sub.rb +92 -12
  53. data/lib/hyper_record/server_class_methods.rb +15 -0
  54. data/lib/hyperloop/resource/client_drivers.rb +2 -0
  55. data/lib/hyperloop/resource/http.rb +33 -22
  56. data/lib/hyperloop/resource/pub_sub.rb +2 -0
  57. data/lib/hyperloop/resource/version.rb +1 -1
  58. metadata +61 -2
@@ -0,0 +1,2047 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Module: HyperRecord::PubSub::ClassMethods
8
+
9
+ &mdash; Documentation by YARD 0.9.13
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "HyperRecord::PubSub::ClassMethods";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../_index.html">Index (C)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../PubSub.html" title="HyperRecord::PubSub (module)">PubSub</a></span></span>
41
+ &raquo;
42
+ <span class="title">ClassMethods</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Module: HyperRecord::PubSub::ClassMethods
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ <dl>
80
+ <dt>Defined in:</dt>
81
+ <dd>lib/hyper_record/pub_sub.rb</dd>
82
+ </dl>
83
+
84
+ </div>
85
+
86
+
87
+
88
+
89
+
90
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
91
+ <ul class="summary">
92
+
93
+ <li class="public ">
94
+ <span class="summary_signature">
95
+
96
+ <a href="#policy_params-instance_method" title="#policy_params (instance method)">#<strong>policy_params</strong> &#x21d2; Object </a>
97
+
98
+
99
+
100
+ </span>
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+ <span class="summary_desc"><div class='inline'>
114
+ <p>Returns the value of attribute policy_params.</p>
115
+ </div></span>
116
+
117
+ </li>
118
+
119
+
120
+ </ul>
121
+
122
+
123
+
124
+
125
+
126
+ <h2>
127
+ Instance Method Summary
128
+ <small><a href="#" class="summary_toggle">collapse</a></small>
129
+ </h2>
130
+
131
+ <ul class="summary">
132
+
133
+ <li class="public ">
134
+ <span class="summary_signature">
135
+
136
+ <a href="#pub_sub_record-instance_method" title="#pub_sub_record (instance method)">#<strong>pub_sub_record</strong>(record) &#x21d2; Object </a>
137
+
138
+
139
+
140
+ </span>
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+ <span class="summary_desc"><div class='inline'>
151
+ <p>subscribe to record and then publish.</p>
152
+ </div></span>
153
+
154
+ </li>
155
+
156
+
157
+ <li class="public ">
158
+ <span class="summary_signature">
159
+
160
+ <a href="#pub_sub_relation-instance_method" title="#pub_sub_relation (instance method)">#<strong>pub_sub_relation</strong>(relation, base_record, relation_name, causing_record = nil) &#x21d2; Object </a>
161
+
162
+
163
+
164
+ </span>
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+ <span class="summary_desc"><div class='inline'>
175
+ <p>subscribe to relation changes and then publish them.</p>
176
+ </div></span>
177
+
178
+ </li>
179
+
180
+
181
+ <li class="public ">
182
+ <span class="summary_signature">
183
+
184
+ <a href="#pub_sub_rest_class_method-instance_method" title="#pub_sub_rest_class_method (instance method)">#<strong>pub_sub_rest_class_method</strong>(record_class, rest_class_method_name) &#x21d2; Object </a>
185
+
186
+
187
+
188
+ </span>
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+ <span class="summary_desc"><div class='inline'>
199
+ <p>subscribe to rest_class_method and then send message to notify clients that
200
+ they should call the rest_class_method again.</p>
201
+ </div></span>
202
+
203
+ </li>
204
+
205
+
206
+ <li class="public ">
207
+ <span class="summary_signature">
208
+
209
+ <a href="#pub_sub_rest_method-instance_method" title="#pub_sub_rest_method (instance method)">#<strong>pub_sub_rest_method</strong>(record, rest_method_name) &#x21d2; Object </a>
210
+
211
+
212
+
213
+ </span>
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+ <span class="summary_desc"><div class='inline'>
224
+ <p>subscribe to rest_method and then send message to notify clients that they
225
+ should call the rest_method again.</p>
226
+ </div></span>
227
+
228
+ </li>
229
+
230
+
231
+ <li class="public ">
232
+ <span class="summary_signature">
233
+
234
+ <a href="#pub_sub_scope-instance_method" title="#pub_sub_scope (instance method)">#<strong>pub_sub_scope</strong>(collection, record_class, scope_name) &#x21d2; Object </a>
235
+
236
+
237
+
238
+ </span>
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+ <span class="summary_desc"><div class='inline'>
249
+ <p>subscribe to scope changes and send message about scope change to all
250
+ subscribers.</p>
251
+ </div></span>
252
+
253
+ </li>
254
+
255
+
256
+ <li class="public ">
257
+ <span class="summary_signature">
258
+
259
+ <a href="#publish_record-instance_method" title="#publish_record (instance method)">#<strong>publish_record</strong>(record) &#x21d2; Object </a>
260
+
261
+
262
+
263
+ </span>
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+ <span class="summary_desc"><div class='inline'>
274
+ <p>send message about record change to all subscribers of this record.</p>
275
+ </div></span>
276
+
277
+ </li>
278
+
279
+
280
+ <li class="public ">
281
+ <span class="summary_signature">
282
+
283
+ <a href="#publish_relation-instance_method" title="#publish_relation (instance method)">#<strong>publish_relation</strong>(base_record, relation_name, record = nil) &#x21d2; Object </a>
284
+
285
+
286
+
287
+ </span>
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+ <span class="summary_desc"><div class='inline'>
298
+ <p>send message about relation change to all subscribers of this record.</p>
299
+ </div></span>
300
+
301
+ </li>
302
+
303
+
304
+ <li class="public ">
305
+ <span class="summary_signature">
306
+
307
+ <a href="#publish_rest_class_method-instance_method" title="#publish_rest_class_method (instance method)">#<strong>publish_rest_class_method</strong>(record_class, rest_class_method_name) &#x21d2; Object </a>
308
+
309
+
310
+
311
+ </span>
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+ <span class="summary_desc"><div class='inline'>
322
+ <p>send message to notify clients that they should call the rest_class_method
323
+ again.</p>
324
+ </div></span>
325
+
326
+ </li>
327
+
328
+
329
+ <li class="public ">
330
+ <span class="summary_signature">
331
+
332
+ <a href="#publish_rest_method-instance_method" title="#publish_rest_method (instance method)">#<strong>publish_rest_method</strong>(record, rest_method_name) &#x21d2; Object </a>
333
+
334
+
335
+
336
+ </span>
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+ <span class="summary_desc"><div class='inline'>
347
+ <p>send message to notify clients that they should call the rest_method again.</p>
348
+ </div></span>
349
+
350
+ </li>
351
+
352
+
353
+ <li class="public ">
354
+ <span class="summary_signature">
355
+
356
+ <a href="#publish_scope-instance_method" title="#publish_scope (instance method)">#<strong>publish_scope</strong>(record_class, scope_name) &#x21d2; Object </a>
357
+
358
+
359
+
360
+ </span>
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+ <span class="summary_desc"><div class='inline'>
371
+ <p>send message about scope change to all subscribers.</p>
372
+ </div></span>
373
+
374
+ </li>
375
+
376
+
377
+ <li class="public ">
378
+ <span class="summary_signature">
379
+
380
+ <a href="#subscribe_record-instance_method" title="#subscribe_record (instance method)">#<strong>subscribe_record</strong>(record) &#x21d2; Object </a>
381
+
382
+
383
+
384
+ </span>
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+ <span class="summary_desc"><div class='inline'>
395
+ <p>subscribe to record changes.</p>
396
+ </div></span>
397
+
398
+ </li>
399
+
400
+
401
+ <li class="public ">
402
+ <span class="summary_signature">
403
+
404
+ <a href="#subscribe_relation-instance_method" title="#subscribe_relation (instance method)">#<strong>subscribe_relation</strong>(relation, base_record = nil, relation_name = nil) &#x21d2; Object </a>
405
+
406
+
407
+
408
+ </span>
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+ <span class="summary_desc"><div class='inline'>
419
+ <p>subscribe to relation changes.</p>
420
+ </div></span>
421
+
422
+ </li>
423
+
424
+
425
+ <li class="public ">
426
+ <span class="summary_signature">
427
+
428
+ <a href="#subscribe_rest_class_method-instance_method" title="#subscribe_rest_class_method (instance method)">#<strong>subscribe_rest_class_method</strong>(record_class, rest_class_method_name) &#x21d2; Object </a>
429
+
430
+
431
+
432
+ </span>
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+ <span class="summary_desc"><div class='inline'>
443
+ <p>subscribe to rest_class_method updates.</p>
444
+ </div></span>
445
+
446
+ </li>
447
+
448
+
449
+ <li class="public ">
450
+ <span class="summary_signature">
451
+
452
+ <a href="#subscribe_rest_method-instance_method" title="#subscribe_rest_method (instance method)">#<strong>subscribe_rest_method</strong>(record, rest_method_name) &#x21d2; Object </a>
453
+
454
+
455
+
456
+ </span>
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+ <span class="summary_desc"><div class='inline'>
467
+ <p>subscribe to rest_method updates.</p>
468
+ </div></span>
469
+
470
+ </li>
471
+
472
+
473
+ <li class="public ">
474
+ <span class="summary_signature">
475
+
476
+ <a href="#subscribe_scope-instance_method" title="#subscribe_scope (instance method)">#<strong>subscribe_scope</strong>(collection, record_class = nil, scope_name = nil) &#x21d2; Object </a>
477
+
478
+
479
+
480
+ </span>
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+ <span class="summary_desc"><div class='inline'>
491
+ <p>subscribe to scope updates.</p>
492
+ </div></span>
493
+
494
+ </li>
495
+
496
+
497
+ </ul>
498
+
499
+
500
+
501
+ <div id="instance_attr_details" class="attr_details">
502
+ <h2>Instance Attribute Details</h2>
503
+
504
+
505
+ <span id="policy_params=-instance_method"></span>
506
+ <div class="method_details first">
507
+ <h3 class="signature first" id="policy_params-instance_method">
508
+
509
+ #<strong>policy_params</strong> &#x21d2; <tt>Object</tt>
510
+
511
+
512
+
513
+
514
+
515
+ </h3><div class="docstring">
516
+ <div class="discussion">
517
+
518
+ <p>Returns the value of attribute policy_params</p>
519
+
520
+
521
+ </div>
522
+ </div>
523
+ <div class="tags">
524
+
525
+
526
+ </div><table class="source_code">
527
+ <tr>
528
+ <td>
529
+ <pre class="lines">
530
+
531
+
532
+ 10
533
+ 11
534
+ 12</pre>
535
+ </td>
536
+ <td>
537
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 10</span>
538
+
539
+ <span class='kw'>def</span> <span class='id identifier rubyid_policy_params'>policy_params</span>
540
+ <span class='ivar'>@policy_params</span>
541
+ <span class='kw'>end</span></pre>
542
+ </td>
543
+ </tr>
544
+ </table>
545
+ </div>
546
+
547
+ </div>
548
+
549
+
550
+ <div id="instance_method_details" class="method_details_list">
551
+ <h2>Instance Method Details</h2>
552
+
553
+
554
+ <div class="method_details first">
555
+ <h3 class="signature first" id="pub_sub_record-instance_method">
556
+
557
+ #<strong>pub_sub_record</strong>(record) &#x21d2; <tt>Object</tt>
558
+
559
+
560
+
561
+
562
+
563
+ </h3><div class="docstring">
564
+ <div class="discussion">
565
+
566
+ <p>subscribe to record and then publish</p>
567
+
568
+
569
+ </div>
570
+ </div>
571
+ <div class="tags">
572
+ <p class="tag_title">Parameters:</p>
573
+ <ul class="param">
574
+
575
+ <li>
576
+
577
+ <span class='name'>record</span>
578
+
579
+
580
+ <span class='type'></span>
581
+
582
+
583
+
584
+ &mdash;
585
+ <div class='inline'>
586
+ <p>of ORM psecific type</p>
587
+ </div>
588
+
589
+ </li>
590
+
591
+ </ul>
592
+
593
+
594
+ </div><table class="source_code">
595
+ <tr>
596
+ <td>
597
+ <pre class="lines">
598
+
599
+
600
+ 250
601
+ 251
602
+ 252
603
+ 253</pre>
604
+ </td>
605
+ <td>
606
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 250</span>
607
+
608
+ <span class='kw'>def</span> <span class='id identifier rubyid_pub_sub_record'>pub_sub_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
609
+ <span class='id identifier rubyid_subscribe_record'>subscribe_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
610
+ <span class='id identifier rubyid_publish_record'>publish_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
611
+ <span class='kw'>end</span></pre>
612
+ </td>
613
+ </tr>
614
+ </table>
615
+ </div>
616
+
617
+ <div class="method_details ">
618
+ <h3 class="signature " id="pub_sub_relation-instance_method">
619
+
620
+ #<strong>pub_sub_relation</strong>(relation, base_record, relation_name, causing_record = nil) &#x21d2; <tt>Object</tt>
621
+
622
+
623
+
624
+
625
+
626
+ </h3><div class="docstring">
627
+ <div class="discussion">
628
+
629
+ <p>subscribe to relation changes and then publish them</p>
630
+
631
+
632
+ </div>
633
+ </div>
634
+ <div class="tags">
635
+ <p class="tag_title">Parameters:</p>
636
+ <ul class="param">
637
+
638
+ <li>
639
+
640
+ <span class='name'>relation</span>
641
+
642
+
643
+ <span class='type'>(<tt>Enumarable</tt>)</span>
644
+
645
+
646
+
647
+ &mdash;
648
+ <div class='inline'>
649
+ <p>or record of ORM specific type, subscribe to each member of relation</p>
650
+ </div>
651
+
652
+ </li>
653
+
654
+ <li>
655
+
656
+ <span class='name'>base_record</span>
657
+
658
+
659
+ <span class='type'></span>
660
+
661
+
662
+
663
+ &mdash;
664
+ <div class='inline'>
665
+ <p>of ORM specific type, base_record must respond to: id, updated_at,
666
+ destroyed?</p>
667
+ </div>
668
+
669
+ </li>
670
+
671
+ <li>
672
+
673
+ <span class='name'>relation_name</span>
674
+
675
+
676
+ <span class='type'>(<tt>String</tt>)</span>
677
+
678
+
679
+
680
+ </li>
681
+
682
+ <li>
683
+
684
+ <span class='name'>causing_record</span>
685
+
686
+
687
+ <span class='type'></span>
688
+
689
+
690
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
691
+
692
+
693
+ &mdash;
694
+ <div class='inline'>
695
+ <p>of ORM specific type the record who causes the change, reacord must respond
696
+ to: id, updated_at, destroyed?</p>
697
+ </div>
698
+
699
+ </li>
700
+
701
+ </ul>
702
+
703
+
704
+ </div><table class="source_code">
705
+ <tr>
706
+ <td>
707
+ <pre class="lines">
708
+
709
+
710
+ 261
711
+ 262
712
+ 263
713
+ 264</pre>
714
+ </td>
715
+ <td>
716
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 261</span>
717
+
718
+ <span class='kw'>def</span> <span class='id identifier rubyid_pub_sub_relation'>pub_sub_relation</span><span class='lparen'>(</span><span class='id identifier rubyid_relation'>relation</span><span class='comma'>,</span> <span class='id identifier rubyid_base_record'>base_record</span><span class='comma'>,</span> <span class='id identifier rubyid_relation_name'>relation_name</span><span class='comma'>,</span> <span class='id identifier rubyid_causing_record'>causing_record</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
719
+ <span class='id identifier rubyid_subscribe_relation'>subscribe_relation</span><span class='lparen'>(</span><span class='id identifier rubyid_relation'>relation</span><span class='comma'>,</span> <span class='id identifier rubyid_base_record'>base_record</span><span class='comma'>,</span> <span class='id identifier rubyid_relation_name'>relation_name</span><span class='rparen'>)</span>
720
+ <span class='id identifier rubyid_publish_relation'>publish_relation</span><span class='lparen'>(</span><span class='id identifier rubyid_base_record'>base_record</span><span class='comma'>,</span> <span class='id identifier rubyid_relation_name'>relation_name</span><span class='comma'>,</span> <span class='id identifier rubyid_causing_record'>causing_record</span><span class='rparen'>)</span>
721
+ <span class='kw'>end</span></pre>
722
+ </td>
723
+ </tr>
724
+ </table>
725
+ </div>
726
+
727
+ <div class="method_details ">
728
+ <h3 class="signature " id="pub_sub_rest_class_method-instance_method">
729
+
730
+ #<strong>pub_sub_rest_class_method</strong>(record_class, rest_class_method_name) &#x21d2; <tt>Object</tt>
731
+
732
+
733
+
734
+
735
+
736
+ </h3><div class="docstring">
737
+ <div class="discussion">
738
+
739
+ <p>subscribe to rest_class_method and then send message to notify clients that
740
+ they should call the rest_class_method again</p>
741
+
742
+
743
+ </div>
744
+ </div>
745
+ <div class="tags">
746
+ <p class="tag_title">Parameters:</p>
747
+ <ul class="param">
748
+
749
+ <li>
750
+
751
+ <span class='name'>record_class</span>
752
+
753
+
754
+ <span class='type'></span>
755
+
756
+
757
+
758
+ &mdash;
759
+ <div class='inline'>
760
+ <p>ORM specific</p>
761
+ </div>
762
+
763
+ </li>
764
+
765
+ <li>
766
+
767
+ <span class='name'>rest_class_method_name</span>
768
+
769
+
770
+ <span class='type'>(<tt>String</tt>)</span>
771
+
772
+
773
+
774
+ </li>
775
+
776
+ </ul>
777
+
778
+
779
+ </div><table class="source_code">
780
+ <tr>
781
+ <td>
782
+ <pre class="lines">
783
+
784
+
785
+ 271
786
+ 272
787
+ 273
788
+ 274</pre>
789
+ </td>
790
+ <td>
791
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 271</span>
792
+
793
+ <span class='kw'>def</span> <span class='id identifier rubyid_pub_sub_rest_class_method'>pub_sub_rest_class_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='rparen'>)</span>
794
+ <span class='id identifier rubyid_subscribe_rest_class_method'>subscribe_rest_class_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='rparen'>)</span>
795
+ <span class='id identifier rubyid_publish_rest_class_method'>publish_rest_class_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='rparen'>)</span>
796
+ <span class='kw'>end</span></pre>
797
+ </td>
798
+ </tr>
799
+ </table>
800
+ </div>
801
+
802
+ <div class="method_details ">
803
+ <h3 class="signature " id="pub_sub_rest_method-instance_method">
804
+
805
+ #<strong>pub_sub_rest_method</strong>(record, rest_method_name) &#x21d2; <tt>Object</tt>
806
+
807
+
808
+
809
+
810
+
811
+ </h3><div class="docstring">
812
+ <div class="discussion">
813
+
814
+ <p>subscribe to rest_method and then send message to notify clients that they
815
+ should call the rest_method again</p>
816
+
817
+
818
+ </div>
819
+ </div>
820
+ <div class="tags">
821
+ <p class="tag_title">Parameters:</p>
822
+ <ul class="param">
823
+
824
+ <li>
825
+
826
+ <span class='name'>record</span>
827
+
828
+
829
+ <span class='type'></span>
830
+
831
+
832
+
833
+ &mdash;
834
+ <div class='inline'>
835
+ <p>of ORM specific type</p>
836
+ </div>
837
+
838
+ </li>
839
+
840
+ <li>
841
+
842
+ <span class='name'>rest_method_name</span>
843
+
844
+
845
+ <span class='type'>(<tt>String</tt>)</span>
846
+
847
+
848
+
849
+ </li>
850
+
851
+ </ul>
852
+
853
+
854
+ </div><table class="source_code">
855
+ <tr>
856
+ <td>
857
+ <pre class="lines">
858
+
859
+
860
+ 281
861
+ 282
862
+ 283
863
+ 284</pre>
864
+ </td>
865
+ <td>
866
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 281</span>
867
+
868
+ <span class='kw'>def</span> <span class='id identifier rubyid_pub_sub_rest_method'>pub_sub_rest_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='rparen'>)</span>
869
+ <span class='id identifier rubyid_subscribe_rest_method'>subscribe_rest_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='rparen'>)</span>
870
+ <span class='id identifier rubyid_publish_rest_method'>publish_rest_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='rparen'>)</span>
871
+ <span class='kw'>end</span></pre>
872
+ </td>
873
+ </tr>
874
+ </table>
875
+ </div>
876
+
877
+ <div class="method_details ">
878
+ <h3 class="signature " id="pub_sub_scope-instance_method">
879
+
880
+ #<strong>pub_sub_scope</strong>(collection, record_class, scope_name) &#x21d2; <tt>Object</tt>
881
+
882
+
883
+
884
+
885
+
886
+ </h3><div class="docstring">
887
+ <div class="discussion">
888
+
889
+ <p>subscribe to scope changes and send message about scope change to all
890
+ subscribers</p>
891
+
892
+
893
+ </div>
894
+ </div>
895
+ <div class="tags">
896
+ <p class="tag_title">Parameters:</p>
897
+ <ul class="param">
898
+
899
+ <li>
900
+
901
+ <span class='name'>collection</span>
902
+
903
+
904
+ <span class='type'>(<tt>Enumerable</tt>)</span>
905
+
906
+
907
+
908
+ &mdash;
909
+ <div class='inline'>
910
+ <p>subscribe to each member of collection</p>
911
+ </div>
912
+
913
+ </li>
914
+
915
+ <li>
916
+
917
+ <span class='name'>record_class</span>
918
+
919
+
920
+ <span class='type'></span>
921
+
922
+
923
+
924
+ &mdash;
925
+ <div class='inline'>
926
+ <p>ORM specific</p>
927
+ </div>
928
+
929
+ </li>
930
+
931
+ <li>
932
+
933
+ <span class='name'>scope_name</span>
934
+
935
+
936
+ <span class='type'>(<tt>String</tt>)</span>
937
+
938
+
939
+
940
+ </li>
941
+
942
+ </ul>
943
+
944
+
945
+ </div><table class="source_code">
946
+ <tr>
947
+ <td>
948
+ <pre class="lines">
949
+
950
+
951
+ 291
952
+ 292
953
+ 293
954
+ 294</pre>
955
+ </td>
956
+ <td>
957
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 291</span>
958
+
959
+ <span class='kw'>def</span> <span class='id identifier rubyid_pub_sub_scope'>pub_sub_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_collection'>collection</span><span class='comma'>,</span> <span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span><span class='rparen'>)</span>
960
+ <span class='id identifier rubyid_subscribe_scope'>subscribe_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_collection'>collection</span><span class='comma'>,</span> <span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span><span class='rparen'>)</span>
961
+ <span class='id identifier rubyid_publish_scope'>publish_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span><span class='rparen'>)</span>
962
+ <span class='kw'>end</span></pre>
963
+ </td>
964
+ </tr>
965
+ </table>
966
+ </div>
967
+
968
+ <div class="method_details ">
969
+ <h3 class="signature " id="publish_record-instance_method">
970
+
971
+ #<strong>publish_record</strong>(record) &#x21d2; <tt>Object</tt>
972
+
973
+
974
+
975
+
976
+
977
+ </h3><div class="docstring">
978
+ <div class="discussion">
979
+
980
+ <p>send message about record change to all subscribers of this record</p>
981
+
982
+
983
+ </div>
984
+ </div>
985
+ <div class="tags">
986
+ <p class="tag_title">Parameters:</p>
987
+ <ul class="param">
988
+
989
+ <li>
990
+
991
+ <span class='name'>record</span>
992
+
993
+
994
+ <span class='type'></span>
995
+
996
+
997
+
998
+ &mdash;
999
+ <div class='inline'>
1000
+ <p>of ORM specific type, record must respond to: id, updated_at, destroyed?</p>
1001
+ </div>
1002
+
1003
+ </li>
1004
+
1005
+ </ul>
1006
+
1007
+
1008
+ </div><table class="source_code">
1009
+ <tr>
1010
+ <td>
1011
+ <pre class="lines">
1012
+
1013
+
1014
+ 25
1015
+ 26
1016
+ 27
1017
+ 28
1018
+ 29
1019
+ 30
1020
+ 31
1021
+ 32
1022
+ 33
1023
+ 34
1024
+ 35
1025
+ 36
1026
+ 37
1027
+ 38
1028
+ 39
1029
+ 40
1030
+ 41
1031
+ 42
1032
+ 43
1033
+ 44
1034
+ 45
1035
+ 46
1036
+ 47
1037
+ 48
1038
+ 49
1039
+ 50
1040
+ 51
1041
+ 52</pre>
1042
+ </td>
1043
+ <td>
1044
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 25</span>
1045
+
1046
+ <span class='kw'>def</span> <span class='id identifier rubyid_publish_record'>publish_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
1047
+ <span class='id identifier rubyid_subscribers'>subscribers</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hgetall'>hgetall</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1048
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1049
+ <span class='id identifier rubyid_scrub_time'>scrub_time</span> <span class='op'>=</span> <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>-</span> <span class='int'>24</span><span class='period'>.</span><span class='id identifier rubyid_hours'>hours</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1050
+
1051
+ <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='lbrace'>{</span>
1052
+ <span class='label'>record_type:</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
1053
+ <span class='label'>id:</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span>
1054
+ <span class='label'>updated_at:</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span>
1055
+ <span class='rbrace'>}</span>
1056
+ <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:destroyed</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_destroyed?'>destroyed?</span>
1057
+
1058
+ <span class='comment'># can only trigger to max 10 channels at once on pusher
1059
+ </span> <span class='id identifier rubyid_subscribers'>subscribers</span><span class='period'>.</span><span class='id identifier rubyid_each_slice'>each_slice</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_slice'>slice</span><span class='op'>|</span>
1060
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1061
+ <span class='id identifier rubyid_slice'>slice</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='op'>|</span>
1062
+ <span class='kw'>if</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_scrub_time'>scrub_time</span>
1063
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hdel'>hdel</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='rparen'>)</span>
1064
+ <span class='kw'>next</span>
1065
+ <span class='kw'>end</span>
1066
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hyper-record-update-channel-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_session_id'>session_id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1067
+ <span class='kw'>end</span>
1068
+ <span class='kw'>if</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resource_transport'>resource_transport</span> <span class='op'>==</span> <span class='symbol'>:pusher</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_channel_array'>channel_array</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>&gt;</span> <span class='int'>0</span>
1069
+ <span class='id identifier rubyid__pusher_client'>_pusher_client</span><span class='period'>.</span><span class='id identifier rubyid_trigger_async'>trigger_async</span><span class='lparen'>(</span><span class='id identifier rubyid_channel_array'>channel_array</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>update</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
1070
+ <span class='kw'>end</span>
1071
+ <span class='kw'>end</span>
1072
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_del'>del</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_destroyed?'>destroyed?</span>
1073
+ <span class='kw'>end</span></pre>
1074
+ </td>
1075
+ </tr>
1076
+ </table>
1077
+ </div>
1078
+
1079
+ <div class="method_details ">
1080
+ <h3 class="signature " id="publish_relation-instance_method">
1081
+
1082
+ #<strong>publish_relation</strong>(base_record, relation_name, record = nil) &#x21d2; <tt>Object</tt>
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+ </h3><div class="docstring">
1089
+ <div class="discussion">
1090
+
1091
+ <p>send message about relation change to all subscribers of this record</p>
1092
+
1093
+
1094
+ </div>
1095
+ </div>
1096
+ <div class="tags">
1097
+ <p class="tag_title">Parameters:</p>
1098
+ <ul class="param">
1099
+
1100
+ <li>
1101
+
1102
+ <span class='name'>base_record</span>
1103
+
1104
+
1105
+ <span class='type'></span>
1106
+
1107
+
1108
+
1109
+ &mdash;
1110
+ <div class='inline'>
1111
+ <p>of ORM specific type, base_record must respond to: id, updated_at,
1112
+ destroyed?</p>
1113
+ </div>
1114
+
1115
+ </li>
1116
+
1117
+ <li>
1118
+
1119
+ <span class='name'>relation_name</span>
1120
+
1121
+
1122
+ <span class='type'>(<tt>String</tt>)</span>
1123
+
1124
+
1125
+
1126
+ </li>
1127
+
1128
+ <li>
1129
+
1130
+ <span class='name'>record</span>
1131
+
1132
+
1133
+ <span class='type'></span>
1134
+
1135
+
1136
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1137
+
1138
+
1139
+ &mdash;
1140
+ <div class='inline'>
1141
+ <p>of ORM specific type, the record who causes the change, record must respond
1142
+ to: id, updated_at, destroyed?</p>
1143
+ </div>
1144
+
1145
+ </li>
1146
+
1147
+ </ul>
1148
+
1149
+
1150
+ </div><table class="source_code">
1151
+ <tr>
1152
+ <td>
1153
+ <pre class="lines">
1154
+
1155
+
1156
+ 59
1157
+ 60
1158
+ 61
1159
+ 62
1160
+ 63
1161
+ 64
1162
+ 65
1163
+ 66
1164
+ 67
1165
+ 68
1166
+ 69
1167
+ 70
1168
+ 71
1169
+ 72
1170
+ 73
1171
+ 74
1172
+ 75
1173
+ 76
1174
+ 77
1175
+ 78
1176
+ 79
1177
+ 80
1178
+ 81
1179
+ 82
1180
+ 83
1181
+ 84
1182
+ 85
1183
+ 86
1184
+ 87
1185
+ 88
1186
+ 89</pre>
1187
+ </td>
1188
+ <td>
1189
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 59</span>
1190
+
1191
+ <span class='kw'>def</span> <span class='id identifier rubyid_publish_relation'>publish_relation</span><span class='lparen'>(</span><span class='id identifier rubyid_base_record'>base_record</span><span class='comma'>,</span> <span class='id identifier rubyid_relation_name'>relation_name</span><span class='comma'>,</span> <span class='id identifier rubyid_record'>record</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1192
+ <span class='id identifier rubyid_subscribers'>subscribers</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hgetall'>hgetall</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1193
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1194
+ <span class='id identifier rubyid_scrub_time'>scrub_time</span> <span class='op'>=</span> <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>-</span> <span class='int'>24</span><span class='period'>.</span><span class='id identifier rubyid_hours'>hours</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1195
+ <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='lbrace'>{</span>
1196
+ <span class='label'>record_type:</span> <span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
1197
+ <span class='label'>id:</span> <span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span>
1198
+ <span class='label'>updated_at:</span> <span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span><span class='comma'>,</span>
1199
+ <span class='label'>relation:</span> <span class='id identifier rubyid_relation_name'>relation_name</span>
1200
+ <span class='rbrace'>}</span>
1201
+ <span class='kw'>if</span> <span class='id identifier rubyid_record'>record</span>
1202
+ <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:cause</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1203
+ <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:cause</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:record_type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1204
+ <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:cause</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
1205
+ <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:cause</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span>
1206
+ <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:cause</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:destroyed</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_destroyed?'>destroyed?</span>
1207
+ <span class='kw'>end</span>
1208
+ <span class='id identifier rubyid_subscribers'>subscribers</span><span class='period'>.</span><span class='id identifier rubyid_each_slice'>each_slice</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_slice'>slice</span><span class='op'>|</span>
1209
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1210
+ <span class='id identifier rubyid_slice'>slice</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='op'>|</span>
1211
+ <span class='kw'>if</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_scrub_time'>scrub_time</span>
1212
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hdel'>hdel</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='rparen'>)</span>
1213
+ <span class='kw'>next</span>
1214
+ <span class='kw'>end</span>
1215
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hyper-record-update-channel-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_session_id'>session_id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1216
+ <span class='kw'>end</span>
1217
+ <span class='kw'>if</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resource_transport'>resource_transport</span> <span class='op'>==</span> <span class='symbol'>:pusher</span>
1218
+ <span class='id identifier rubyid__pusher_client'>_pusher_client</span><span class='period'>.</span><span class='id identifier rubyid_trigger_async'>trigger_async</span><span class='lparen'>(</span><span class='id identifier rubyid_channel_array'>channel_array</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>update</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
1219
+ <span class='kw'>end</span>
1220
+ <span class='kw'>end</span>
1221
+ <span class='kw'>end</span></pre>
1222
+ </td>
1223
+ </tr>
1224
+ </table>
1225
+ </div>
1226
+
1227
+ <div class="method_details ">
1228
+ <h3 class="signature " id="publish_rest_class_method-instance_method">
1229
+
1230
+ #<strong>publish_rest_class_method</strong>(record_class, rest_class_method_name) &#x21d2; <tt>Object</tt>
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+ </h3><div class="docstring">
1237
+ <div class="discussion">
1238
+
1239
+ <p>send message to notify clients that they should call the rest_class_method
1240
+ again</p>
1241
+
1242
+
1243
+ </div>
1244
+ </div>
1245
+ <div class="tags">
1246
+ <p class="tag_title">Parameters:</p>
1247
+ <ul class="param">
1248
+
1249
+ <li>
1250
+
1251
+ <span class='name'>record_class</span>
1252
+
1253
+
1254
+ <span class='type'></span>
1255
+
1256
+
1257
+
1258
+ &mdash;
1259
+ <div class='inline'>
1260
+ <p>ORM specific</p>
1261
+ </div>
1262
+
1263
+ </li>
1264
+
1265
+ <li>
1266
+
1267
+ <span class='name'>rest_class_method_name</span>
1268
+
1269
+
1270
+ <span class='type'>(<tt>String</tt>)</span>
1271
+
1272
+
1273
+
1274
+ </li>
1275
+
1276
+ </ul>
1277
+
1278
+
1279
+ </div><table class="source_code">
1280
+ <tr>
1281
+ <td>
1282
+ <pre class="lines">
1283
+
1284
+
1285
+ 95
1286
+ 96
1287
+ 97
1288
+ 98
1289
+ 99
1290
+ 100
1291
+ 101
1292
+ 102
1293
+ 103
1294
+ 104
1295
+ 105
1296
+ 106
1297
+ 107
1298
+ 108
1299
+ 109
1300
+ 110
1301
+ 111
1302
+ 112
1303
+ 113
1304
+ 114
1305
+ 115
1306
+ 116</pre>
1307
+ </td>
1308
+ <td>
1309
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 95</span>
1310
+
1311
+ <span class='kw'>def</span> <span class='id identifier rubyid_publish_rest_class_method'>publish_rest_class_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='rparen'>)</span>
1312
+ <span class='id identifier rubyid_subscribers'>subscribers</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hgetall'>hgetall</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record_class'>record_class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__rest_class_method__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1313
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1314
+ <span class='id identifier rubyid_scrub_time'>scrub_time</span> <span class='op'>=</span> <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>-</span> <span class='int'>24</span><span class='period'>.</span><span class='id identifier rubyid_hours'>hours</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1315
+ <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='lbrace'>{</span>
1316
+ <span class='label'>record_type:</span> <span class='id identifier rubyid_record_class'>record_class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
1317
+ <span class='label'>rest_class_method:</span> <span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span>
1318
+ <span class='rbrace'>}</span>
1319
+ <span class='id identifier rubyid_subscribers'>subscribers</span><span class='period'>.</span><span class='id identifier rubyid_each_slice'>each_slice</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_slice'>slice</span><span class='op'>|</span>
1320
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1321
+ <span class='id identifier rubyid_slice'>slice</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='op'>|</span>
1322
+ <span class='kw'>if</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_scrub_time'>scrub_time</span>
1323
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hdel'>hdel</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record_class'>record_class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__rest_class_method__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='rparen'>)</span>
1324
+ <span class='kw'>next</span>
1325
+ <span class='kw'>end</span>
1326
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hyper-record-update-channel-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_session_id'>session_id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1327
+ <span class='kw'>end</span>
1328
+ <span class='kw'>if</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resource_transport'>resource_transport</span> <span class='op'>==</span> <span class='symbol'>:pusher</span>
1329
+ <span class='id identifier rubyid__pusher_client'>_pusher_client</span><span class='period'>.</span><span class='id identifier rubyid_trigger_async'>trigger_async</span><span class='lparen'>(</span><span class='id identifier rubyid_channel_array'>channel_array</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>update</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
1330
+ <span class='kw'>end</span>
1331
+ <span class='kw'>end</span>
1332
+ <span class='kw'>end</span></pre>
1333
+ </td>
1334
+ </tr>
1335
+ </table>
1336
+ </div>
1337
+
1338
+ <div class="method_details ">
1339
+ <h3 class="signature " id="publish_rest_method-instance_method">
1340
+
1341
+ #<strong>publish_rest_method</strong>(record, rest_method_name) &#x21d2; <tt>Object</tt>
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+ </h3><div class="docstring">
1348
+ <div class="discussion">
1349
+
1350
+ <p>send message to notify clients that they should call the rest_method again</p>
1351
+
1352
+
1353
+ </div>
1354
+ </div>
1355
+ <div class="tags">
1356
+ <p class="tag_title">Parameters:</p>
1357
+ <ul class="param">
1358
+
1359
+ <li>
1360
+
1361
+ <span class='name'>record</span>
1362
+
1363
+
1364
+ <span class='type'></span>
1365
+
1366
+
1367
+
1368
+ &mdash;
1369
+ <div class='inline'>
1370
+ <p>of ORM specific type</p>
1371
+ </div>
1372
+
1373
+ </li>
1374
+
1375
+ <li>
1376
+
1377
+ <span class='name'>rest_method_name</span>
1378
+
1379
+
1380
+ <span class='type'>(<tt>String</tt>)</span>
1381
+
1382
+
1383
+
1384
+ </li>
1385
+
1386
+ </ul>
1387
+
1388
+
1389
+ </div><table class="source_code">
1390
+ <tr>
1391
+ <td>
1392
+ <pre class="lines">
1393
+
1394
+
1395
+ 122
1396
+ 123
1397
+ 124
1398
+ 125
1399
+ 126
1400
+ 127
1401
+ 128
1402
+ 129
1403
+ 130
1404
+ 131
1405
+ 132
1406
+ 133
1407
+ 134
1408
+ 135
1409
+ 136
1410
+ 137
1411
+ 138
1412
+ 139
1413
+ 140
1414
+ 141
1415
+ 142
1416
+ 143
1417
+ 144</pre>
1418
+ </td>
1419
+ <td>
1420
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 122</span>
1421
+
1422
+ <span class='kw'>def</span> <span class='id identifier rubyid_publish_rest_method'>publish_rest_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='rparen'>)</span>
1423
+ <span class='id identifier rubyid_subscribers'>subscribers</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hgetall'>hgetall</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_content'>__rest_method__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1424
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1425
+ <span class='id identifier rubyid_scrub_time'>scrub_time</span> <span class='op'>=</span> <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>-</span> <span class='int'>24</span><span class='period'>.</span><span class='id identifier rubyid_hours'>hours</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1426
+ <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='lbrace'>{</span>
1427
+ <span class='label'>record_type:</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
1428
+ <span class='label'>id:</span> <span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span>
1429
+ <span class='label'>rest_method:</span> <span class='id identifier rubyid_rest_method_name'>rest_method_name</span>
1430
+ <span class='rbrace'>}</span>
1431
+ <span class='id identifier rubyid_subscribers'>subscribers</span><span class='period'>.</span><span class='id identifier rubyid_each_slice'>each_slice</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_slice'>slice</span><span class='op'>|</span>
1432
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1433
+ <span class='id identifier rubyid_slice'>slice</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='op'>|</span>
1434
+ <span class='kw'>if</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_scrub_time'>scrub_time</span>
1435
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hdel'>hdel</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_content'>__rest_method__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='rparen'>)</span>
1436
+ <span class='kw'>next</span>
1437
+ <span class='kw'>end</span>
1438
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hyper-record-update-channel-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_session_id'>session_id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1439
+ <span class='kw'>end</span>
1440
+ <span class='kw'>if</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resource_transport'>resource_transport</span> <span class='op'>==</span> <span class='symbol'>:pusher</span>
1441
+ <span class='id identifier rubyid__pusher_client'>_pusher_client</span><span class='period'>.</span><span class='id identifier rubyid_trigger_async'>trigger_async</span><span class='lparen'>(</span><span class='id identifier rubyid_channel_array'>channel_array</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>update</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
1442
+ <span class='kw'>end</span>
1443
+ <span class='kw'>end</span>
1444
+ <span class='kw'>end</span></pre>
1445
+ </td>
1446
+ </tr>
1447
+ </table>
1448
+ </div>
1449
+
1450
+ <div class="method_details ">
1451
+ <h3 class="signature " id="publish_scope-instance_method">
1452
+
1453
+ #<strong>publish_scope</strong>(record_class, scope_name) &#x21d2; <tt>Object</tt>
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+ </h3><div class="docstring">
1460
+ <div class="discussion">
1461
+
1462
+ <p>send message about scope change to all subscribers</p>
1463
+
1464
+
1465
+ </div>
1466
+ </div>
1467
+ <div class="tags">
1468
+ <p class="tag_title">Parameters:</p>
1469
+ <ul class="param">
1470
+
1471
+ <li>
1472
+
1473
+ <span class='name'>record_class</span>
1474
+
1475
+
1476
+ <span class='type'></span>
1477
+
1478
+
1479
+
1480
+ &mdash;
1481
+ <div class='inline'>
1482
+ <p>ORM specific</p>
1483
+ </div>
1484
+
1485
+ </li>
1486
+
1487
+ <li>
1488
+
1489
+ <span class='name'>scope_name</span>
1490
+
1491
+
1492
+ <span class='type'>(<tt>String</tt>)</span>
1493
+
1494
+
1495
+
1496
+ </li>
1497
+
1498
+ </ul>
1499
+
1500
+
1501
+ </div><table class="source_code">
1502
+ <tr>
1503
+ <td>
1504
+ <pre class="lines">
1505
+
1506
+
1507
+ 150
1508
+ 151
1509
+ 152
1510
+ 153
1511
+ 154
1512
+ 155
1513
+ 156
1514
+ 157
1515
+ 158
1516
+ 159
1517
+ 160
1518
+ 161
1519
+ 162
1520
+ 163
1521
+ 164
1522
+ 165
1523
+ 166
1524
+ 167
1525
+ 168
1526
+ 169
1527
+ 170
1528
+ 171</pre>
1529
+ </td>
1530
+ <td>
1531
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 150</span>
1532
+
1533
+ <span class='kw'>def</span> <span class='id identifier rubyid_publish_scope'>publish_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span><span class='rparen'>)</span>
1534
+ <span class='id identifier rubyid_subscribers'>subscribers</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hgetall'>hgetall</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record_class'>record_class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__scope__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_scope_name'>scope_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1535
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1536
+ <span class='id identifier rubyid_scrub_time'>scrub_time</span> <span class='op'>=</span> <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>-</span> <span class='int'>24</span><span class='period'>.</span><span class='id identifier rubyid_hours'>hours</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1537
+ <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='lbrace'>{</span>
1538
+ <span class='label'>record_type:</span> <span class='id identifier rubyid_record_class'>record_class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
1539
+ <span class='label'>scope:</span> <span class='id identifier rubyid_scope_name'>scope_name</span>
1540
+ <span class='rbrace'>}</span>
1541
+ <span class='id identifier rubyid_subscribers'>subscribers</span><span class='period'>.</span><span class='id identifier rubyid_each_slice'>each_slice</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_slice'>slice</span><span class='op'>|</span>
1542
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1543
+ <span class='id identifier rubyid_slice'>slice</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='op'>|</span>
1544
+ <span class='kw'>if</span> <span class='id identifier rubyid_last_requested'>last_requested</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_scrub_time'>scrub_time</span>
1545
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hdel'>hdel</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record_class'>record_class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__scope__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_scope_name'>scope_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='rparen'>)</span>
1546
+ <span class='kw'>next</span>
1547
+ <span class='kw'>end</span>
1548
+ <span class='id identifier rubyid_channel_array'>channel_array</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hyper-record-update-channel-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_session_id'>session_id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1549
+ <span class='kw'>end</span>
1550
+ <span class='kw'>if</span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resource_transport'>resource_transport</span> <span class='op'>==</span> <span class='symbol'>:pusher</span>
1551
+ <span class='id identifier rubyid__pusher_client'>_pusher_client</span><span class='period'>.</span><span class='id identifier rubyid_trigger_async'>trigger_async</span><span class='lparen'>(</span><span class='id identifier rubyid_channel_array'>channel_array</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>update</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
1552
+ <span class='kw'>end</span>
1553
+ <span class='kw'>end</span>
1554
+ <span class='kw'>end</span></pre>
1555
+ </td>
1556
+ </tr>
1557
+ </table>
1558
+ </div>
1559
+
1560
+ <div class="method_details ">
1561
+ <h3 class="signature " id="subscribe_record-instance_method">
1562
+
1563
+ #<strong>subscribe_record</strong>(record) &#x21d2; <tt>Object</tt>
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+ </h3><div class="docstring">
1570
+ <div class="discussion">
1571
+
1572
+ <p>subscribe to record changes</p>
1573
+
1574
+
1575
+ </div>
1576
+ </div>
1577
+ <div class="tags">
1578
+ <p class="tag_title">Parameters:</p>
1579
+ <ul class="param">
1580
+
1581
+ <li>
1582
+
1583
+ <span class='name'>record</span>
1584
+
1585
+
1586
+ <span class='type'></span>
1587
+
1588
+
1589
+
1590
+ &mdash;
1591
+ <div class='inline'>
1592
+ <p>of ORM specific type</p>
1593
+ </div>
1594
+
1595
+ </li>
1596
+
1597
+ </ul>
1598
+
1599
+
1600
+ </div><table class="source_code">
1601
+ <tr>
1602
+ <td>
1603
+ <pre class="lines">
1604
+
1605
+
1606
+ 176
1607
+ 177
1608
+ 178
1609
+ 179</pre>
1610
+ </td>
1611
+ <td>
1612
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 176</span>
1613
+
1614
+ <span class='kw'>def</span> <span class='id identifier rubyid_subscribe_record'>subscribe_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
1615
+ <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
1616
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1617
+ <span class='kw'>end</span></pre>
1618
+ </td>
1619
+ </tr>
1620
+ </table>
1621
+ </div>
1622
+
1623
+ <div class="method_details ">
1624
+ <h3 class="signature " id="subscribe_relation-instance_method">
1625
+
1626
+ #<strong>subscribe_relation</strong>(relation, base_record = nil, relation_name = nil) &#x21d2; <tt>Object</tt>
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+ </h3><div class="docstring">
1633
+ <div class="discussion">
1634
+
1635
+ <p>subscribe to relation changes</p>
1636
+
1637
+
1638
+ </div>
1639
+ </div>
1640
+ <div class="tags">
1641
+ <p class="tag_title">Parameters:</p>
1642
+ <ul class="param">
1643
+
1644
+ <li>
1645
+
1646
+ <span class='name'>relation</span>
1647
+
1648
+
1649
+ <span class='type'>(<tt>Enumarable</tt>)</span>
1650
+
1651
+
1652
+
1653
+ &mdash;
1654
+ <div class='inline'>
1655
+ <p>or record of ORM specific type, subscribe to each member of relation</p>
1656
+ </div>
1657
+
1658
+ </li>
1659
+
1660
+ <li>
1661
+
1662
+ <span class='name'>base_record</span>
1663
+
1664
+
1665
+ <span class='type'></span>
1666
+
1667
+
1668
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1669
+
1670
+
1671
+ &mdash;
1672
+ <div class='inline'>
1673
+ <p>optional, of ORM specific type, subscribe to this base_record too</p>
1674
+ </div>
1675
+
1676
+ </li>
1677
+
1678
+ <li>
1679
+
1680
+ <span class='name'>relation_name</span>
1681
+
1682
+
1683
+ <span class='type'>(<tt>String</tt>)</span>
1684
+
1685
+
1686
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1687
+
1688
+
1689
+ &mdash;
1690
+ <div class='inline'>
1691
+ <p>optional name of the relation</p>
1692
+ </div>
1693
+
1694
+ </li>
1695
+
1696
+ </ul>
1697
+
1698
+
1699
+ </div><table class="source_code">
1700
+ <tr>
1701
+ <td>
1702
+ <pre class="lines">
1703
+
1704
+
1705
+ 186
1706
+ 187
1707
+ 188
1708
+ 189
1709
+ 190
1710
+ 191
1711
+ 192
1712
+ 193
1713
+ 194
1714
+ 195
1715
+ 196
1716
+ 197
1717
+ 198
1718
+ 199
1719
+ 200
1720
+ 201
1721
+ 202</pre>
1722
+ </td>
1723
+ <td>
1724
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 186</span>
1725
+
1726
+ <span class='kw'>def</span> <span class='id identifier rubyid_subscribe_relation'>subscribe_relation</span><span class='lparen'>(</span><span class='id identifier rubyid_relation'>relation</span><span class='comma'>,</span> <span class='id identifier rubyid_base_record'>base_record</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_relation_name'>relation_name</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1727
+ <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
1728
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1729
+ <span class='id identifier rubyid_session_id'>session_id</span> <span class='op'>=</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1730
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_pipelined'>pipelined</span> <span class='kw'>do</span>
1731
+ <span class='kw'>if</span> <span class='id identifier rubyid_relation'>relation</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Enumerable</span><span class='rparen'>)</span>
1732
+ <span class='comment'># has_many
1733
+ </span> <span class='id identifier rubyid_relation'>relation</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_record'>record</span><span class='op'>|</span>
1734
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_time_now'>time_now</span><span class='rparen'>)</span>
1735
+ <span class='kw'>end</span>
1736
+ <span class='kw'>elsif</span> <span class='op'>!</span><span class='id identifier rubyid_relation'>relation</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1737
+ <span class='comment'># has_one, belongs_to
1738
+ </span> <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_relation'>relation</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_relation'>relation</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_time_now'>time_now</span><span class='rparen'>)</span>
1739
+ <span class='kw'>end</span>
1740
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_base_record'>base_record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_time_now'>time_now</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_base_record'>base_record</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_relation_name'>relation_name</span>
1741
+ <span class='kw'>end</span>
1742
+ <span class='kw'>end</span></pre>
1743
+ </td>
1744
+ </tr>
1745
+ </table>
1746
+ </div>
1747
+
1748
+ <div class="method_details ">
1749
+ <h3 class="signature " id="subscribe_rest_class_method-instance_method">
1750
+
1751
+ #<strong>subscribe_rest_class_method</strong>(record_class, rest_class_method_name) &#x21d2; <tt>Object</tt>
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+ </h3><div class="docstring">
1758
+ <div class="discussion">
1759
+
1760
+ <p>subscribe to rest_class_method updates</p>
1761
+
1762
+
1763
+ </div>
1764
+ </div>
1765
+ <div class="tags">
1766
+ <p class="tag_title">Parameters:</p>
1767
+ <ul class="param">
1768
+
1769
+ <li>
1770
+
1771
+ <span class='name'>record_class</span>
1772
+
1773
+
1774
+ <span class='type'></span>
1775
+
1776
+
1777
+
1778
+ &mdash;
1779
+ <div class='inline'>
1780
+ <p>ORM specific</p>
1781
+ </div>
1782
+
1783
+ </li>
1784
+
1785
+ <li>
1786
+
1787
+ <span class='name'>rest_class_method_name</span>
1788
+
1789
+
1790
+ <span class='type'>(<tt>String</tt>)</span>
1791
+
1792
+
1793
+
1794
+ &mdash;
1795
+ <div class='inline'>
1796
+ <p>name of the rest_class_method</p>
1797
+ </div>
1798
+
1799
+ </li>
1800
+
1801
+ </ul>
1802
+
1803
+
1804
+ </div><table class="source_code">
1805
+ <tr>
1806
+ <td>
1807
+ <pre class="lines">
1808
+
1809
+
1810
+ 208
1811
+ 209
1812
+ 210
1813
+ 211
1814
+ 212
1815
+ 213
1816
+ 214
1817
+ 215</pre>
1818
+ </td>
1819
+ <td>
1820
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 208</span>
1821
+
1822
+ <span class='kw'>def</span> <span class='id identifier rubyid_subscribe_rest_class_method'>subscribe_rest_class_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='rparen'>)</span>
1823
+ <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
1824
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1825
+ <span class='id identifier rubyid_session_id'>session_id</span> <span class='op'>=</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1826
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_pipelined'>pipelined</span> <span class='kw'>do</span>
1827
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record_class'>record_class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__rest_class_method_name__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rest_class_method_name'>rest_class_method_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_time_now'>time_now</span><span class='rparen'>)</span>
1828
+ <span class='kw'>end</span>
1829
+ <span class='kw'>end</span></pre>
1830
+ </td>
1831
+ </tr>
1832
+ </table>
1833
+ </div>
1834
+
1835
+ <div class="method_details ">
1836
+ <h3 class="signature " id="subscribe_rest_method-instance_method">
1837
+
1838
+ #<strong>subscribe_rest_method</strong>(record, rest_method_name) &#x21d2; <tt>Object</tt>
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+ </h3><div class="docstring">
1845
+ <div class="discussion">
1846
+
1847
+ <p>subscribe to rest_method updates</p>
1848
+
1849
+
1850
+ </div>
1851
+ </div>
1852
+ <div class="tags">
1853
+ <p class="tag_title">Parameters:</p>
1854
+ <ul class="param">
1855
+
1856
+ <li>
1857
+
1858
+ <span class='name'>record</span>
1859
+
1860
+
1861
+ <span class='type'></span>
1862
+
1863
+
1864
+
1865
+ &mdash;
1866
+ <div class='inline'>
1867
+ <p>of ORM specific type</p>
1868
+ </div>
1869
+
1870
+ </li>
1871
+
1872
+ <li>
1873
+
1874
+ <span class='name'>rest_method_name</span>
1875
+
1876
+
1877
+ <span class='type'>(<tt>String</tt>)</span>
1878
+
1879
+
1880
+
1881
+ &mdash;
1882
+ <div class='inline'>
1883
+ <p>name of the rest_method</p>
1884
+ </div>
1885
+
1886
+ </li>
1887
+
1888
+ </ul>
1889
+
1890
+
1891
+ </div><table class="source_code">
1892
+ <tr>
1893
+ <td>
1894
+ <pre class="lines">
1895
+
1896
+
1897
+ 221
1898
+ 222
1899
+ 223
1900
+ 224
1901
+ 225
1902
+ 226</pre>
1903
+ </td>
1904
+ <td>
1905
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 221</span>
1906
+
1907
+ <span class='kw'>def</span> <span class='id identifier rubyid_subscribe_rest_method'>subscribe_rest_method</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='comma'>,</span> <span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='rparen'>)</span>
1908
+ <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
1909
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1910
+ <span class='id identifier rubyid_session_id'>session_id</span> <span class='op'>=</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1911
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_content'>__rest_method__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rest_method_name'>rest_method_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_time_now'>time_now</span><span class='rparen'>)</span>
1912
+ <span class='kw'>end</span></pre>
1913
+ </td>
1914
+ </tr>
1915
+ </table>
1916
+ </div>
1917
+
1918
+ <div class="method_details ">
1919
+ <h3 class="signature " id="subscribe_scope-instance_method">
1920
+
1921
+ #<strong>subscribe_scope</strong>(collection, record_class = nil, scope_name = nil) &#x21d2; <tt>Object</tt>
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+ </h3><div class="docstring">
1928
+ <div class="discussion">
1929
+
1930
+ <p>subscribe to scope updates</p>
1931
+
1932
+
1933
+ </div>
1934
+ </div>
1935
+ <div class="tags">
1936
+ <p class="tag_title">Parameters:</p>
1937
+ <ul class="param">
1938
+
1939
+ <li>
1940
+
1941
+ <span class='name'>collection</span>
1942
+
1943
+
1944
+ <span class='type'>(<tt>Enumerable</tt>)</span>
1945
+
1946
+
1947
+
1948
+ &mdash;
1949
+ <div class='inline'>
1950
+ <p>subscribe to each member of collection</p>
1951
+ </div>
1952
+
1953
+ </li>
1954
+
1955
+ <li>
1956
+
1957
+ <span class='name'>record_class</span>
1958
+
1959
+
1960
+ <span class='type'></span>
1961
+
1962
+
1963
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1964
+
1965
+
1966
+ &mdash;
1967
+ <div class='inline'>
1968
+ <p>optional, ORM specific</p>
1969
+ </div>
1970
+
1971
+ </li>
1972
+
1973
+ <li>
1974
+
1975
+ <span class='name'>scope_name</span>
1976
+
1977
+
1978
+ <span class='type'>(<tt>String</tt>)</span>
1979
+
1980
+
1981
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1982
+
1983
+
1984
+ &mdash;
1985
+ <div class='inline'>
1986
+ <p>optional</p>
1987
+ </div>
1988
+
1989
+ </li>
1990
+
1991
+ </ul>
1992
+
1993
+
1994
+ </div><table class="source_code">
1995
+ <tr>
1996
+ <td>
1997
+ <pre class="lines">
1998
+
1999
+
2000
+ 233
2001
+ 234
2002
+ 235
2003
+ 236
2004
+ 237
2005
+ 238
2006
+ 239
2007
+ 240
2008
+ 241
2009
+ 242
2010
+ 243
2011
+ 244
2012
+ 245</pre>
2013
+ </td>
2014
+ <td>
2015
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/pub_sub.rb', line 233</span>
2016
+
2017
+ <span class='kw'>def</span> <span class='id identifier rubyid_subscribe_scope'>subscribe_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_collection'>collection</span><span class='comma'>,</span> <span class='id identifier rubyid_record_class'>record_class</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
2018
+ <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
2019
+ <span class='id identifier rubyid_time_now'>time_now</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
2020
+ <span class='id identifier rubyid_session_id'>session_id</span> <span class='op'>=</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
2021
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_pipelined'>pipelined</span> <span class='kw'>do</span>
2022
+ <span class='kw'>if</span> <span class='id identifier rubyid_collection'>collection</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Enumerable</span><span class='rparen'>)</span>
2023
+ <span class='id identifier rubyid_collection'>collection</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_record'>record</span><span class='op'>|</span>
2024
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record'>record</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_time_now'>time_now</span><span class='rparen'>)</span>
2025
+ <span class='kw'>end</span>
2026
+ <span class='kw'>end</span>
2027
+ <span class='const'><span class='object_link'><a href="../../Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='period'>.</span><span class='id identifier rubyid_redis_instance'>redis_instance</span><span class='period'>.</span><span class='id identifier rubyid_hset'>hset</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HRPS__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_record_class'>record_class</span><span class='embexpr_end'>}</span><span class='tstring_content'>__scope__</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_scope_name'>scope_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_time_now'>time_now</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_record_class'>record_class</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_scope_name'>scope_name</span>
2028
+ <span class='kw'>end</span>
2029
+ <span class='kw'>end</span></pre>
2030
+ </td>
2031
+ </tr>
2032
+ </table>
2033
+ </div>
2034
+
2035
+ </div>
2036
+
2037
+ </div>
2038
+
2039
+ <div id="footer">
2040
+ Generated on Tue Jun 5 23:13:52 2018 by
2041
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2042
+ 0.9.13 (ruby-2.5.1).
2043
+ </div>
2044
+
2045
+ </div>
2046
+ </body>
2047
+ </html>