jsonapi_compliable 0.9.0 → 0.9.1

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +8 -0
  3. data/docs/Jsonapi.html +1 -1
  4. data/docs/Jsonapi/ResourceGenerator.html +13 -123
  5. data/docs/JsonapiCompliable.html +2 -2
  6. data/docs/JsonapiCompliable/Adapters.html +1 -1
  7. data/docs/JsonapiCompliable/Adapters/Abstract.html +193 -17
  8. data/docs/JsonapiCompliable/Adapters/ActiveRecord.html +106 -20
  9. data/docs/JsonapiCompliable/Adapters/ActiveRecordSideloading.html +4 -4
  10. data/docs/JsonapiCompliable/Adapters/Null.html +2 -2
  11. data/docs/JsonapiCompliable/Base.html +2 -2
  12. data/docs/JsonapiCompliable/Deserializer.html +25 -23
  13. data/docs/JsonapiCompliable/Errors.html +1 -1
  14. data/docs/JsonapiCompliable/Errors/BadFilter.html +1 -1
  15. data/docs/JsonapiCompliable/Errors/StatNotFound.html +1 -1
  16. data/docs/JsonapiCompliable/Errors/UnsupportedPageSize.html +1 -1
  17. data/docs/JsonapiCompliable/Errors/ValidationError.html +1 -1
  18. data/docs/JsonapiCompliable/Extensions.html +1 -1
  19. data/docs/JsonapiCompliable/Extensions/BooleanAttribute.html +1 -1
  20. data/docs/JsonapiCompliable/Extensions/BooleanAttribute/ClassMethods.html +1 -1
  21. data/docs/JsonapiCompliable/Extensions/ExtraAttribute.html +1 -1
  22. data/docs/JsonapiCompliable/Extensions/ExtraAttribute/ClassMethods.html +1 -1
  23. data/docs/JsonapiCompliable/Query.html +1 -1
  24. data/docs/JsonapiCompliable/Rails.html +1 -1
  25. data/docs/JsonapiCompliable/Resource.html +261 -109
  26. data/docs/JsonapiCompliable/Scope.html +1 -1
  27. data/docs/JsonapiCompliable/Scoping.html +1 -1
  28. data/docs/JsonapiCompliable/Scoping/Base.html +1 -1
  29. data/docs/JsonapiCompliable/Scoping/DefaultFilter.html +1 -1
  30. data/docs/JsonapiCompliable/Scoping/ExtraFields.html +1 -1
  31. data/docs/JsonapiCompliable/Scoping/Filter.html +1 -1
  32. data/docs/JsonapiCompliable/Scoping/Filterable.html +1 -1
  33. data/docs/JsonapiCompliable/Scoping/Paginate.html +1 -1
  34. data/docs/JsonapiCompliable/Scoping/Sort.html +1 -1
  35. data/docs/JsonapiCompliable/SerializableTempId.html +1 -1
  36. data/docs/JsonapiCompliable/Sideload.html +691 -124
  37. data/docs/JsonapiCompliable/Stats.html +1 -1
  38. data/docs/JsonapiCompliable/Stats/DSL.html +1 -1
  39. data/docs/JsonapiCompliable/Stats/Payload.html +1 -1
  40. data/docs/JsonapiCompliable/Util.html +1 -1
  41. data/docs/JsonapiCompliable/Util/FieldParams.html +1 -1
  42. data/docs/JsonapiCompliable/Util/Hash.html +1 -1
  43. data/docs/JsonapiCompliable/Util/IncludeParams.html +1 -1
  44. data/docs/JsonapiCompliable/Util/Persistence.html +22 -12
  45. data/docs/JsonapiCompliable/Util/RelationshipPayload.html +1 -1
  46. data/docs/JsonapiCompliable/Util/RenderOptions.html +1 -1
  47. data/docs/JsonapiCompliable/Util/ValidationResponse.html +1 -1
  48. data/docs/_index.html +1 -1
  49. data/docs/file.README.html +11 -14
  50. data/docs/index.html +11 -14
  51. data/docs/method_list.html +368 -280
  52. data/docs/top-level-namespace.html +1 -1
  53. data/lib/jsonapi_compliable/sideload.rb +38 -17
  54. data/lib/jsonapi_compliable/util/relationship_payload.rb +1 -0
  55. data/lib/jsonapi_compliable/version.rb +1 -1
  56. metadata +3 -3
@@ -693,7 +693,7 @@ sideload</p>
693
693
  </div>
694
694
 
695
695
  <div id="footer">
696
- Generated on Wed Jun 7 10:15:09 2017 by
696
+ Generated on Thu Sep 28 17:28:10 2017 by
697
697
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
698
698
  0.9.9 (ruby-2.3.0).
699
699
  </div>
@@ -107,7 +107,7 @@
107
107
  </div>
108
108
 
109
109
  <div id="footer">
110
- Generated on Wed Jun 7 10:15:09 2017 by
110
+ Generated on Thu Sep 28 17:28:10 2017 by
111
111
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
112
112
  0.9.9 (ruby-2.3.0).
113
113
  </div>
@@ -833,7 +833,7 @@ a default in certain contexts.</p>
833
833
  </div>
834
834
 
835
835
  <div id="footer">
836
- Generated on Wed Jun 7 10:15:10 2017 by
836
+ Generated on Thu Sep 28 17:28:11 2017 by
837
837
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
838
838
  0.9.9 (ruby-2.3.0).
839
839
  </div>
@@ -308,7 +308,7 @@ filter, and apply the default proc unless an explicit override is requested</p>
308
308
  </div>
309
309
 
310
310
  <div id="footer">
311
- Generated on Wed Jun 7 10:15:11 2017 by
311
+ Generated on Thu Sep 28 17:28:11 2017 by
312
312
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
313
313
  0.9.9 (ruby-2.3.0).
314
314
  </div>
@@ -291,7 +291,7 @@ for that field, run it. Otherwise, do nothing.</p>
291
291
  </div>
292
292
 
293
293
  <div id="footer">
294
- Generated on Wed Jun 7 10:15:11 2017 by
294
+ Generated on Thu Sep 28 17:28:11 2017 by
295
295
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
296
296
  0.9.9 (ruby-2.3.0).
297
297
  </div>
@@ -303,7 +303,7 @@ aliases. If valid, call either the default or custom filtering logic.</p>
303
303
  </div>
304
304
 
305
305
  <div id="footer">
306
- Generated on Wed Jun 7 10:15:10 2017 by
306
+ Generated on Thu Sep 28 17:28:11 2017 by
307
307
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
308
308
  0.9.9 (ruby-2.3.0).
309
309
  </div>
@@ -354,7 +354,7 @@
354
354
  </div>
355
355
 
356
356
  <div id="footer">
357
- Generated on Wed Jun 7 10:15:09 2017 by
357
+ Generated on Thu Sep 28 17:28:10 2017 by
358
358
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
359
359
  0.9.9 (ruby-2.3.0).
360
360
  </div>
@@ -603,7 +603,7 @@ explicitly specified in the request.</p>
603
603
  </div>
604
604
 
605
605
  <div id="footer">
606
- Generated on Wed Jun 7 10:15:10 2017 by
606
+ Generated on Thu Sep 28 17:28:11 2017 by
607
607
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
608
608
  0.9.9 (ruby-2.3.0).
609
609
  </div>
@@ -444,7 +444,7 @@ proc:</p>
444
444
  </div>
445
445
 
446
446
  <div id="footer">
447
- Generated on Wed Jun 7 10:15:10 2017 by
447
+ Generated on Thu Sep 28 17:28:11 2017 by
448
448
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
449
449
  0.9.9 (ruby-2.3.0).
450
450
  </div>
@@ -206,7 +206,7 @@ reference it directly.</p>
206
206
  </div>
207
207
 
208
208
  <div id="footer">
209
- Generated on Wed Jun 7 10:15:09 2017 by
209
+ Generated on Thu Sep 28 17:28:10 2017 by
210
210
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
211
211
  0.9.9 (ruby-2.3.0).
212
212
  </div>
@@ -100,6 +100,16 @@
100
100
  </div>
101
101
 
102
102
 
103
+ <h2>Constant Summary</h2>
104
+ <dl class="constants">
105
+
106
+ <dt id="HOOK_ACTIONS-constant" class="">HOOK_ACTIONS =
107
+
108
+ </dt>
109
+ <dd><pre class="code"><span class='lbracket'>[</span><span class='symbol'>:save</span><span class='comma'>,</span> <span class='symbol'>:create</span><span class='comma'>,</span> <span class='symbol'>:update</span><span class='comma'>,</span> <span class='symbol'>:destroy</span><span class='comma'>,</span> <span class='symbol'>:disassociate</span><span class='rbracket'>]</span></pre></dd>
110
+
111
+ </dl>
112
+
103
113
 
104
114
 
105
115
 
@@ -462,6 +472,63 @@ key.</p>
462
472
 
463
473
 
464
474
 
475
+ <h2>
476
+ Class Method Summary
477
+ <small><a href="#" class="summary_toggle">collapse</a></small>
478
+ </h2>
479
+
480
+ <ul class="summary">
481
+
482
+ <li class="public ">
483
+ <span class="summary_signature">
484
+
485
+ <a href="#max_depth-class_method" title="max_depth (class method)">.<strong>max_depth</strong> &#x21d2; Object </a>
486
+
487
+
488
+
489
+ </span>
490
+
491
+
492
+
493
+
494
+
495
+
496
+ <span class="private note title">private</span>
497
+
498
+
499
+ <span class="summary_desc"><div class='inline'></div></span>
500
+
501
+ </li>
502
+
503
+
504
+ <li class="public ">
505
+ <span class="summary_signature">
506
+
507
+ <a href="#max_depth=-class_method" title="max_depth= (class method)">.<strong>max_depth=</strong>(val) &#x21d2; Object </a>
508
+
509
+
510
+
511
+ </span>
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+ <span class="summary_desc"><div class='inline'>
522
+ <p>Set maximum levels of sideload recursion /authors?comments.authors would be
523
+ one level /authors?comments.authors.comments.authors would be two levels
524
+ etc.</p>
525
+ </div></span>
526
+
527
+ </li>
528
+
529
+
530
+ </ul>
531
+
465
532
  <h2>
466
533
  Instance Method Summary
467
534
  <small><a href="#" class="summary_toggle">collapse</a></small>
@@ -472,6 +539,52 @@ key.</p>
472
539
  <li class="public ">
473
540
  <span class="summary_signature">
474
541
 
542
+ <a href="#after_save-instance_method" title="#after_save (instance method)">#<strong>after_save</strong>(only: [], except: [], &amp;blk) &#x21d2; Object </a>
543
+
544
+
545
+
546
+ </span>
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+ <span class="summary_desc"><div class='inline'>
557
+ <p>Configure post-processing hooks.</p>
558
+ </div></span>
559
+
560
+ </li>
561
+
562
+
563
+ <li class="public ">
564
+ <span class="summary_signature">
565
+
566
+ <a href="#all_sideloads-instance_method" title="#all_sideloads (instance method)">#<strong>all_sideloads</strong> &#x21d2; Object </a>
567
+
568
+
569
+
570
+ </span>
571
+
572
+
573
+
574
+
575
+
576
+
577
+ <span class="private note title">private</span>
578
+
579
+
580
+ <span class="summary_desc"><div class='inline'></div></span>
581
+
582
+ </li>
583
+
584
+
585
+ <li class="public ">
586
+ <span class="summary_signature">
587
+
475
588
  <a href="#allow_sideload-instance_method" title="#allow_sideload (instance method)">#<strong>allow_sideload</strong>(name, opts = {}, &amp;blk) &#x21d2; Object </a>
476
589
 
477
590
 
@@ -531,13 +644,59 @@ key.</p>
531
644
 
532
645
 
533
646
 
534
-
647
+ <span class="private note title">private</span>
535
648
 
536
649
 
537
650
  <span class="summary_desc"><div class='inline'>
538
651
  <p>Configure how to associate parent and child records.</p>
539
652
  </div></span>
540
653
 
654
+ </li>
655
+
656
+
657
+ <li class="public ">
658
+ <span class="summary_signature">
659
+
660
+ <a href="#disassociate-instance_method" title="#disassociate (instance method)">#<strong>disassociate</strong>(parent, child) &#x21d2; Object </a>
661
+
662
+
663
+
664
+ </span>
665
+
666
+
667
+
668
+
669
+
670
+
671
+ <span class="private note title">private</span>
672
+
673
+
674
+ <span class="summary_desc"><div class='inline'>
675
+ <p>Configure how to disassociate parent and child records.</p>
676
+ </div></span>
677
+
678
+ </li>
679
+
680
+
681
+ <li class="public ">
682
+ <span class="summary_signature">
683
+
684
+ <a href="#fire_hooks!-instance_method" title="#fire_hooks! (instance method)">#<strong>fire_hooks!</strong>(parent, objects, method) &#x21d2; Object </a>
685
+
686
+
687
+
688
+ </span>
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+ <span class="summary_desc"><div class='inline'></div></span>
699
+
541
700
  </li>
542
701
 
543
702
 
@@ -562,6 +721,30 @@ key.</p>
562
721
  <p>Define an attribute that groups the parent records.</p>
563
722
  </div></span>
564
723
 
724
+ </li>
725
+
726
+
727
+ <li class="public ">
728
+ <span class="summary_signature">
729
+
730
+ <a href="#hooks-instance_method" title="#hooks (instance method)">#<strong>hooks</strong> &#x21d2; Object </a>
731
+
732
+
733
+
734
+ </span>
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+ <span class="summary_desc"><div class='inline'>
745
+ <p>Get the hooks the user has configured.</p>
746
+ </div></span>
747
+
565
748
  </li>
566
749
 
567
750
 
@@ -738,7 +921,7 @@ will be further chained with filtering/sorting/etc.</p>
738
921
  <li class="public ">
739
922
  <span class="summary_signature">
740
923
 
741
- <a href="#to_hash-instance_method" title="#to_hash (instance method)">#<strong>to_hash</strong>(processed = []) &#x21d2; Hash </a>
924
+ <a href="#to_hash-instance_method" title="#to_hash (instance method)">#<strong>to_hash</strong>(depth_chain = [], parent = nil) &#x21d2; Hash </a>
742
925
 
743
926
 
744
927
 
@@ -1561,12 +1744,251 @@ key.</p>
1561
1744
  </div>
1562
1745
 
1563
1746
 
1747
+ <div id="class_method_details" class="method_details_list">
1748
+ <h2>Class Method Details</h2>
1749
+
1750
+
1751
+ <div class="method_details first">
1752
+ <h3 class="signature first" id="max_depth-class_method">
1753
+
1754
+ .<strong>max_depth</strong> &#x21d2; <tt>Object</tt>
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+ </h3><div class="docstring">
1761
+ <div class="discussion">
1762
+ <p class="note private">
1763
+ <strong>This method is part of a private API.</strong>
1764
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1765
+ </p>
1766
+
1767
+
1768
+ </div>
1769
+ </div>
1770
+ <div class="tags">
1771
+
1772
+
1773
+ </div><table class="source_code">
1774
+ <tr>
1775
+ <td>
1776
+ <pre class="lines">
1777
+
1778
+
1779
+ 47
1780
+ 48
1781
+ 49</pre>
1782
+ </td>
1783
+ <td>
1784
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 47</span>
1785
+
1786
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_max_depth'>max_depth</span>
1787
+ <span class='ivar'>@max_depth</span> <span class='op'>||</span> <span class='int'>2</span>
1788
+ <span class='kw'>end</span></pre>
1789
+ </td>
1790
+ </tr>
1791
+ </table>
1792
+ </div>
1793
+
1794
+ <div class="method_details ">
1795
+ <h3 class="signature " id="max_depth=-class_method">
1796
+
1797
+ .<strong>max_depth=</strong>(val) &#x21d2; <tt>Object</tt>
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+ </h3><div class="docstring">
1804
+ <div class="discussion">
1805
+
1806
+ <p>Set maximum levels of sideload recursion /authors?comments.authors would be
1807
+ one level /authors?comments.authors.comments.authors would be two levels
1808
+ etc</p>
1809
+
1810
+ <p>Default max depth is 2</p>
1811
+
1812
+
1813
+ </div>
1814
+ </div>
1815
+ <div class="tags">
1816
+
1817
+
1818
+ </div><table class="source_code">
1819
+ <tr>
1820
+ <td>
1821
+ <pre class="lines">
1822
+
1823
+
1824
+ 57
1825
+ 58
1826
+ 59</pre>
1827
+ </td>
1828
+ <td>
1829
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 57</span>
1830
+
1831
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_max_depth='>max_depth=</span><span class='lparen'>(</span><span class='id identifier rubyid_val'>val</span><span class='rparen'>)</span>
1832
+ <span class='ivar'>@max_depth</span> <span class='op'>=</span> <span class='id identifier rubyid_val'>val</span>
1833
+ <span class='kw'>end</span></pre>
1834
+ </td>
1835
+ </tr>
1836
+ </table>
1837
+ </div>
1838
+
1839
+ </div>
1840
+
1564
1841
  <div id="instance_method_details" class="method_details_list">
1565
1842
  <h2>Instance Method Details</h2>
1566
1843
 
1567
1844
 
1568
1845
  <div class="method_details first">
1569
- <h3 class="signature first" id="allow_sideload-instance_method">
1846
+ <h3 class="signature first" id="after_save-instance_method">
1847
+
1848
+ #<strong>after_save</strong>(only: [], except: [], &amp;blk) &#x21d2; <tt>Object</tt>
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+ </h3><div class="docstring">
1855
+ <div class="discussion">
1856
+
1857
+ <p>Configure post-processing hooks</p>
1858
+
1859
+ <p>In particular, helpful for bulk operations. “after_save” will fire for any
1860
+ persistence method - <code>:create</code>, <code>:update</code>,
1861
+ <code>:destroy</code>, <code>:disassociate</code>. Use “only” and “except”
1862
+ keyword arguments to fire only for a specific persistence method.</p>
1863
+
1864
+
1865
+ </div>
1866
+ </div>
1867
+ <div class="tags">
1868
+
1869
+ <div class="examples">
1870
+ <p class="tag_title">Examples:</p>
1871
+
1872
+
1873
+ <p class="example_title"><div class='inline'>
1874
+ <p>Bulk Notify Users on Invite</p>
1875
+ </div></p>
1876
+
1877
+ <pre class="example code"><code><span class='kw'>class</span> <span class='const'>ProjectResource</span> <span class='op'>&lt;</span> <span class='const'>ApplicationResource</span>
1878
+ <span class='comment'># ... code ...
1879
+ </span> <span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:users</span><span class='comma'>,</span> <span class='label'>resource:</span> <span class='const'>UserResource</span> <span class='kw'>do</span>
1880
+ <span class='comment'># scope {}
1881
+ </span> <span class='comment'># assign {}
1882
+ </span> <span class='id identifier rubyid_after_save'>after_save</span> <span class='label'>only:</span> <span class='lbracket'>[</span><span class='symbol'>:create</span><span class='rbracket'>]</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_project'>project</span><span class='comma'>,</span> <span class='id identifier rubyid_users'>users</span><span class='op'>|</span>
1883
+ <span class='const'>UserMailer</span><span class='period'>.</span><span class='id identifier rubyid_invite'>invite</span><span class='lparen'>(</span><span class='id identifier rubyid_project'>project</span><span class='comma'>,</span> <span class='id identifier rubyid_users'>users</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_deliver_later'>deliver_later</span>
1884
+ <span class='kw'>end</span>
1885
+ <span class='kw'>end</span>
1886
+ <span class='kw'>end</span></code></pre>
1887
+
1888
+ </div>
1889
+
1890
+
1891
+ <p class="tag_title">See Also:</p>
1892
+ <ul class="see">
1893
+
1894
+ <li><span class='object_link'><a href="#hooks-instance_method" title="JsonapiCompliable::Sideload#hooks (method)">#hooks</a></span></li>
1895
+
1896
+ <li><span class='object_link'><a href="Util/Persistence.html" title="JsonapiCompliable::Util::Persistence (class)">Util::Persistence</a></span></li>
1897
+
1898
+ </ul>
1899
+
1900
+ </div><table class="source_code">
1901
+ <tr>
1902
+ <td>
1903
+ <pre class="lines">
1904
+
1905
+
1906
+ 232
1907
+ 233
1908
+ 234
1909
+ 235
1910
+ 236
1911
+ 237
1912
+ 238
1913
+ 239</pre>
1914
+ </td>
1915
+ <td>
1916
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 232</span>
1917
+
1918
+ <span class='kw'>def</span> <span class='id identifier rubyid_after_save'>after_save</span><span class='lparen'>(</span><span class='label'>only:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>except:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span>
1919
+ <span class='id identifier rubyid_actions'>actions</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="#HOOK_ACTIONS-constant" title="JsonapiCompliable::Sideload::HOOK_ACTIONS (constant)">HOOK_ACTIONS</a></span></span> <span class='op'>-</span> <span class='id identifier rubyid_except'>except</span>
1920
+ <span class='id identifier rubyid_actions'>actions</span> <span class='op'>=</span> <span class='id identifier rubyid_only'>only</span> <span class='op'>&amp;</span> <span class='id identifier rubyid_actions'>actions</span>
1921
+ <span class='id identifier rubyid_actions'>actions</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:save</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_only'>only</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_except'>except</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1922
+ <span class='id identifier rubyid_actions'>actions</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_a'>a</span><span class='op'>|</span>
1923
+ <span class='id identifier rubyid_hooks'>hooks</span><span class='lbracket'>[</span><span class='symbol'>:after_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_a'>a</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_blk'>blk</span>
1924
+ <span class='kw'>end</span>
1925
+ <span class='kw'>end</span></pre>
1926
+ </td>
1927
+ </tr>
1928
+ </table>
1929
+ </div>
1930
+
1931
+ <div class="method_details ">
1932
+ <h3 class="signature " id="all_sideloads-instance_method">
1933
+
1934
+ #<strong>all_sideloads</strong> &#x21d2; <tt>Object</tt>
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+ </h3><div class="docstring">
1941
+ <div class="discussion">
1942
+ <p class="note private">
1943
+ <strong>This method is part of a private API.</strong>
1944
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1945
+ </p>
1946
+
1947
+
1948
+ </div>
1949
+ </div>
1950
+ <div class="tags">
1951
+
1952
+
1953
+ </div><table class="source_code">
1954
+ <tr>
1955
+ <td>
1956
+ <pre class="lines">
1957
+
1958
+
1959
+ 350
1960
+ 351
1961
+ 352
1962
+ 353
1963
+ 354
1964
+ 355
1965
+ 356
1966
+ 357
1967
+ 358
1968
+ 359
1969
+ 360</pre>
1970
+ </td>
1971
+ <td>
1972
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 350</span>
1973
+
1974
+ <span class='kw'>def</span> <span class='id identifier rubyid_all_sideloads'>all_sideloads</span>
1975
+ <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_all'>all</span><span class='op'>|</span>
1976
+ <span class='kw'>if</span> <span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
1977
+ <span class='id identifier rubyid_polymorphic_groups'>polymorphic_groups</span><span class='period'>.</span><span class='id identifier rubyid_each_pair'>each_pair</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_sl'>sl</span><span class='op'>|</span>
1978
+ <span class='id identifier rubyid_all'>all</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_sl'>sl</span><span class='period'>.</span><span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_sideloading'>sideloading</span><span class='period'>.</span><span class='id identifier rubyid_all_sideloads'>all_sideloads</span><span class='rparen'>)</span>
1979
+ <span class='kw'>end</span>
1980
+ <span class='kw'>else</span>
1981
+ <span class='id identifier rubyid_all'>all</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='ivar'>@sideloads</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_sideloading'>sideloading</span><span class='period'>.</span><span class='id identifier rubyid_sideloads'>sideloads</span><span class='rparen'>)</span><span class='rparen'>)</span>
1982
+ <span class='kw'>end</span>
1983
+ <span class='kw'>end</span>
1984
+ <span class='kw'>end</span></pre>
1985
+ </td>
1986
+ </tr>
1987
+ </table>
1988
+ </div>
1989
+
1990
+ <div class="method_details ">
1991
+ <h3 class="signature " id="allow_sideload-instance_method">
1570
1992
 
1571
1993
  #<strong>allow_sideload</strong>(name, opts = {}, &amp;blk) &#x21d2; <tt>Object</tt>
1572
1994
 
@@ -1661,19 +2083,19 @@ directly</p>
1661
2083
  <pre class="lines">
1662
2084
 
1663
2085
 
1664
- 270
1665
- 271
1666
- 272
1667
- 273
1668
- 274
1669
- 275
1670
- 276
1671
- 277
1672
- 278
1673
- 279</pre>
2086
+ 330
2087
+ 331
2088
+ 332
2089
+ 333
2090
+ 334
2091
+ 335
2092
+ 336
2093
+ 337
2094
+ 338
2095
+ 339</pre>
1674
2096
  </td>
1675
2097
  <td>
1676
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 270</span>
2098
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 330</span>
1677
2099
 
1678
2100
  <span class='kw'>def</span> <span class='id identifier rubyid_allow_sideload'>allow_sideload</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span>
1679
2101
  <span class='id identifier rubyid_sideload'>sideload</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="" title="JsonapiCompliable::Sideload (class)">Sideload</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="JsonapiCompliable::Sideload#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
@@ -1804,12 +2226,12 @@ in your resource directly.</p>
1804
2226
  <pre class="lines">
1805
2227
 
1806
2228
 
1807
- 168
1808
- 169
1809
- 170</pre>
2229
+ 183
2230
+ 184
2231
+ 185</pre>
1810
2232
  </td>
1811
2233
  <td>
1812
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 168</span>
2234
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 183</span>
1813
2235
 
1814
2236
  <span class='kw'>def</span> <span class='id identifier rubyid_assign'>assign</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span>
1815
2237
  <span class='ivar'>@assign_proc</span> <span class='op'>=</span> <span class='id identifier rubyid_blk'>blk</span>
@@ -1830,32 +2252,75 @@ in your resource directly.</p>
1830
2252
 
1831
2253
  </h3><div class="docstring">
1832
2254
  <div class="discussion">
1833
-
1834
- <p>Configure how to associate parent and child records.</p>
2255
+ <p class="note private">
2256
+ <strong>This method is part of a private API.</strong>
2257
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
2258
+ </p>
2259
+
2260
+ <p>Configure how to associate parent and child records. Delegates to #resource</p>
1835
2261
 
1836
2262
 
1837
2263
  </div>
1838
2264
  </div>
1839
2265
  <div class="tags">
1840
2266
 
1841
- <div class="examples">
1842
- <p class="tag_title">Examples:</p>
2267
+
2268
+ <p class="tag_title">See Also:</p>
2269
+ <ul class="see">
1843
2270
 
1844
-
1845
- <p class="example_title"><div class='inline'>
1846
- <p>Basic attr_accessor</p>
1847
- </div></p>
1848
-
1849
- <pre class="example code"><code><span class='kw'>def</span> <span class='id identifier rubyid_associate'>associate</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_child'>child</span><span class='rparen'>)</span>
1850
- <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:has_many</span>
1851
- <span class='id identifier rubyid_parent'>parent</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:#{</span><span class='id identifier rubyid_name'>name</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_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_child'>child</span><span class='rparen'>)</span>
1852
- <span class='kw'>else</span>
1853
- <span class='id identifier rubyid_child'>child</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>=</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_parent'>parent</span><span class='rparen'>)</span>
1854
- <span class='kw'>end</span>
1855
- <span class='kw'>end</span></code></pre>
2271
+ <li><span class='object_link'><a href="#name-instance_method" title="JsonapiCompliable::Sideload#name (method)">#name</a></span></li>
1856
2272
 
1857
- </div>
2273
+ <li><span class='object_link'><a href="#type-instance_method" title="JsonapiCompliable::Sideload#type (method)">#type</a></span></li>
2274
+
2275
+ </ul>
2276
+
2277
+ </div><table class="source_code">
2278
+ <tr>
2279
+ <td>
2280
+ <pre class="lines">
2281
+
2282
+
2283
+ 193
2284
+ 194
2285
+ 195
2286
+ 196</pre>
2287
+ </td>
2288
+ <td>
2289
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 193</span>
2290
+
2291
+ <span class='kw'>def</span> <span class='id identifier rubyid_associate'>associate</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_child'>child</span><span class='rparen'>)</span>
2292
+ <span class='id identifier rubyid_association_name'>association_name</span> <span class='op'>=</span> <span class='ivar'>@parent</span> <span class='op'>?</span> <span class='ivar'>@parent</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>:</span> <span class='id identifier rubyid_name'>name</span>
2293
+ <span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_associate'>associate</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_child'>child</span><span class='comma'>,</span> <span class='id identifier rubyid_association_name'>association_name</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
2294
+ <span class='kw'>end</span></pre>
2295
+ </td>
2296
+ </tr>
2297
+ </table>
2298
+ </div>
2299
+
2300
+ <div class="method_details ">
2301
+ <h3 class="signature " id="disassociate-instance_method">
2302
+
2303
+ #<strong>disassociate</strong>(parent, child) &#x21d2; <tt>Object</tt>
2304
+
1858
2305
 
2306
+
2307
+
2308
+
2309
+ </h3><div class="docstring">
2310
+ <div class="discussion">
2311
+ <p class="note private">
2312
+ <strong>This method is part of a private API.</strong>
2313
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
2314
+ </p>
2315
+
2316
+ <p>Configure how to disassociate parent and child records. Delegates to
2317
+ #resource</p>
2318
+
2319
+
2320
+ </div>
2321
+ </div>
2322
+ <div class="tags">
2323
+
1859
2324
 
1860
2325
  <p class="tag_title">See Also:</p>
1861
2326
  <ul class="see">
@@ -1872,23 +2337,57 @@ in your resource directly.</p>
1872
2337
  <pre class="lines">
1873
2338
 
1874
2339
 
1875
- 185
1876
- 186
1877
- 187
1878
- 188
1879
- 189
1880
- 190
1881
- 191</pre>
2340
+ 204
2341
+ 205
2342
+ 206
2343
+ 207</pre>
1882
2344
  </td>
1883
2345
  <td>
1884
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 185</span>
2346
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 204</span>
1885
2347
 
1886
- <span class='kw'>def</span> <span class='id identifier rubyid_associate'>associate</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_child'>child</span><span class='rparen'>)</span>
2348
+ <span class='kw'>def</span> <span class='id identifier rubyid_disassociate'>disassociate</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_child'>child</span><span class='rparen'>)</span>
1887
2349
  <span class='id identifier rubyid_association_name'>association_name</span> <span class='op'>=</span> <span class='ivar'>@parent</span> <span class='op'>?</span> <span class='ivar'>@parent</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>:</span> <span class='id identifier rubyid_name'>name</span>
1888
- <span class='id identifier rubyid_resource_class'>resource_class</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:adapter</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_associate'>associate</span> <span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span>
1889
- <span class='id identifier rubyid_child'>child</span><span class='comma'>,</span>
1890
- <span class='id identifier rubyid_association_name'>association_name</span><span class='comma'>,</span>
1891
- <span class='id identifier rubyid_type'>type</span>
2350
+ <span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_disassociate'>disassociate</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_child'>child</span><span class='comma'>,</span> <span class='id identifier rubyid_association_name'>association_name</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
2351
+ <span class='kw'>end</span></pre>
2352
+ </td>
2353
+ </tr>
2354
+ </table>
2355
+ </div>
2356
+
2357
+ <div class="method_details ">
2358
+ <h3 class="signature " id="fire_hooks!-instance_method">
2359
+
2360
+ #<strong>fire_hooks!</strong>(parent, objects, method) &#x21d2; <tt>Object</tt>
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+ </h3><table class="source_code">
2367
+ <tr>
2368
+ <td>
2369
+ <pre class="lines">
2370
+
2371
+
2372
+ 408
2373
+ 409
2374
+ 410
2375
+ 411
2376
+ 412
2377
+ 413
2378
+ 414
2379
+ 415</pre>
2380
+ </td>
2381
+ <td>
2382
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 408</span>
2383
+
2384
+ <span class='kw'>def</span> <span class='id identifier rubyid_fire_hooks!'>fire_hooks!</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_objects'>objects</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
2385
+ <span class='kw'>return</span> <span class='kw'>unless</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hooks'>hooks</span>
2386
+
2387
+ <span class='id identifier rubyid_hooks'>hooks</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hooks'>hooks</span><span class='lbracket'>[</span><span class='symbol'>:after_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_method'>method</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hooks'>hooks</span><span class='lbracket'>[</span><span class='symbol'>:after_save</span><span class='rbracket'>]</span>
2388
+ <span class='id identifier rubyid_hooks'>hooks</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</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_hook'>hook</span><span class='op'>|</span>
2389
+ <span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_instance_exec'>instance_exec</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='id identifier rubyid_objects'>objects</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_hook'>hook</span><span class='rparen'>)</span>
2390
+ <span class='kw'>end</span>
1892
2391
  <span class='kw'>end</span></pre>
1893
2392
  </td>
1894
2393
  </tr>
@@ -1937,12 +2436,12 @@ and <code>parent_type</code>. We would want to group on
1937
2436
  <pre class="lines">
1938
2437
 
1939
2438
 
1940
- 203
1941
- 204
1942
- 205</pre>
2439
+ 263
2440
+ 264
2441
+ 265</pre>
1943
2442
  </td>
1944
2443
  <td>
1945
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 203</span>
2444
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 263</span>
1946
2445
 
1947
2446
  <span class='kw'>def</span> <span class='id identifier rubyid_group_by'>group_by</span><span class='lparen'>(</span><span class='id identifier rubyid_grouping_field'>grouping_field</span><span class='rparen'>)</span>
1948
2447
  <span class='ivar'>@grouping_field</span> <span class='op'>=</span> <span class='id identifier rubyid_grouping_field'>grouping_field</span>
@@ -1950,6 +2449,82 @@ and <code>parent_type</code>. We would want to group on
1950
2449
  </td>
1951
2450
  </tr>
1952
2451
  </table>
2452
+ </div>
2453
+
2454
+ <div class="method_details ">
2455
+ <h3 class="signature " id="hooks-instance_method">
2456
+
2457
+ #<strong>hooks</strong> &#x21d2; <tt>Object</tt>
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+ </h3><div class="docstring">
2464
+ <div class="discussion">
2465
+
2466
+ <p>Get the hooks the user has configured</p>
2467
+
2468
+
2469
+ </div>
2470
+ </div>
2471
+ <div class="tags">
2472
+
2473
+ <p class="tag_title">Returns:</p>
2474
+ <ul class="return">
2475
+
2476
+ <li>
2477
+
2478
+
2479
+ <span class='type'></span>
2480
+
2481
+
2482
+
2483
+
2484
+ <div class='inline'>
2485
+ <p>hash of hooks, ie <tt>{ after_create: #&lt;Proc&gt;}</tt></p>
2486
+ </div>
2487
+
2488
+ </li>
2489
+
2490
+ </ul>
2491
+
2492
+ <p class="tag_title">See Also:</p>
2493
+ <ul class="see">
2494
+
2495
+ <li><span class='object_link'><a href="#after_save-instance_method" title="JsonapiCompliable::Sideload#after_save (method)">#after_save</a></span></li>
2496
+
2497
+ </ul>
2498
+
2499
+ </div><table class="source_code">
2500
+ <tr>
2501
+ <td>
2502
+ <pre class="lines">
2503
+
2504
+
2505
+ 244
2506
+ 245
2507
+ 246
2508
+ 247
2509
+ 248
2510
+ 249
2511
+ 250
2512
+ 251</pre>
2513
+ </td>
2514
+ <td>
2515
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 244</span>
2516
+
2517
+ <span class='kw'>def</span> <span class='id identifier rubyid_hooks'>hooks</span>
2518
+ <span class='ivar'>@hooks</span> <span class='op'>||=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_h'>h</span><span class='op'>|</span>
2519
+ <span class='const'><span class='object_link'><a href="#HOOK_ACTIONS-constant" title="JsonapiCompliable::Sideload::HOOK_ACTIONS (constant)">HOOK_ACTIONS</a></span></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_a'>a</span><span class='op'>|</span>
2520
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:after_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_a'>a</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
2521
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:before_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_a'>a</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
2522
+ <span class='kw'>end</span>
2523
+ <span class='kw'>end</span>
2524
+ <span class='kw'>end</span></pre>
2525
+ </td>
2526
+ </tr>
2527
+ </table>
1953
2528
  </div>
1954
2529
 
1955
2530
  <div class="method_details ">
@@ -2039,12 +2614,12 @@ ActiveRecord:</p>
2039
2614
  <pre class="lines">
2040
2615
 
2041
2616
 
2042
- 91
2043
- 92
2044
- 93</pre>
2617
+ 106
2618
+ 107
2619
+ 108</pre>
2045
2620
  </td>
2046
2621
  <td>
2047
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 91</span>
2622
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 106</span>
2048
2623
 
2049
2624
  <span class='kw'>def</span> <span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
2050
2625
  <span class='ivar'>@polymorphic</span> <span class='op'>==</span> <span class='kw'>true</span>
@@ -2082,18 +2657,18 @@ ActiveRecord:</p>
2082
2657
  <pre class="lines">
2083
2658
 
2084
2659
 
2085
- 333
2086
- 334
2087
- 335
2088
- 336
2089
- 337</pre>
2660
+ 402
2661
+ 403
2662
+ 404
2663
+ 405
2664
+ 406</pre>
2090
2665
  </td>
2091
2666
  <td>
2092
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 333</span>
2667
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 402</span>
2093
2668
 
2094
2669
  <span class='kw'>def</span> <span class='id identifier rubyid_polymorphic_child_for_type'>polymorphic_child_for_type</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
2095
2670
  <span class='id identifier rubyid_polymorphic_groups'>polymorphic_groups</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
2096
- <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_resource_class'>resource_class</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_type'>type</span>
2671
+ <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_resource_class'>resource_class</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
2097
2672
  <span class='kw'>end</span>
2098
2673
  <span class='kw'>end</span></pre>
2099
2674
  </td>
@@ -2205,18 +2780,18 @@ ActiveRecord:</p>
2205
2780
  <pre class="lines">
2206
2781
 
2207
2782
 
2208
- 222
2209
- 223
2210
- 224
2211
- 225
2212
- 226
2213
- 227
2214
- 228
2215
- 229
2216
- 230</pre>
2783
+ 282
2784
+ 283
2785
+ 284
2786
+ 285
2787
+ 286
2788
+ 287
2789
+ 288
2790
+ 289
2791
+ 290</pre>
2217
2792
  </td>
2218
2793
  <td>
2219
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 222</span>
2794
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 282</span>
2220
2795
 
2221
2796
  <span class='kw'>def</span> <span class='id identifier rubyid_resolve'>resolve</span><span class='lparen'>(</span><span class='id identifier rubyid_parents'>parents</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='id identifier rubyid_namespace'>namespace</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
2222
2797
  <span class='id identifier rubyid_namespace'>namespace</span> <span class='op'>||=</span> <span class='id identifier rubyid_name'>name</span>
@@ -2283,12 +2858,12 @@ ActiveRecord:</p>
2283
2858
  <pre class="lines">
2284
2859
 
2285
2860
 
2286
- 48
2287
- 49
2288
- 50</pre>
2861
+ 63
2862
+ 64
2863
+ 65</pre>
2289
2864
  </td>
2290
2865
  <td>
2291
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 48</span>
2866
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 63</span>
2292
2867
 
2293
2868
  <span class='kw'>def</span> <span class='id identifier rubyid_resource'>resource</span>
2294
2869
  <span class='ivar'>@resource</span> <span class='op'>||=</span> <span class='id identifier rubyid_resource_class'>resource_class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
@@ -2403,12 +2978,12 @@ in your resource directly.</p>
2403
2978
  <pre class="lines">
2404
2979
 
2405
2980
 
2406
- 131
2407
- 132
2408
- 133</pre>
2981
+ 146
2982
+ 147
2983
+ 148</pre>
2409
2984
  </td>
2410
2985
  <td>
2411
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 131</span>
2986
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 146</span>
2412
2987
 
2413
2988
  <span class='kw'>def</span> <span class='id identifier rubyid_scope'>scope</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span>
2414
2989
  <span class='ivar'>@scope_proc</span> <span class='op'>=</span> <span class='id identifier rubyid_blk'>blk</span>
@@ -2489,12 +3064,12 @@ in your resource directly.</p>
2489
3064
  <pre class="lines">
2490
3065
 
2491
3066
 
2492
- 285
2493
- 286
2494
- 287</pre>
3067
+ 345
3068
+ 346
3069
+ 347</pre>
2495
3070
  </td>
2496
3071
  <td>
2497
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 285</span>
3072
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 345</span>
2498
3073
 
2499
3074
  <span class='kw'>def</span> <span class='id identifier rubyid_sideload'>sideload</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
2500
3075
  <span class='ivar'>@sideloads</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span>
@@ -2507,7 +3082,7 @@ in your resource directly.</p>
2507
3082
  <div class="method_details ">
2508
3083
  <h3 class="signature " id="to_hash-instance_method">
2509
3084
 
2510
- #<strong>to_hash</strong>(processed = []) &#x21d2; <tt>Hash</tt>
3085
+ #<strong>to_hash</strong>(depth_chain = [], parent = nil) &#x21d2; <tt>Hash</tt>
2511
3086
 
2512
3087
 
2513
3088
 
@@ -2573,47 +3148,39 @@ corresponding Resources, and returns an Include Directive hash</p>
2573
3148
  <pre class="lines">
2574
3149
 
2575
3150
 
2576
- 312
2577
- 313
2578
- 314
2579
- 315
2580
- 316
2581
- 317
2582
- 318
2583
- 319
2584
- 320
2585
- 321
2586
- 322
2587
- 323
2588
- 324
2589
- 325
2590
- 326
2591
- 327
2592
- 328
2593
- 329
2594
- 330</pre>
3151
+ 385
3152
+ 386
3153
+ 387
3154
+ 388
3155
+ 389
3156
+ 390
3157
+ 391
3158
+ 392
3159
+ 393
3160
+ 394
3161
+ 395
3162
+ 396
3163
+ 397
3164
+ 398
3165
+ 399</pre>
2595
3166
  </td>
2596
3167
  <td>
2597
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 312</span>
2598
-
2599
- <span class='kw'>def</span> <span class='id identifier rubyid_to_hash'>to_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_processed'>processed</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
2600
- <span class='kw'>return</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_processed'>processed</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
2601
- <span class='id identifier rubyid_processed'>processed</span> <span class='op'>&lt;&lt;</span> <span class='kw'>self</span>
2602
-
2603
- <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_hash'>hash</span><span class='op'>|</span>
2604
- <span class='ivar'>@sideloads</span><span class='period'>.</span><span class='id identifier rubyid_each_pair'>each_pair</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_sideload'>sideload</span><span class='op'>|</span>
2605
- <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_sideload'>sideload</span><span class='period'>.</span><span class='id identifier rubyid_to_hash'>to_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_processed'>processed</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
2606
-
2607
- <span class='kw'>if</span> <span class='id identifier rubyid_sideload'>sideload</span><span class='period'>.</span><span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
2608
- <span class='id identifier rubyid_sideload'>sideload</span><span class='period'>.</span><span class='id identifier rubyid_polymorphic_groups'>polymorphic_groups</span><span class='period'>.</span><span class='id identifier rubyid_each_pair'>each_pair</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_sl'>sl</span><span class='op'>|</span>
2609
- <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_nested_sideload_hash'>nested_sideload_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_sl'>sl</span><span class='comma'>,</span> <span class='id identifier rubyid_processed'>processed</span><span class='rparen'>)</span><span class='rparen'>)</span>
2610
- <span class='kw'>end</span>
2611
- <span class='kw'>else</span>
2612
- <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_nested_sideload_hash'>nested_sideload_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_sideload'>sideload</span><span class='comma'>,</span> <span class='id identifier rubyid_processed'>processed</span><span class='rparen'>)</span><span class='rparen'>)</span>
2613
- <span class='kw'>end</span>
3168
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 385</span>
3169
+
3170
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_hash'>to_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_depth_chain'>depth_chain</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_parent'>parent</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
3171
+ <span class='id identifier rubyid_depth'>depth</span> <span class='op'>=</span> <span class='id identifier rubyid_depth_chain'>depth_chain</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_arr'>arr</span><span class='op'>|</span> <span class='id identifier rubyid_arr'>arr</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rbracket'>]</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>
3172
+ <span class='kw'>return</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_depth'>depth</span> <span class='op'>&gt;=</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_max_depth'>max_depth</span>
3173
+
3174
+ <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_parent'>parent</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='symbol'>:base</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='symbol'>:base</span>
3175
+ <span class='id identifier rubyid_depth_chain'>depth_chain</span> <span class='op'>+=</span> <span class='lbracket'>[</span><span class='lbracket'>[</span><span class='id identifier rubyid_parent'>parent</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
3176
+ <span class='kw'>end</span>
3177
+
3178
+ <span class='lbrace'>{</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_hash'>hash</span><span class='op'>|</span>
3179
+ <span class='id identifier rubyid_all_sideloads'>all_sideloads</span><span class='period'>.</span><span class='id identifier rubyid_each_pair'>each_pair</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_sl'>sl</span><span class='op'>|</span>
3180
+ <span class='id identifier rubyid_sideload_hash'>sideload_hash</span> <span class='op'>=</span> <span class='id identifier rubyid_sl'>sl</span><span class='period'>.</span><span class='id identifier rubyid_to_hash'>to_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_depth_chain'>depth_chain</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span>
3181
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_sideload_hash'>sideload_hash</span><span class='rparen'>)</span>
2614
3182
  <span class='kw'>end</span>
2615
3183
  <span class='kw'>end</span>
2616
- <span class='id identifier rubyid_result'>result</span>
2617
3184
  <span class='kw'>end</span></pre>
2618
3185
  </td>
2619
3186
  </tr>
@@ -2625,7 +3192,7 @@ corresponding Resources, and returns an Include Directive hash</p>
2625
3192
  </div>
2626
3193
 
2627
3194
  <div id="footer">
2628
- Generated on Wed Jun 7 10:15:10 2017 by
3195
+ Generated on Thu Sep 28 17:28:11 2017 by
2629
3196
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2630
3197
  0.9.9 (ruby-2.3.0).
2631
3198
  </div>