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,1833 @@
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::ClientInstanceMethods
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::ClientInstanceMethods";
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>
41
+ &raquo;
42
+ <span class="title">ClientInstanceMethods</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::ClientInstanceMethods
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/client_instance_methods.rb</dd>
82
+ </dl>
83
+
84
+ </div>
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+ <h2>
95
+ Instance Method Summary
96
+ <small><a href="#" class="summary_toggle">collapse</a></small>
97
+ </h2>
98
+
99
+ <ul class="summary">
100
+
101
+ <li class="public ">
102
+ <span class="summary_signature">
103
+
104
+ <a href="#_initialize_from_hash-instance_method" title="#_initialize_from_hash (instance method)">#<strong>_initialize_from_hash</strong>(record_hash) &#x21d2; Object </a>
105
+
106
+
107
+
108
+ </span>
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+ <span class="summary_desc"><div class='inline'></div></span>
119
+
120
+ </li>
121
+
122
+
123
+ <li class="public ">
124
+ <span class="summary_signature">
125
+
126
+ <a href="#destroy-instance_method" title="#destroy (instance method)">#<strong>destroy</strong> &#x21d2; Object </a>
127
+
128
+
129
+
130
+ </span>
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+ <span class="summary_desc"><div class='inline'>
141
+ <p>destroy record, success is assumed.</p>
142
+ </div></span>
143
+
144
+ </li>
145
+
146
+
147
+ <li class="public ">
148
+ <span class="summary_signature">
149
+
150
+ <a href="#destroyed%3F-instance_method" title="#destroyed? (instance method)">#<strong>destroyed?</strong> &#x21d2; Boolean </a>
151
+
152
+
153
+
154
+ </span>
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <span class="summary_desc"><div class='inline'>
165
+ <p>check if record has been destroyed.</p>
166
+ </div></span>
167
+
168
+ </li>
169
+
170
+
171
+ <li class="public ">
172
+ <span class="summary_signature">
173
+
174
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(record_hash = {}) &#x21d2; Object </a>
175
+
176
+
177
+
178
+ </span>
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+ <span class="summary_desc"><div class='inline'>
189
+ <p>initialize a new instance of current HyperRecord class.</p>
190
+ </div></span>
191
+
192
+ </li>
193
+
194
+
195
+ <li class="public ">
196
+ <span class="summary_signature">
197
+
198
+ <a href="#link-instance_method" title="#link (instance method)">#<strong>link</strong>(other_record) &#x21d2; HyperRecord </a>
199
+
200
+
201
+
202
+ </span>
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+ <span class="summary_desc"><div class='inline'>
213
+ <p>link the two records using a relation determined by other_record.class,
214
+ success is assumed.</p>
215
+ </div></span>
216
+
217
+ </li>
218
+
219
+
220
+ <li class="public ">
221
+ <span class="summary_signature">
222
+
223
+ <a href="#method_missing-instance_method" title="#method_missing (instance method)">#<strong>method_missing</strong>(method, arg) &#x21d2; Object </a>
224
+
225
+
226
+
227
+ </span>
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+ <span class="summary_desc"><div class='inline'>
238
+ <p>method_missing is used for undeclared properties like in ActiveRecord
239
+ models.</p>
240
+ </div></span>
241
+
242
+ </li>
243
+
244
+
245
+ <li class="public ">
246
+ <span class="summary_signature">
247
+
248
+ <a href="#promise_destroy-instance_method" title="#promise_destroy (instance method)">#<strong>promise_destroy</strong> &#x21d2; Promise </a>
249
+
250
+
251
+
252
+ </span>
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+ <span class="summary_desc"><div class='inline'>
263
+ <p>destroy record.</p>
264
+ </div></span>
265
+
266
+ </li>
267
+
268
+
269
+ <li class="public ">
270
+ <span class="summary_signature">
271
+
272
+ <a href="#promise_link-instance_method" title="#promise_link (instance method)">#<strong>promise_link</strong>(other_record, relation_name = nil) &#x21d2; Promise </a>
273
+
274
+
275
+
276
+ </span>
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+ <span class="summary_desc"><div class='inline'>
287
+ <p>link the two records using a relation determined by other_record.class.</p>
288
+ </div></span>
289
+
290
+ </li>
291
+
292
+
293
+ <li class="public ">
294
+ <span class="summary_signature">
295
+
296
+ <a href="#promise_save-instance_method" title="#promise_save (instance method)">#<strong>promise_save</strong> &#x21d2; Promise </a>
297
+
298
+
299
+
300
+ </span>
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+ <span class="summary_desc"><div class='inline'>
311
+ <p>save record.</p>
312
+ </div></span>
313
+
314
+ </li>
315
+
316
+
317
+ <li class="public ">
318
+ <span class="summary_signature">
319
+
320
+ <a href="#promise_unlink-instance_method" title="#promise_unlink (instance method)">#<strong>promise_unlink</strong>(other_record, relation_name = nil) &#x21d2; Promise </a>
321
+
322
+
323
+
324
+ </span>
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+ <span class="summary_desc"><div class='inline'>
335
+ <p>unlink the two records using a relation determined by other_record.class.</p>
336
+ </div></span>
337
+
338
+ </li>
339
+
340
+
341
+ <li class="public ">
342
+ <span class="summary_signature">
343
+
344
+ <a href="#reflections-instance_method" title="#reflections (instance method)">#<strong>reflections</strong> &#x21d2; Hash </a>
345
+
346
+
347
+
348
+ </span>
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+ <span class="summary_desc"><div class='inline'>
359
+ <p>introspection.</p>
360
+ </div></span>
361
+
362
+ </li>
363
+
364
+
365
+ <li class="public ">
366
+ <span class="summary_signature">
367
+
368
+ <a href="#reset-instance_method" title="#reset (instance method)">#<strong>reset</strong> &#x21d2; HyperRecord </a>
369
+
370
+
371
+
372
+ </span>
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+ <span class="summary_desc"><div class='inline'>
383
+ <p>reset properties to last saved value.</p>
384
+ </div></span>
385
+
386
+ </li>
387
+
388
+
389
+ <li class="public ">
390
+ <span class="summary_signature">
391
+
392
+ <a href="#resource_base_uri-instance_method" title="#resource_base_uri (instance method)">#<strong>resource_base_uri</strong> &#x21d2; String </a>
393
+
394
+
395
+
396
+ </span>
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+ <span class="summary_desc"><div class='inline'>
407
+ <p>get the resource base uri that is used for api calls, used internally.</p>
408
+ </div></span>
409
+
410
+ </li>
411
+
412
+
413
+ <li class="public ">
414
+ <span class="summary_signature">
415
+
416
+ <a href="#save-instance_method" title="#save (instance method)">#<strong>save</strong> &#x21d2; HyperRecord </a>
417
+
418
+
419
+
420
+ </span>
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+ <span class="summary_desc"><div class='inline'>
431
+ <p>save record to db, success is assumed.</p>
432
+ </div></span>
433
+
434
+ </li>
435
+
436
+
437
+ <li class="public ">
438
+ <span class="summary_signature">
439
+
440
+ <a href="#to_hash-instance_method" title="#to_hash (instance method)">#<strong>to_hash</strong> &#x21d2; Hash </a>
441
+
442
+
443
+
444
+ </span>
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+ <span class="summary_desc"><div class='inline'>
455
+ <p>return record properties as Hash.</p>
456
+ </div></span>
457
+
458
+ </li>
459
+
460
+
461
+ <li class="public ">
462
+ <span class="summary_signature">
463
+
464
+ <a href="#to_s-instance_method" title="#to_s (instance method)">#<strong>to_s</strong> &#x21d2; String </a>
465
+
466
+
467
+
468
+ </span>
469
+
470
+
471
+
472
+
473
+
474
+
475
+
476
+
477
+
478
+ <span class="summary_desc"><div class='inline'>
479
+ <p>return record properties as String.</p>
480
+ </div></span>
481
+
482
+ </li>
483
+
484
+
485
+ <li class="public ">
486
+ <span class="summary_signature">
487
+
488
+ <a href="#unlink-instance_method" title="#unlink (instance method)">#<strong>unlink</strong>(other_record) &#x21d2; HyperRecord </a>
489
+
490
+
491
+
492
+ </span>
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+ <span class="summary_desc"><div class='inline'>
503
+ <p>unlink the two records using a relation determined by other_record.class,
504
+ success is assumed.</p>
505
+ </div></span>
506
+
507
+ </li>
508
+
509
+
510
+ </ul>
511
+
512
+
513
+ <div id="method_missing_details" class="method_details_list">
514
+ <h2>Dynamic Method Handling</h2>
515
+ <p class="notice this">
516
+ This class handles dynamic methods through the <tt>method_missing</tt> method
517
+
518
+ </p>
519
+
520
+ <div class="method_details first">
521
+ <h3 class="signature first" id="method_missing-instance_method">
522
+
523
+ #<strong>method_missing</strong>(method, arg) &#x21d2; <tt>Object</tt>
524
+
525
+
526
+
527
+
528
+
529
+ </h3><div class="docstring">
530
+ <div class="discussion">
531
+
532
+ <p>method_missing is used for undeclared properties like in ActiveRecord
533
+ models</p>
534
+
535
+ <p>Two call signatures:</p>
536
+ <ol><li>
537
+ <p>the getter:</p>
538
+ </li></ol>
539
+
540
+ <p>a_model.a_undeclared_property, returns the value of a_undeclared_property</p>
541
+ <ol><li>
542
+ <p>the setter:</p>
543
+ </li></ol>
544
+
545
+ <p>a_model.a_undeclared_property = value, set a_undeclared_property to value,
546
+ returns value</p>
547
+
548
+
549
+ </div>
550
+ </div>
551
+ <div class="tags">
552
+
553
+
554
+ </div><table class="source_code">
555
+ <tr>
556
+ <td>
557
+ <pre class="lines">
558
+
559
+
560
+ 97
561
+ 98
562
+ 99
563
+ 100
564
+ 101
565
+ 102
566
+ 103
567
+ 104
568
+ 105
569
+ 106
570
+ 107
571
+ 108</pre>
572
+ </td>
573
+ <td>
574
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 97</span>
575
+
576
+ <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arg'>arg</span><span class='rparen'>)</span>
577
+ <span class='id identifier rubyid__register_observer'>_register_observer</span>
578
+ <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span><span class='period'>.</span><span class='id identifier rubyid_end_with?'>end_with?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>=</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
579
+ <span class='ivar'>@changed_properties</span><span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='period'>.</span><span class='id identifier rubyid_chop'>chop</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_arg'>arg</span>
580
+ <span class='kw'>else</span>
581
+ <span class='kw'>if</span> <span class='ivar'>@changed_properties</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
582
+ <span class='ivar'>@changed_properties</span><span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='rbracket'>]</span>
583
+ <span class='kw'>else</span>
584
+ <span class='ivar'>@properties</span><span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='rbracket'>]</span>
585
+ <span class='kw'>end</span>
586
+ <span class='kw'>end</span>
587
+ <span class='kw'>end</span></pre>
588
+ </td>
589
+ </tr>
590
+ </table>
591
+ </div>
592
+
593
+ </div>
594
+
595
+
596
+ <div id="instance_method_details" class="method_details_list">
597
+ <h2>Instance Method Details</h2>
598
+
599
+
600
+ <div class="method_details first">
601
+ <h3 class="signature first" id="_initialize_from_hash-instance_method">
602
+
603
+ #<strong>_initialize_from_hash</strong>(record_hash) &#x21d2; <tt>Object</tt>
604
+
605
+
606
+
607
+
608
+
609
+ </h3><table class="source_code">
610
+ <tr>
611
+ <td>
612
+ <pre class="lines">
613
+
614
+
615
+ 31
616
+ 32
617
+ 33
618
+ 34
619
+ 35
620
+ 36
621
+ 37
622
+ 38
623
+ 39
624
+ 40
625
+ 41
626
+ 42
627
+ 43
628
+ 44
629
+ 45
630
+ 46
631
+ 47
632
+ 48
633
+ 49
634
+ 50
635
+ 51
636
+ 52
637
+ 53
638
+ 54
639
+ 55
640
+ 56
641
+ 57
642
+ 58
643
+ 59
644
+ 60
645
+ 61</pre>
646
+ </td>
647
+ <td>
648
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 31</span>
649
+
650
+ <span class='kw'>def</span> <span class='id identifier rubyid__initialize_from_hash'>_initialize_from_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_record_hash'>record_hash</span><span class='rparen'>)</span>
651
+ <span class='id identifier rubyid_reflections'>reflections</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</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_relation'>relation</span><span class='op'>|</span>
652
+ <span class='kw'>if</span> <span class='id identifier rubyid_record_hash'>record_hash</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='id identifier rubyid_relation'>relation</span><span class='rparen'>)</span>
653
+ <span class='ivar'>@fetch_states</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>f</span><span class='tstring_end'>&#39;</span></span> <span class='comment'># fetched
654
+ </span> <span class='kw'>if</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>has_many</span><span class='words_sep'> </span><span class='tstring_content'>has_and_belongs_to_many</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_reflections'>reflections</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:kind</span><span class='rbracket'>]</span><span class='rparen'>)</span>
655
+ <span class='kw'>if</span> <span class='id identifier rubyid_record_hash'>record_hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
656
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Collection.html" title="HyperRecord::Collection (class)">Collection</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Collection.html#initialize-instance_method" title="HyperRecord::Collection#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_relation'>relation</span><span class='rparen'>)</span>
657
+ <span class='kw'>else</span>
658
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__convert_array_to_collection'>_convert_array_to_collection</span><span class='lparen'>(</span><span class='id identifier rubyid_record_hash'>record_hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_relation'>relation</span><span class='rparen'>)</span>
659
+ <span class='kw'>end</span>
660
+ <span class='kw'>else</span>
661
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__convert_json_hash_to_record'>_convert_json_hash_to_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record_hash'>record_hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span><span class='rparen'>)</span>
662
+ <span class='kw'>end</span>
663
+ <span class='kw'>else</span>
664
+ <span class='kw'>unless</span> <span class='ivar'>@fetch_states</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>f</span><span class='tstring_end'>&#39;</span></span>
665
+ <span class='kw'>if</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>has_many</span><span class='words_sep'> </span><span class='tstring_content'>has_and_belongs_to_many</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_reflections'>reflections</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:kind</span><span class='rbracket'>]</span><span class='rparen'>)</span>
666
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Collection.html" title="HyperRecord::Collection (class)">Collection</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Collection.html#initialize-instance_method" title="HyperRecord::Collection#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_relation'>relation</span><span class='rparen'>)</span>
667
+ <span class='kw'>else</span>
668
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span>
669
+ <span class='kw'>end</span>
670
+ <span class='ivar'>@fetch_states</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation'>relation</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>n</span><span class='tstring_end'>&#39;</span></span>
671
+ <span class='kw'>end</span>
672
+ <span class='kw'>end</span>
673
+ <span class='id identifier rubyid_record_hash'>record_hash</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_relation'>relation</span><span class='rparen'>)</span>
674
+ <span class='kw'>end</span>
675
+
676
+ <span class='ivar'>@properties</span> <span class='op'>=</span> <span class='id identifier rubyid_record_hash'>record_hash</span>
677
+
678
+ <span class='comment'># cache in global cache
679
+ </span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__record_cache'>_record_cache</span><span class='lbracket'>[</span><span class='ivar'>@properties</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>self</span> <span class='kw'>if</span> <span class='ivar'>@properties</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:id</span><span class='rparen'>)</span>
680
+ <span class='kw'>end</span></pre>
681
+ </td>
682
+ </tr>
683
+ </table>
684
+ </div>
685
+
686
+ <div class="method_details ">
687
+ <h3 class="signature " id="destroy-instance_method">
688
+
689
+ #<strong>destroy</strong> &#x21d2; <tt>Object</tt>
690
+
691
+
692
+
693
+
694
+
695
+ </h3><div class="docstring">
696
+ <div class="discussion">
697
+
698
+ <p>destroy record, success is assumed</p>
699
+
700
+
701
+ </div>
702
+ </div>
703
+ <div class="tags">
704
+
705
+ <p class="tag_title">Returns:</p>
706
+ <ul class="return">
707
+
708
+ <li>
709
+
710
+
711
+ <span class='type'></span>
712
+
713
+
714
+
715
+
716
+ <div class='inline'>
717
+ <p>nil</p>
718
+ </div>
719
+
720
+ </li>
721
+
722
+ </ul>
723
+
724
+ </div><table class="source_code">
725
+ <tr>
726
+ <td>
727
+ <pre class="lines">
728
+
729
+
730
+ 68
731
+ 69
732
+ 70
733
+ 71</pre>
734
+ </td>
735
+ <td>
736
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 68</span>
737
+
738
+ <span class='kw'>def</span> <span class='id identifier rubyid_destroy'>destroy</span>
739
+ <span class='id identifier rubyid_promise_destroy'>promise_destroy</span>
740
+ <span class='kw'>nil</span>
741
+ <span class='kw'>end</span></pre>
742
+ </td>
743
+ </tr>
744
+ </table>
745
+ </div>
746
+
747
+ <div class="method_details ">
748
+ <h3 class="signature " id="destroyed?-instance_method">
749
+
750
+ #<strong>destroyed?</strong> &#x21d2; <tt>Boolean</tt>
751
+
752
+
753
+
754
+
755
+
756
+ </h3><div class="docstring">
757
+ <div class="discussion">
758
+
759
+ <p>check if record has been destroyed</p>
760
+
761
+
762
+ </div>
763
+ </div>
764
+ <div class="tags">
765
+
766
+ <p class="tag_title">Returns:</p>
767
+ <ul class="return">
768
+
769
+ <li>
770
+
771
+
772
+ <span class='type'>(<tt>Boolean</tt>)</span>
773
+
774
+
775
+
776
+ </li>
777
+
778
+ </ul>
779
+
780
+ </div><table class="source_code">
781
+ <tr>
782
+ <td>
783
+ <pre class="lines">
784
+
785
+
786
+ 76
787
+ 77
788
+ 78</pre>
789
+ </td>
790
+ <td>
791
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 76</span>
792
+
793
+ <span class='kw'>def</span> <span class='id identifier rubyid_destroyed?'>destroyed?</span>
794
+ <span class='ivar'>@destroyed</span>
795
+ <span class='kw'>end</span></pre>
796
+ </td>
797
+ </tr>
798
+ </table>
799
+ </div>
800
+
801
+ <div class="method_details ">
802
+ <h3 class="signature " id="initialize-instance_method">
803
+
804
+ #<strong>initialize</strong>(record_hash = {}) &#x21d2; <tt>Object</tt>
805
+
806
+
807
+
808
+
809
+
810
+ </h3><div class="docstring">
811
+ <div class="discussion">
812
+
813
+ <p>initialize a new instance of current HyperRecord class</p>
814
+
815
+
816
+ </div>
817
+ </div>
818
+ <div class="tags">
819
+ <p class="tag_title">Parameters:</p>
820
+ <ul class="param">
821
+
822
+ <li>
823
+
824
+ <span class='name'>record_hash</span>
825
+
826
+
827
+ <span class='type'>(<tt>Hash</tt>)</span>
828
+
829
+
830
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
831
+
832
+
833
+ &mdash;
834
+ <div class='inline'>
835
+ <p>optional, initial values for properties</p>
836
+ </div>
837
+
838
+ </li>
839
+
840
+ </ul>
841
+
842
+
843
+ </div><table class="source_code">
844
+ <tr>
845
+ <td>
846
+ <pre class="lines">
847
+
848
+
849
+ 7
850
+ 8
851
+ 9
852
+ 10
853
+ 11
854
+ 12
855
+ 13
856
+ 14
857
+ 15
858
+ 16
859
+ 17
860
+ 18
861
+ 19
862
+ 20
863
+ 21
864
+ 22
865
+ 23
866
+ 24
867
+ 25
868
+ 26
869
+ 27
870
+ 28
871
+ 29</pre>
872
+ </td>
873
+ <td>
874
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 7</span>
875
+
876
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_record_hash'>record_hash</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
877
+ <span class='comment'># initalize internal data structures
878
+ </span> <span class='id identifier rubyid_record_hash'>record_hash</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_record_hash'>record_hash</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
879
+ <span class='ivar'>@properties</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
880
+ <span class='ivar'>@changed_properties</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
881
+ <span class='ivar'>@relations</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
882
+ <span class='ivar'>@rest_methods</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
883
+ <span class='ivar'>@destroyed</span> <span class='op'>=</span> <span class='kw'>false</span>
884
+ <span class='comment'># for reactivity, possible @fetch_states:
885
+ </span> <span class='comment'># n - not fetched
886
+ </span> <span class='comment'># f - fetched
887
+ </span> <span class='comment'># i - fetch in progress
888
+ </span> <span class='comment'># u - update needed, fetch on next usage
889
+ </span> <span class='ivar'>@fetch_states</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
890
+ <span class='ivar'>@state_key</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='kw'>self</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='embexpr_end'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_object_id'>object_id</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
891
+ <span class='ivar'>@observers</span> <span class='op'>=</span> <span class='const'>Set</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
892
+ <span class='ivar'>@registered_collections</span> <span class='op'>=</span> <span class='const'>Set</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
893
+
894
+ <span class='id identifier rubyid__initialize_from_hash'>_initialize_from_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_record_hash'>record_hash</span><span class='rparen'>)</span>
895
+
896
+ <span class='comment'># for reactivity
897
+ </span> <span class='id identifier rubyid__register_observer'>_register_observer</span>
898
+ <span class='kw'>end</span></pre>
899
+ </td>
900
+ </tr>
901
+ </table>
902
+ </div>
903
+
904
+ <div class="method_details ">
905
+ <h3 class="signature " id="link-instance_method">
906
+
907
+ #<strong>link</strong>(other_record) &#x21d2; <tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>
908
+
909
+
910
+
911
+
912
+
913
+ </h3><div class="docstring">
914
+ <div class="discussion">
915
+
916
+ <p>link the two records using a relation determined by other_record.class,
917
+ success is assumed</p>
918
+
919
+
920
+ </div>
921
+ </div>
922
+ <div class="tags">
923
+ <p class="tag_title">Parameters:</p>
924
+ <ul class="param">
925
+
926
+ <li>
927
+
928
+ <span class='name'>other_record</span>
929
+
930
+
931
+ <span class='type'>(<tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>)</span>
932
+
933
+
934
+
935
+ </li>
936
+
937
+ </ul>
938
+
939
+ <p class="tag_title">Returns:</p>
940
+ <ul class="return">
941
+
942
+ <li>
943
+
944
+
945
+ <span class='type'>(<tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>)</span>
946
+
947
+
948
+
949
+ &mdash;
950
+ <div class='inline'>
951
+ <p>self</p>
952
+ </div>
953
+
954
+ </li>
955
+
956
+ </ul>
957
+
958
+ </div><table class="source_code">
959
+ <tr>
960
+ <td>
961
+ <pre class="lines">
962
+
963
+
964
+ 84
965
+ 85
966
+ 86
967
+ 87
968
+ 88</pre>
969
+ </td>
970
+ <td>
971
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 84</span>
972
+
973
+ <span class='kw'>def</span> <span class='id identifier rubyid_link'>link</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</span><span class='rparen'>)</span>
974
+ <span class='id identifier rubyid__register_observer'>_register_observer</span>
975
+ <span class='id identifier rubyid_promise_link'>promise_link</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</span><span class='rparen'>)</span>
976
+ <span class='kw'>self</span>
977
+ <span class='kw'>end</span></pre>
978
+ </td>
979
+ </tr>
980
+ </table>
981
+ </div>
982
+
983
+ <div class="method_details ">
984
+ <h3 class="signature " id="promise_destroy-instance_method">
985
+
986
+ #<strong>promise_destroy</strong> &#x21d2; <tt>Promise</tt>
987
+
988
+
989
+
990
+
991
+
992
+ </h3><div class="docstring">
993
+ <div class="discussion">
994
+
995
+ <p>destroy record</p>
996
+
997
+
998
+ </div>
999
+ </div>
1000
+ <div class="tags">
1001
+
1002
+ <p class="tag_title">Returns:</p>
1003
+ <ul class="return">
1004
+
1005
+ <li>
1006
+
1007
+
1008
+ <span class='type'>(<tt>Promise</tt>)</span>
1009
+
1010
+
1011
+
1012
+ &mdash;
1013
+ <div class='inline'>
1014
+ <p>on success the record is passed to the .then block on failure the HTTP
1015
+ response is passed to the .fail block</p>
1016
+ </div>
1017
+
1018
+ </li>
1019
+
1020
+ </ul>
1021
+
1022
+ </div><table class="source_code">
1023
+ <tr>
1024
+ <td>
1025
+ <pre class="lines">
1026
+
1027
+
1028
+ 174
1029
+ 175
1030
+ 176
1031
+ 177
1032
+ 178
1033
+ 179
1034
+ 180
1035
+ 181
1036
+ 182
1037
+ 183</pre>
1038
+ </td>
1039
+ <td>
1040
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 174</span>
1041
+
1042
+ <span class='kw'>def</span> <span class='id identifier rubyid_promise_destroy'>promise_destroy</span>
1043
+ <span class='id identifier rubyid__local_destroy'>_local_destroy</span>
1044
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__promise_delete'>_promise_delete</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_resource_base_uri'>resource_base_uri</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='ivar'>@properties</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_then'>then</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_record'>record</span><span class='op'>|</span>
1045
+ <span class='kw'>self</span>
1046
+ <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_fail'>fail</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1047
+ <span class='id identifier rubyid_error_message'>error_message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Destroying record </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed!</span><span class='tstring_end'>&quot;</span></span>
1048
+ <span class='backtick'>`</span><span class='tstring_content'>console.error(error_message)</span><span class='tstring_end'>`</span></span>
1049
+ <span class='id identifier rubyid_response'>response</span>
1050
+ <span class='kw'>end</span>
1051
+ <span class='kw'>end</span></pre>
1052
+ </td>
1053
+ </tr>
1054
+ </table>
1055
+ </div>
1056
+
1057
+ <div class="method_details ">
1058
+ <h3 class="signature " id="promise_link-instance_method">
1059
+
1060
+ #<strong>promise_link</strong>(other_record, relation_name = nil) &#x21d2; <tt>Promise</tt>
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+ </h3><div class="docstring">
1067
+ <div class="discussion">
1068
+
1069
+ <p>link the two records using a relation determined by other_record.class</p>
1070
+
1071
+
1072
+ </div>
1073
+ </div>
1074
+ <div class="tags">
1075
+ <p class="tag_title">Parameters:</p>
1076
+ <ul class="param">
1077
+
1078
+ <li>
1079
+
1080
+ <span class='name'>other_record</span>
1081
+
1082
+
1083
+ <span class='type'>(<tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>)</span>
1084
+
1085
+
1086
+
1087
+ </li>
1088
+
1089
+ </ul>
1090
+
1091
+ <p class="tag_title">Returns:</p>
1092
+ <ul class="return">
1093
+
1094
+ <li>
1095
+
1096
+
1097
+ <span class='type'>(<tt>Promise</tt>)</span>
1098
+
1099
+
1100
+
1101
+ &mdash;
1102
+ <div class='inline'>
1103
+ <p>on success the record is passed to the .then block on failure the HTTP
1104
+ response is passed to the .fail block</p>
1105
+ </div>
1106
+
1107
+ </li>
1108
+
1109
+ </ul>
1110
+
1111
+ </div><table class="source_code">
1112
+ <tr>
1113
+ <td>
1114
+ <pre class="lines">
1115
+
1116
+
1117
+ 190
1118
+ 191
1119
+ 192
1120
+ 193
1121
+ 194
1122
+ 195
1123
+ 196
1124
+ 197
1125
+ 198
1126
+ 199
1127
+ 200
1128
+ 201
1129
+ 202
1130
+ 203
1131
+ 204
1132
+ 205
1133
+ 206
1134
+ 207
1135
+ 208
1136
+ 209
1137
+ 210
1138
+ 211
1139
+ 212
1140
+ 213
1141
+ 214
1142
+ 215
1143
+ 216
1144
+ 217
1145
+ 218
1146
+ 219
1147
+ 220
1148
+ 221
1149
+ 222
1150
+ 223
1151
+ 224
1152
+ 225</pre>
1153
+ </td>
1154
+ <td>
1155
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 190</span>
1156
+
1157
+ <span class='kw'>def</span> <span class='id identifier rubyid_promise_link'>promise_link</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</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>
1158
+ <span class='id identifier rubyid_called_from_collection'>called_from_collection</span> <span class='op'>=</span> <span class='id identifier rubyid_relation_name'>relation_name</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
1159
+ <span class='id identifier rubyid_relation_name'>relation_name</span> <span class='op'>=</span> <span class='id identifier rubyid_other_record'>other_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='period'>.</span><span class='id identifier rubyid_underscore'>underscore</span><span class='period'>.</span><span class='id identifier rubyid_pluralize'>pluralize</span> <span class='kw'>unless</span> <span class='id identifier rubyid_relation_name'>relation_name</span>
1160
+ <span class='kw'>if</span> <span class='id identifier rubyid_reflections'>reflections</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rparen'>)</span>
1161
+ <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_called_from_collection'>called_from_collection</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@fetch_states</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>f</span><span class='tstring_end'>&#39;</span></span>
1162
+ <span class='kw'>if</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>has_many</span><span class='words_sep'> </span><span class='tstring_content'>has_and_belongs_to_many</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_reflections'>reflections</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:kind</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1163
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Collection.html" title="HyperRecord::Collection (class)">Collection</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Collection.html#initialize-instance_method" title="HyperRecord::Collection#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_relation_name'>relation_name</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1164
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</span><span class='rparen'>)</span>
1165
+ <span class='kw'>else</span>
1166
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_other_record'>other_record</span>
1167
+ <span class='kw'>end</span>
1168
+ <span class='kw'>end</span>
1169
+ <span class='kw'>else</span>
1170
+ <span class='id identifier rubyid_relation_name'>relation_name</span> <span class='op'>=</span> <span class='id identifier rubyid_other_record'>other_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='period'>.</span><span class='id identifier rubyid_underscore'>underscore</span>
1171
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No collection for record of type </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_other_record'>other_record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_reflections'>reflections</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rparen'>)</span>
1172
+ <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_called_from_collection'>called_from_collection</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@fetch_states</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>f</span><span class='tstring_end'>&#39;</span></span>
1173
+ <span class='kw'>if</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>has_many</span><span class='words_sep'> </span><span class='tstring_content'>has_and_belongs_to_many</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_reflections'>reflections</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:kind</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1174
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Collection.html" title="HyperRecord::Collection (class)">Collection</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Collection.html#initialize-instance_method" title="HyperRecord::Collection#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_relation_name'>relation_name</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1175
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</span><span class='rparen'>)</span>
1176
+ <span class='kw'>else</span>
1177
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_other_record'>other_record</span>
1178
+ <span class='kw'>end</span>
1179
+ <span class='kw'>end</span>
1180
+ <span class='kw'>end</span>
1181
+ <span class='id identifier rubyid_payload_hash'>payload_hash</span> <span class='op'>=</span> <span class='id identifier rubyid_other_record'>other_record</span><span class='period'>.</span><span class='id identifier rubyid_to_hash'>to_hash</span>
1182
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__promise_post'>_promise_post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_resource_base_uri'>resource_base_uri</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='embexpr_end'>}</span><span class='tstring_content'>/relations/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>.json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='label'>data:</span> <span class='id identifier rubyid_payload_hash'>payload_hash</span> <span class='rbrace'>}</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_then'>then</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1183
+ <span class='id identifier rubyid_other_record'>other_record</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_get'>instance_variable_get</span><span class='lparen'>(</span><span class='symbol'>:merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='id identifier rubyid_other_record'>other_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='period'>.</span><span class='id identifier rubyid_underscore'>underscore</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1184
+ <span class='id identifier rubyid__notify_observers'>_notify_observers</span>
1185
+ <span class='id identifier rubyid_other_record'>other_record</span><span class='period'>.</span><span class='id identifier rubyid__notify_observers'>_notify_observers</span>
1186
+ <span class='kw'>self</span>
1187
+ <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_fail'>fail</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1188
+ <span class='id identifier rubyid_error_message'>error_message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Linking record </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_other_record'>other_record</span><span class='embexpr_end'>}</span><span class='tstring_content'> to </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed!</span><span class='tstring_end'>&quot;</span></span>
1189
+ <span class='backtick'>`</span><span class='tstring_content'>console.error(error_message)</span><span class='tstring_end'>`</span></span>
1190
+ <span class='id identifier rubyid_response'>response</span>
1191
+ <span class='kw'>end</span>
1192
+ <span class='kw'>end</span></pre>
1193
+ </td>
1194
+ </tr>
1195
+ </table>
1196
+ </div>
1197
+
1198
+ <div class="method_details ">
1199
+ <h3 class="signature " id="promise_save-instance_method">
1200
+
1201
+ #<strong>promise_save</strong> &#x21d2; <tt>Promise</tt>
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+ </h3><div class="docstring">
1208
+ <div class="discussion">
1209
+
1210
+ <p>save record</p>
1211
+
1212
+
1213
+ </div>
1214
+ </div>
1215
+ <div class="tags">
1216
+
1217
+ <p class="tag_title">Returns:</p>
1218
+ <ul class="return">
1219
+
1220
+ <li>
1221
+
1222
+
1223
+ <span class='type'>(<tt>Promise</tt>)</span>
1224
+
1225
+
1226
+
1227
+ &mdash;
1228
+ <div class='inline'>
1229
+ <p>on success the record is passed to the .then block on failure the HTTP
1230
+ response is passed to the .fail block</p>
1231
+ </div>
1232
+
1233
+ </li>
1234
+
1235
+ </ul>
1236
+
1237
+ </div><table class="source_code">
1238
+ <tr>
1239
+ <td>
1240
+ <pre class="lines">
1241
+
1242
+
1243
+ 231
1244
+ 232
1245
+ 233
1246
+ 234
1247
+ 235
1248
+ 236
1249
+ 237
1250
+ 238
1251
+ 239
1252
+ 240
1253
+ 241
1254
+ 242
1255
+ 243
1256
+ 244
1257
+ 245
1258
+ 246
1259
+ 247
1260
+ 248
1261
+ 249
1262
+ 250
1263
+ 251
1264
+ 252
1265
+ 253
1266
+ 254
1267
+ 255
1268
+ 256
1269
+ 257
1270
+ 258</pre>
1271
+ </td>
1272
+ <td>
1273
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 231</span>
1274
+
1275
+ <span class='kw'>def</span> <span class='id identifier rubyid_promise_save'>promise_save</span>
1276
+ <span class='id identifier rubyid_payload_hash'>payload_hash</span> <span class='op'>=</span> <span class='ivar'>@properties</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='ivar'>@changed_properties</span><span class='rparen'>)</span> <span class='comment'># copy hash, because we need to delete some keys
1277
+ </span> <span class='lparen'>(</span><span class='qsymbols_beg'>%i[</span><span class='tstring_content'>id</span><span class='words_sep'> </span><span class='tstring_content'>created_at</span><span class='words_sep'> </span><span class='tstring_content'>updated_at</span><span class='tstring_end'>]</span></span> <span class='op'>+</span> <span class='id identifier rubyid_reflections'>reflections</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='rparen'>)</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_key'>key</span><span class='op'>|</span>
1278
+ <span class='id identifier rubyid_payload_hash'>payload_hash</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
1279
+ <span class='kw'>end</span>
1280
+ <span class='kw'>if</span> <span class='ivar'>@properties</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span> <span class='lparen'>(</span><span class='ivar'>@changed_properties</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:id</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@changed_properties</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
1281
+ <span class='id identifier rubyid_reset'>reset</span>
1282
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__promise_patch'>_promise_patch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_resource_base_uri'>resource_base_uri</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='ivar'>@properties</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='label'>data:</span> <span class='id identifier rubyid_payload_hash'>payload_hash</span> <span class='rbrace'>}</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_then'>then</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1283
+ <span class='ivar'>@properties</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='kw'>self</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='period'>.</span><span class='id identifier rubyid_underscore'>underscore</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1284
+ <span class='id identifier rubyid__notify_observers'>_notify_observers</span>
1285
+ <span class='kw'>self</span>
1286
+ <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_fail'>fail</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1287
+ <span class='id identifier rubyid_error_message'>error_message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Saving record </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed!</span><span class='tstring_end'>&quot;</span></span>
1288
+ <span class='backtick'>`</span><span class='tstring_content'>console.error(error_message)</span><span class='tstring_end'>`</span></span>
1289
+ <span class='id identifier rubyid_response'>response</span>
1290
+ <span class='kw'>end</span>
1291
+ <span class='kw'>else</span>
1292
+ <span class='id identifier rubyid_reset'>reset</span>
1293
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__promise_post'>_promise_post</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_base_uri'>resource_base_uri</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='label'>data:</span> <span class='id identifier rubyid_payload_hash'>payload_hash</span> <span class='rbrace'>}</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_then'>then</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1294
+ <span class='ivar'>@properties</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='kw'>self</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='period'>.</span><span class='id identifier rubyid_underscore'>underscore</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1295
+ <span class='kw'>self</span>
1296
+ <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_fail'>fail</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1297
+ <span class='id identifier rubyid_error_message'>error_message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Creating record </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed!</span><span class='tstring_end'>&quot;</span></span>
1298
+ <span class='backtick'>`</span><span class='tstring_content'>console.error(error_message)</span><span class='tstring_end'>`</span></span>
1299
+ <span class='id identifier rubyid_response'>response</span>
1300
+ <span class='kw'>end</span>
1301
+ <span class='kw'>end</span>
1302
+ <span class='kw'>end</span></pre>
1303
+ </td>
1304
+ </tr>
1305
+ </table>
1306
+ </div>
1307
+
1308
+ <div class="method_details ">
1309
+ <h3 class="signature " id="promise_unlink-instance_method">
1310
+
1311
+ #<strong>promise_unlink</strong>(other_record, relation_name = nil) &#x21d2; <tt>Promise</tt>
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+ </h3><div class="docstring">
1318
+ <div class="discussion">
1319
+
1320
+ <p>unlink the two records using a relation determined by other_record.class</p>
1321
+
1322
+
1323
+ </div>
1324
+ </div>
1325
+ <div class="tags">
1326
+ <p class="tag_title">Parameters:</p>
1327
+ <ul class="param">
1328
+
1329
+ <li>
1330
+
1331
+ <span class='name'>other_record</span>
1332
+
1333
+
1334
+ <span class='type'>(<tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>)</span>
1335
+
1336
+
1337
+
1338
+ </li>
1339
+
1340
+ </ul>
1341
+
1342
+ <p class="tag_title">Returns:</p>
1343
+ <ul class="return">
1344
+
1345
+ <li>
1346
+
1347
+
1348
+ <span class='type'>(<tt>Promise</tt>)</span>
1349
+
1350
+
1351
+
1352
+ &mdash;
1353
+ <div class='inline'>
1354
+ <p>on success the record is passed to the .then block on failure the HTTP
1355
+ response is passed to the .fail block</p>
1356
+ </div>
1357
+
1358
+ </li>
1359
+
1360
+ </ul>
1361
+
1362
+ </div><table class="source_code">
1363
+ <tr>
1364
+ <td>
1365
+ <pre class="lines">
1366
+
1367
+
1368
+ 265
1369
+ 266
1370
+ 267
1371
+ 268
1372
+ 269
1373
+ 270
1374
+ 271
1375
+ 272
1376
+ 273
1377
+ 274
1378
+ 275
1379
+ 276
1380
+ 277
1381
+ 278
1382
+ 279</pre>
1383
+ </td>
1384
+ <td>
1385
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 265</span>
1386
+
1387
+ <span class='kw'>def</span> <span class='id identifier rubyid_promise_unlink'>promise_unlink</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</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>
1388
+ <span class='id identifier rubyid_called_from_collection'>called_from_collection</span> <span class='op'>=</span> <span class='id identifier rubyid_collection_name'>collection_name</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
1389
+ <span class='id identifier rubyid_relation_name'>relation_name</span> <span class='op'>=</span> <span class='id identifier rubyid_other_record'>other_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='period'>.</span><span class='id identifier rubyid_underscore'>underscore</span><span class='period'>.</span><span class='id identifier rubyid_pluralize'>pluralize</span> <span class='kw'>unless</span> <span class='id identifier rubyid_relation_name'>relation_name</span>
1390
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No relation for record of type </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_other_record'>other_record</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_reflections'>reflections</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rparen'>)</span>
1391
+ <span class='ivar'>@relations</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_delete_if'>delete_if</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_cr'>cr</span><span class='op'>|</span> <span class='id identifier rubyid_cr'>cr</span> <span class='op'>==</span> <span class='id identifier rubyid_other_record'>other_record</span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_called_from_collection'>called_from_collection</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@fetch_states</span><span class='lbracket'>[</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>f</span><span class='tstring_end'>&#39;</span></span>
1392
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__promise_delete'>_promise_delete</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_resource_base_uri'>resource_base_uri</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='ivar'>@properties</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>/relations/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_relation_name'>relation_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>.json?record_id=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_other_record'>other_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='period'>.</span><span class='id identifier rubyid_then'>then</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1393
+ <span class='id identifier rubyid__notify_observers'>_notify_observers</span>
1394
+ <span class='id identifier rubyid_other_record'>other_record</span><span class='period'>.</span><span class='id identifier rubyid__notify_observers'>_notify_observers</span>
1395
+ <span class='kw'>self</span>
1396
+ <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_fail'>fail</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_response'>response</span><span class='op'>|</span>
1397
+ <span class='id identifier rubyid_error_message'>error_message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unlinking </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_other_record'>other_record</span><span class='embexpr_end'>}</span><span class='tstring_content'> from </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> failed!</span><span class='tstring_end'>&quot;</span></span>
1398
+ <span class='backtick'>`</span><span class='tstring_content'>console.error(error_message)</span><span class='tstring_end'>`</span></span>
1399
+ <span class='id identifier rubyid_response'>response</span>
1400
+ <span class='kw'>end</span>
1401
+ <span class='kw'>end</span></pre>
1402
+ </td>
1403
+ </tr>
1404
+ </table>
1405
+ </div>
1406
+
1407
+ <div class="method_details ">
1408
+ <h3 class="signature " id="reflections-instance_method">
1409
+
1410
+ #<strong>reflections</strong> &#x21d2; <tt>Hash</tt>
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+ </h3><div class="docstring">
1417
+ <div class="discussion">
1418
+
1419
+ <p>introspection</p>
1420
+
1421
+
1422
+ </div>
1423
+ </div>
1424
+ <div class="tags">
1425
+
1426
+ <p class="tag_title">Returns:</p>
1427
+ <ul class="return">
1428
+
1429
+ <li>
1430
+
1431
+
1432
+ <span class='type'>(<tt>Hash</tt>)</span>
1433
+
1434
+
1435
+
1436
+ </li>
1437
+
1438
+ </ul>
1439
+
1440
+ </div><table class="source_code">
1441
+ <tr>
1442
+ <td>
1443
+ <pre class="lines">
1444
+
1445
+
1446
+ 112
1447
+ 113
1448
+ 114</pre>
1449
+ </td>
1450
+ <td>
1451
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 112</span>
1452
+
1453
+ <span class='kw'>def</span> <span class='id identifier rubyid_reflections'>reflections</span>
1454
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_reflections'>reflections</span>
1455
+ <span class='kw'>end</span></pre>
1456
+ </td>
1457
+ </tr>
1458
+ </table>
1459
+ </div>
1460
+
1461
+ <div class="method_details ">
1462
+ <h3 class="signature " id="reset-instance_method">
1463
+
1464
+ #<strong>reset</strong> &#x21d2; <tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+ </h3><div class="docstring">
1471
+ <div class="discussion">
1472
+
1473
+ <p>reset properties to last saved value</p>
1474
+
1475
+
1476
+ </div>
1477
+ </div>
1478
+ <div class="tags">
1479
+
1480
+ <p class="tag_title">Returns:</p>
1481
+ <ul class="return">
1482
+
1483
+ <li>
1484
+
1485
+
1486
+ <span class='type'>(<tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>)</span>
1487
+
1488
+
1489
+
1490
+ &mdash;
1491
+ <div class='inline'>
1492
+ <p>self</p>
1493
+ </div>
1494
+
1495
+ </li>
1496
+
1497
+ </ul>
1498
+
1499
+ </div><table class="source_code">
1500
+ <tr>
1501
+ <td>
1502
+ <pre class="lines">
1503
+
1504
+
1505
+ 119
1506
+ 120
1507
+ 121
1508
+ 122
1509
+ 123</pre>
1510
+ </td>
1511
+ <td>
1512
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 119</span>
1513
+
1514
+ <span class='kw'>def</span> <span class='id identifier rubyid_reset'>reset</span>
1515
+ <span class='id identifier rubyid__register_observer'>_register_observer</span>
1516
+ <span class='ivar'>@changed_properties</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1517
+ <span class='kw'>self</span>
1518
+ <span class='kw'>end</span></pre>
1519
+ </td>
1520
+ </tr>
1521
+ </table>
1522
+ </div>
1523
+
1524
+ <div class="method_details ">
1525
+ <h3 class="signature " id="resource_base_uri-instance_method">
1526
+
1527
+ #<strong>resource_base_uri</strong> &#x21d2; <tt>String</tt>
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+ </h3><div class="docstring">
1534
+ <div class="discussion">
1535
+
1536
+ <p>get the resource base uri that is used for api calls, used internally</p>
1537
+
1538
+
1539
+ </div>
1540
+ </div>
1541
+ <div class="tags">
1542
+
1543
+ <p class="tag_title">Returns:</p>
1544
+ <ul class="return">
1545
+
1546
+ <li>
1547
+
1548
+
1549
+ <span class='type'>(<tt>String</tt>)</span>
1550
+
1551
+
1552
+
1553
+ </li>
1554
+
1555
+ </ul>
1556
+
1557
+ </div><table class="source_code">
1558
+ <tr>
1559
+ <td>
1560
+ <pre class="lines">
1561
+
1562
+
1563
+ 128
1564
+ 129
1565
+ 130</pre>
1566
+ </td>
1567
+ <td>
1568
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 128</span>
1569
+
1570
+ <span class='kw'>def</span> <span class='id identifier rubyid_resource_base_uri'>resource_base_uri</span>
1571
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_resource_base_uri'>resource_base_uri</span>
1572
+ <span class='kw'>end</span></pre>
1573
+ </td>
1574
+ </tr>
1575
+ </table>
1576
+ </div>
1577
+
1578
+ <div class="method_details ">
1579
+ <h3 class="signature " id="save-instance_method">
1580
+
1581
+ #<strong>save</strong> &#x21d2; <tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+ </h3><div class="docstring">
1588
+ <div class="discussion">
1589
+
1590
+ <p>save record to db, success is assumed</p>
1591
+
1592
+
1593
+ </div>
1594
+ </div>
1595
+ <div class="tags">
1596
+
1597
+ <p class="tag_title">Returns:</p>
1598
+ <ul class="return">
1599
+
1600
+ <li>
1601
+
1602
+
1603
+ <span class='type'>(<tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>)</span>
1604
+
1605
+
1606
+
1607
+ &mdash;
1608
+ <div class='inline'>
1609
+ <p>self</p>
1610
+ </div>
1611
+
1612
+ </li>
1613
+
1614
+ </ul>
1615
+
1616
+ </div><table class="source_code">
1617
+ <tr>
1618
+ <td>
1619
+ <pre class="lines">
1620
+
1621
+
1622
+ 135
1623
+ 136
1624
+ 137
1625
+ 138
1626
+ 139</pre>
1627
+ </td>
1628
+ <td>
1629
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 135</span>
1630
+
1631
+ <span class='kw'>def</span> <span class='id identifier rubyid_save'>save</span>
1632
+ <span class='id identifier rubyid__register_observer'>_register_observer</span>
1633
+ <span class='id identifier rubyid_promise_save'>promise_save</span>
1634
+ <span class='kw'>self</span>
1635
+ <span class='kw'>end</span></pre>
1636
+ </td>
1637
+ </tr>
1638
+ </table>
1639
+ </div>
1640
+
1641
+ <div class="method_details ">
1642
+ <h3 class="signature " id="to_hash-instance_method">
1643
+
1644
+ #<strong>to_hash</strong> &#x21d2; <tt>Hash</tt>
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+ </h3><div class="docstring">
1651
+ <div class="discussion">
1652
+
1653
+ <p>return record properties as Hash</p>
1654
+
1655
+
1656
+ </div>
1657
+ </div>
1658
+ <div class="tags">
1659
+
1660
+ <p class="tag_title">Returns:</p>
1661
+ <ul class="return">
1662
+
1663
+ <li>
1664
+
1665
+
1666
+ <span class='type'>(<tt>Hash</tt>)</span>
1667
+
1668
+
1669
+
1670
+ </li>
1671
+
1672
+ </ul>
1673
+
1674
+ </div><table class="source_code">
1675
+ <tr>
1676
+ <td>
1677
+ <pre class="lines">
1678
+
1679
+
1680
+ 144
1681
+ 145
1682
+ 146
1683
+ 147
1684
+ 148
1685
+ 149</pre>
1686
+ </td>
1687
+ <td>
1688
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 144</span>
1689
+
1690
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_hash'>to_hash</span>
1691
+ <span class='id identifier rubyid__register_observer'>_register_observer</span>
1692
+ <span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='ivar'>@properties</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span>
1693
+ <span class='id identifier rubyid_res'>res</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='ivar'>@changed_properties</span><span class='rparen'>)</span>
1694
+ <span class='id identifier rubyid_res'>res</span>
1695
+ <span class='kw'>end</span></pre>
1696
+ </td>
1697
+ </tr>
1698
+ </table>
1699
+ </div>
1700
+
1701
+ <div class="method_details ">
1702
+ <h3 class="signature " id="to_s-instance_method">
1703
+
1704
+ #<strong>to_s</strong> &#x21d2; <tt>String</tt>
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+ </h3><div class="docstring">
1711
+ <div class="discussion">
1712
+
1713
+ <p>return record properties as String</p>
1714
+
1715
+
1716
+ </div>
1717
+ </div>
1718
+ <div class="tags">
1719
+
1720
+ <p class="tag_title">Returns:</p>
1721
+ <ul class="return">
1722
+
1723
+ <li>
1724
+
1725
+
1726
+ <span class='type'>(<tt>String</tt>)</span>
1727
+
1728
+
1729
+
1730
+ </li>
1731
+
1732
+ </ul>
1733
+
1734
+ </div><table class="source_code">
1735
+ <tr>
1736
+ <td>
1737
+ <pre class="lines">
1738
+
1739
+
1740
+ 154
1741
+ 155
1742
+ 156
1743
+ 157</pre>
1744
+ </td>
1745
+ <td>
1746
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 154</span>
1747
+
1748
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span>
1749
+ <span class='id identifier rubyid__register_observer'>_register_observer</span>
1750
+ <span class='ivar'>@properties</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1751
+ <span class='kw'>end</span></pre>
1752
+ </td>
1753
+ </tr>
1754
+ </table>
1755
+ </div>
1756
+
1757
+ <div class="method_details ">
1758
+ <h3 class="signature " id="unlink-instance_method">
1759
+
1760
+ #<strong>unlink</strong>(other_record) &#x21d2; <tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+ </h3><div class="docstring">
1767
+ <div class="discussion">
1768
+
1769
+ <p>unlink the two records using a relation determined by other_record.class,
1770
+ success is assumed</p>
1771
+
1772
+
1773
+ </div>
1774
+ </div>
1775
+ <div class="tags">
1776
+
1777
+ <p class="tag_title">Returns:</p>
1778
+ <ul class="return">
1779
+
1780
+ <li>
1781
+
1782
+
1783
+ <span class='type'>(<tt><span class='object_link'><a href="../HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></tt>)</span>
1784
+
1785
+
1786
+
1787
+ &mdash;
1788
+ <div class='inline'>
1789
+ <p>self</p>
1790
+ </div>
1791
+
1792
+ </li>
1793
+
1794
+ </ul>
1795
+
1796
+ </div><table class="source_code">
1797
+ <tr>
1798
+ <td>
1799
+ <pre class="lines">
1800
+
1801
+
1802
+ 162
1803
+ 163
1804
+ 164
1805
+ 165
1806
+ 166</pre>
1807
+ </td>
1808
+ <td>
1809
+ <pre class="code"><span class="info file"># File 'lib/hyper_record/client_instance_methods.rb', line 162</span>
1810
+
1811
+ <span class='kw'>def</span> <span class='id identifier rubyid_unlink'>unlink</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</span><span class='rparen'>)</span>
1812
+ <span class='id identifier rubyid__register_observer'>_register_observer</span>
1813
+ <span class='id identifier rubyid_promise_unlink'>promise_unlink</span><span class='lparen'>(</span><span class='id identifier rubyid_other_record'>other_record</span><span class='rparen'>)</span>
1814
+ <span class='kw'>self</span>
1815
+ <span class='kw'>end</span></pre>
1816
+ </td>
1817
+ </tr>
1818
+ </table>
1819
+ </div>
1820
+
1821
+ </div>
1822
+
1823
+ </div>
1824
+
1825
+ <div id="footer">
1826
+ Generated on Tue Jun 5 23:13:52 2018 by
1827
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1828
+ 0.9.13 (ruby-2.5.1).
1829
+ </div>
1830
+
1831
+ </div>
1832
+ </body>
1833
+ </html>