jsonapi_compliable 0.6.13 → 0.7.2

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/docs/Jsonapi/ResourceGenerator.html +325 -0
  4. data/docs/Jsonapi.html +115 -0
  5. data/docs/JsonapiCompliable/Adapters/Abstract.html +1 -1
  6. data/docs/JsonapiCompliable/Adapters/ActiveRecord.html +59 -53
  7. data/docs/JsonapiCompliable/Adapters/ActiveRecordSideloading.html +6 -6
  8. data/docs/JsonapiCompliable/Adapters/Null.html +1 -1
  9. data/docs/JsonapiCompliable/Adapters.html +1 -1
  10. data/docs/JsonapiCompliable/Base.html +113 -117
  11. data/docs/JsonapiCompliable/Deserializer.html +87 -22
  12. data/docs/JsonapiCompliable/Errors/BadFilter.html +1 -1
  13. data/docs/JsonapiCompliable/Errors/StatNotFound.html +1 -1
  14. data/docs/JsonapiCompliable/Errors/UnsupportedPageSize.html +1 -1
  15. data/docs/JsonapiCompliable/Errors/ValidationError.html +1 -1
  16. data/docs/JsonapiCompliable/Errors.html +1 -1
  17. data/docs/JsonapiCompliable/Extensions/BooleanAttribute/ClassMethods.html +1 -1
  18. data/docs/JsonapiCompliable/Extensions/BooleanAttribute.html +1 -1
  19. data/docs/JsonapiCompliable/Extensions/ExtraAttribute/ClassMethods.html +1 -1
  20. data/docs/JsonapiCompliable/Extensions/ExtraAttribute.html +1 -1
  21. data/docs/JsonapiCompliable/Extensions.html +1 -1
  22. data/docs/JsonapiCompliable/Query.html +19 -17
  23. data/docs/JsonapiCompliable/Rails.html +1 -1
  24. data/docs/JsonapiCompliable/Resource.html +311 -220
  25. data/docs/JsonapiCompliable/Scope.html +1 -1
  26. data/docs/JsonapiCompliable/Scoping/Base.html +1 -1
  27. data/docs/JsonapiCompliable/Scoping/DefaultFilter.html +1 -1
  28. data/docs/JsonapiCompliable/Scoping/ExtraFields.html +1 -1
  29. data/docs/JsonapiCompliable/Scoping/Filter.html +1 -1
  30. data/docs/JsonapiCompliable/Scoping/Filterable.html +2 -2
  31. data/docs/JsonapiCompliable/Scoping/Paginate.html +1 -1
  32. data/docs/JsonapiCompliable/Scoping/Sort.html +1 -1
  33. data/docs/JsonapiCompliable/Scoping.html +1 -1
  34. data/docs/JsonapiCompliable/SerializableTempId.html +1 -1
  35. data/docs/JsonapiCompliable/Sideload.html +229 -78
  36. data/docs/JsonapiCompliable/Stats/DSL.html +1 -1
  37. data/docs/JsonapiCompliable/Stats/Payload.html +1 -1
  38. data/docs/JsonapiCompliable/Stats.html +1 -1
  39. data/docs/JsonapiCompliable/Util/FieldParams.html +1 -1
  40. data/docs/JsonapiCompliable/Util/Hash.html +1 -1
  41. data/docs/JsonapiCompliable/Util/IncludeParams.html +1 -1
  42. data/docs/JsonapiCompliable/Util/Persistence.html +1 -1
  43. data/docs/JsonapiCompliable/Util/RelationshipPayload.html +1 -1
  44. data/docs/JsonapiCompliable/Util/RenderOptions.html +1 -1
  45. data/docs/JsonapiCompliable/Util/ValidationResponse.html +1 -1
  46. data/docs/JsonapiCompliable/Util.html +1 -1
  47. data/docs/JsonapiCompliable.html +210 -3
  48. data/docs/_index.html +13 -1
  49. data/docs/class_list.html +1 -1
  50. data/docs/file.README.html +4 -2
  51. data/docs/index.html +4 -2
  52. data/docs/method_list.html +307 -243
  53. data/docs/top-level-namespace.html +2 -2
  54. data/lib/generators/jsonapi/resource_generator.rb +139 -58
  55. data/lib/generators/jsonapi/templates/application_resource.rb.erb +11 -2
  56. data/lib/generators/jsonapi/templates/controller.rb.erb +34 -0
  57. data/lib/generators/jsonapi/templates/destroy_request_spec.rb.erb +1 -1
  58. data/lib/generators/jsonapi/templates/payload.rb.erb +31 -0
  59. data/lib/generators/jsonapi/templates/resource.rb.erb +47 -0
  60. data/lib/generators/jsonapi/templates/serializer.rb.erb +17 -0
  61. data/lib/jsonapi_compliable/adapters/active_record_sideloading.rb +5 -5
  62. data/lib/jsonapi_compliable/resource.rb +11 -5
  63. data/lib/jsonapi_compliable/sideload.rb +40 -11
  64. data/lib/jsonapi_compliable/util/persistence.rb +9 -2
  65. data/lib/jsonapi_compliable/util/relationship_payload.rb +6 -0
  66. data/lib/jsonapi_compliable/util/validation_response.rb +2 -1
  67. data/lib/jsonapi_compliable/version.rb +1 -1
  68. metadata +4 -2
@@ -168,7 +168,7 @@ key.</p>
168
168
  <li class="public ">
169
169
  <span class="summary_signature">
170
170
 
171
- <a href="#grouper-instance_method" title="#grouper (instance method)">#<strong>grouper</strong> &#x21d2; Proc </a>
171
+ <a href="#grouping_field-instance_method" title="#grouping_field (instance method)">#<strong>grouping_field</strong> &#x21d2; Symbol </a>
172
172
 
173
173
 
174
174
 
@@ -188,7 +188,7 @@ key.</p>
188
188
 
189
189
 
190
190
  <span class="summary_desc"><div class='inline'>
191
- <p>The configured &#39;group_by&#39; proc.</p>
191
+ <p>The configured &#39;group_by&#39; symbol.</p>
192
192
  </div></span>
193
193
 
194
194
  </li>
@@ -220,6 +220,35 @@ key.</p>
220
220
  <p>The name of the sideload.</p>
221
221
  </div></span>
222
222
 
223
+ </li>
224
+
225
+
226
+ <li class="public ">
227
+ <span class="summary_signature">
228
+
229
+ <a href="#parent-instance_method" title="#parent (instance method)">#<strong>parent</strong> &#x21d2; Object </a>
230
+
231
+
232
+
233
+ </span>
234
+
235
+
236
+
237
+
238
+ <span class="note title readonly">readonly</span>
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+ <span class="summary_desc"><div class='inline'>
249
+ <p>Returns the value of attribute parent.</p>
250
+ </div></span>
251
+
223
252
  </li>
224
253
 
225
254
 
@@ -515,7 +544,7 @@ key.</p>
515
544
  <li class="public ">
516
545
  <span class="summary_signature">
517
546
 
518
- <a href="#group_by-instance_method" title="#group_by (instance method)">#<strong>group_by</strong>(&amp;grouper) &#x21d2; Object </a>
547
+ <a href="#group_by-instance_method" title="#group_by (instance method)">#<strong>group_by</strong>(grouping_field) &#x21d2; Object </a>
519
548
 
520
549
 
521
550
 
@@ -530,7 +559,7 @@ key.</p>
530
559
 
531
560
 
532
561
  <span class="summary_desc"><div class='inline'>
533
- <p>Define a proc that groups the parent records.</p>
562
+ <p>Define an attribute that groups the parent records.</p>
534
563
  </div></span>
535
564
 
536
565
  </li>
@@ -539,7 +568,7 @@ key.</p>
539
568
  <li class="public ">
540
569
  <span class="summary_signature">
541
570
 
542
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(name, type: nil, resource: nil, polymorphic: false, primary_key: :id, foreign_key: nil) &#x21d2; Sideload </a>
571
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(name, type: nil, resource: nil, polymorphic: false, primary_key: :id, foreign_key: nil, parent: nil) &#x21d2; Sideload </a>
543
572
 
544
573
 
545
574
 
@@ -584,6 +613,28 @@ instantiation.</p>
584
613
  <p>Is this sideload polymorphic?.</p>
585
614
  </div></span>
586
615
 
616
+ </li>
617
+
618
+
619
+ <li class="public ">
620
+ <span class="summary_signature">
621
+
622
+ <a href="#polymorphic_child_for_type-instance_method" title="#polymorphic_child_for_type (instance method)">#<strong>polymorphic_child_for_type</strong>(type) &#x21d2; Object </a>
623
+
624
+
625
+
626
+ </span>
627
+
628
+
629
+
630
+
631
+
632
+
633
+ <span class="private note title">private</span>
634
+
635
+
636
+ <span class="summary_desc"><div class='inline'></div></span>
637
+
587
638
  </li>
588
639
 
589
640
 
@@ -718,7 +769,7 @@ corresponding Resources, and returns an Include Directive hash.</p>
718
769
  <div class="method_details first">
719
770
  <h3 class="signature first" id="initialize-instance_method">
720
771
 
721
- #<strong>initialize</strong>(name, type: nil, resource: nil, polymorphic: false, primary_key: :id, foreign_key: nil) &#x21d2; <tt><span class='object_link'><a href="" title="JsonapiCompliable::Sideload (class)">Sideload</a></span></tt>
772
+ #<strong>initialize</strong>(name, type: nil, resource: nil, polymorphic: false, primary_key: :id, foreign_key: nil, parent: nil) &#x21d2; <tt><span class='object_link'><a href="" title="JsonapiCompliable::Sideload (class)">Sideload</a></span></tt>
722
773
 
723
774
 
724
775
 
@@ -751,7 +802,6 @@ instantiation</p>
751
802
  <pre class="lines">
752
803
 
753
804
 
754
- 31
755
805
  32
756
806
  33
757
807
  34
@@ -762,17 +812,20 @@ instantiation</p>
762
812
  39
763
813
  40
764
814
  41
765
- 42</pre>
815
+ 42
816
+ 43
817
+ 44</pre>
766
818
  </td>
767
819
  <td>
768
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 31</span>
820
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 32</span>
769
821
 
770
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>resource:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>polymorphic:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>primary_key:</span> <span class='symbol'>:id</span><span class='comma'>,</span> <span class='label'>foreign_key:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
822
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>resource:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>polymorphic:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>primary_key:</span> <span class='symbol'>:id</span><span class='comma'>,</span> <span class='label'>foreign_key:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>parent:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
771
823
  <span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
772
824
  <span class='ivar'>@resource_class</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span> <span class='op'>||</span> <span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Resource.html" title="JsonapiCompliable::Resource (class)">Resource</a></span></span><span class='rparen'>)</span><span class='rparen'>)</span>
773
825
  <span class='ivar'>@sideloads</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
774
826
  <span class='ivar'>@polymorphic</span> <span class='op'>=</span> <span class='op'>!</span><span class='op'>!</span><span class='id identifier rubyid_polymorphic'>polymorphic</span>
775
827
  <span class='ivar'>@polymorphic_groups</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
828
+ <span class='ivar'>@parent</span> <span class='op'>=</span> <span class='id identifier rubyid_parent'>parent</span>
776
829
  <span class='ivar'>@primary_key</span> <span class='op'>=</span> <span class='id identifier rubyid_primary_key'>primary_key</span>
777
830
  <span class='ivar'>@foreign_key</span> <span class='op'>=</span> <span class='id identifier rubyid_foreign_key'>foreign_key</span>
778
831
  <span class='ivar'>@type</span> <span class='op'>=</span> <span class='id identifier rubyid_type'>type</span>
@@ -915,9 +968,9 @@ key.</p>
915
968
 
916
969
  <span id=""></span>
917
970
  <div class="method_details ">
918
- <h3 class="signature " id="grouper-instance_method">
971
+ <h3 class="signature " id="grouping_field-instance_method">
919
972
 
920
- #<strong>grouper</strong> &#x21d2; <tt>Proc</tt> <span class="extras">(readonly)</span>
973
+ #<strong>grouping_field</strong> &#x21d2; <tt>Symbol</tt> <span class="extras">(readonly)</span>
921
974
 
922
975
 
923
976
 
@@ -926,7 +979,7 @@ key.</p>
926
979
  </h3><div class="docstring">
927
980
  <div class="discussion">
928
981
 
929
- <p>The configured &#39;group_by&#39; proc</p>
982
+ <p>The configured &#39;group_by&#39; symbol</p>
930
983
 
931
984
 
932
985
  </div>
@@ -939,13 +992,13 @@ key.</p>
939
992
  <li>
940
993
 
941
994
 
942
- <span class='type'>(<tt>Proc</tt>)</span>
995
+ <span class='type'>(<tt>Symbol</tt>)</span>
943
996
 
944
997
 
945
998
 
946
999
  &mdash;
947
1000
  <div class='inline'>
948
- <p>the current value of grouper</p>
1001
+ <p>the current value of grouping_field</p>
949
1002
  </div>
950
1003
 
951
1004
  </li>
@@ -965,8 +1018,8 @@ key.</p>
965
1018
  <td>
966
1019
  <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
967
1020
 
968
- <span class='kw'>def</span> <span class='id identifier rubyid_grouper'>grouper</span>
969
- <span class='ivar'>@grouper</span>
1021
+ <span class='kw'>def</span> <span class='id identifier rubyid_grouping_field'>grouping_field</span>
1022
+ <span class='ivar'>@grouping_field</span>
970
1023
  <span class='kw'>end</span></pre>
971
1024
  </td>
972
1025
  </tr>
@@ -1035,6 +1088,49 @@ key.</p>
1035
1088
  </div>
1036
1089
 
1037
1090
 
1091
+ <span id=""></span>
1092
+ <div class="method_details ">
1093
+ <h3 class="signature " id="parent-instance_method">
1094
+
1095
+ #<strong>parent</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+ </h3><div class="docstring">
1102
+ <div class="discussion">
1103
+
1104
+ <p>Returns the value of attribute parent</p>
1105
+
1106
+
1107
+ </div>
1108
+ </div>
1109
+ <div class="tags">
1110
+
1111
+
1112
+ </div><table class="source_code">
1113
+ <tr>
1114
+ <td>
1115
+ <pre class="lines">
1116
+
1117
+
1118
+ 14
1119
+ 15
1120
+ 16</pre>
1121
+ </td>
1122
+ <td>
1123
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 14</span>
1124
+
1125
+ <span class='kw'>def</span> <span class='id identifier rubyid_parent'>parent</span>
1126
+ <span class='ivar'>@parent</span>
1127
+ <span class='kw'>end</span></pre>
1128
+ </td>
1129
+ </tr>
1130
+ </table>
1131
+ </div>
1132
+
1133
+
1038
1134
  <span id=""></span>
1039
1135
  <div class="method_details ">
1040
1136
  <h3 class="signature " id="polymorphic-instance_method">
@@ -1565,19 +1661,19 @@ directly</p>
1565
1661
  <pre class="lines">
1566
1662
 
1567
1663
 
1568
- 264
1569
- 265
1570
- 266
1571
- 267
1572
- 268
1573
- 269
1574
1664
  270
1575
1665
  271
1576
1666
  272
1577
- 273</pre>
1667
+ 273
1668
+ 274
1669
+ 275
1670
+ 276
1671
+ 277
1672
+ 278
1673
+ 279</pre>
1578
1674
  </td>
1579
1675
  <td>
1580
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 264</span>
1676
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 270</span>
1581
1677
 
1582
1678
  <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>
1583
1679
  <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>
@@ -1708,12 +1804,12 @@ in your resource directly.</p>
1708
1804
  <pre class="lines">
1709
1805
 
1710
1806
 
1711
- 166
1712
- 167
1713
- 168</pre>
1807
+ 168
1808
+ 169
1809
+ 170</pre>
1714
1810
  </td>
1715
1811
  <td>
1716
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 166</span>
1812
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 168</span>
1717
1813
 
1718
1814
  <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>
1719
1815
  <span class='ivar'>@assign_proc</span> <span class='op'>=</span> <span class='id identifier rubyid_blk'>blk</span>
@@ -1776,15 +1872,23 @@ in your resource directly.</p>
1776
1872
  <pre class="lines">
1777
1873
 
1778
1874
 
1779
- 183
1780
- 184
1781
- 185</pre>
1875
+ 185
1876
+ 186
1877
+ 187
1878
+ 188
1879
+ 189
1880
+ 190
1881
+ 191</pre>
1782
1882
  </td>
1783
1883
  <td>
1784
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 183</span>
1884
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 185</span>
1785
1885
 
1786
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>
1787
- <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='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_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1887
+ <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>
1788
1892
  <span class='kw'>end</span></pre>
1789
1893
  </td>
1790
1894
  </tr>
@@ -1794,7 +1898,7 @@ in your resource directly.</p>
1794
1898
  <div class="method_details ">
1795
1899
  <h3 class="signature " id="group_by-instance_method">
1796
1900
 
1797
- #<strong>group_by</strong>(&amp;grouper) &#x21d2; <tt>Object</tt>
1901
+ #<strong>group_by</strong>(grouping_field) &#x21d2; <tt>Object</tt>
1798
1902
 
1799
1903
 
1800
1904
 
@@ -1803,14 +1907,14 @@ in your resource directly.</p>
1803
1907
  </h3><div class="docstring">
1804
1908
  <div class="discussion">
1805
1909
 
1806
- <p>Define a proc that groups the parent records. For instance, with an
1910
+ <p>Define an attribute that groups the parent records. For instance, with an
1807
1911
  ActiveRecord polymorphic belongs_to there will be a <code>parent_id</code>
1808
1912
  and <code>parent_type</code>. We would want to group on
1809
1913
  <code>parent_type</code>:</p>
1810
1914
 
1811
1915
  <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:organization</span><span class='comma'>,</span> <span class='label'>polymorphic:</span> <span class='kw'>true</span> <span class='kw'>do</span>
1812
1916
  <span class='comment'># group parent_type, parent here is &#39;organization&#39;
1813
- </span> <span class='id identifier rubyid_group_by'>group_by</span> <span class='tlambda'>-&gt;</span><span class='lparen'>(</span><span class='id identifier rubyid_office'>office</span><span class='rparen'>)</span> <span class='tlambeg'>{</span> <span class='id identifier rubyid_office'>office</span><span class='period'>.</span><span class='id identifier rubyid_organization_type'>organization_type</span> <span class='rbrace'>}</span>
1917
+ </span> <span class='id identifier rubyid_group_by'>group_by</span> <span class='symbol'>:organization_type</span>
1814
1918
  <span class='kw'>end</span>
1815
1919
  </code></pre>
1816
1920
 
@@ -1833,15 +1937,15 @@ and <code>parent_type</code>. We would want to group on
1833
1937
  <pre class="lines">
1834
1938
 
1835
1939
 
1836
- 197
1837
- 198
1838
- 199</pre>
1940
+ 203
1941
+ 204
1942
+ 205</pre>
1839
1943
  </td>
1840
1944
  <td>
1841
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 197</span>
1945
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 203</span>
1842
1946
 
1843
- <span class='kw'>def</span> <span class='id identifier rubyid_group_by'>group_by</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_grouper'>grouper</span><span class='rparen'>)</span>
1844
- <span class='ivar'>@grouper</span> <span class='op'>=</span> <span class='id identifier rubyid_grouper'>grouper</span>
1947
+ <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
+ <span class='ivar'>@grouping_field</span> <span class='op'>=</span> <span class='id identifier rubyid_grouping_field'>grouping_field</span>
1845
1949
  <span class='kw'>end</span></pre>
1846
1950
  </td>
1847
1951
  </tr>
@@ -1868,7 +1972,7 @@ different &#39;types&#39; can be resolved differently. Let&#39;s say an
1868
1972
  be either a <code>Business</code> or <code>Government</code>:</p>
1869
1973
 
1870
1974
  <pre class="code ruby"><code class="ruby">allow_sideload :organization, :polymorphic: true do
1871
- group_by { |record| record.organization_type }
1975
+ group_by :organization_type
1872
1976
 
1873
1977
  allow_sideload &#39;Business&#39;, resource: BusinessResource do
1874
1978
  # ... code ...
@@ -1883,7 +1987,7 @@ end</code></pre>
1883
1987
  ActiveRecord:</p>
1884
1988
 
1885
1989
  <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_polymorphic_belongs_to'>polymorphic_belongs_to</span> <span class='symbol'>:organization</span><span class='comma'>,</span>
1886
- <span class='label'>group_by:</span> <span class='tlambda'>-&gt;</span><span class='lparen'>(</span><span class='id identifier rubyid_office'>office</span><span class='rparen'>)</span> <span class='tlambeg'>{</span> <span class='id identifier rubyid_office'>office</span><span class='period'>.</span><span class='id identifier rubyid_organization_type'>organization_type</span> <span class='rbrace'>}</span><span class='comma'>,</span>
1990
+ <span class='label'>group_by:</span> <span class='symbol'>:organization_type</span><span class='comma'>,</span>
1887
1991
  <span class='label'>groups:</span> <span class='lbrace'>{</span>
1888
1992
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Business</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
1889
1993
  <span class='label'>scope:</span> <span class='tlambda'>-&gt;</span> <span class='tlambeg'>{</span> <span class='const'>Business</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span> <span class='rbrace'>}</span><span class='comma'>,</span>
@@ -1935,12 +2039,12 @@ ActiveRecord:</p>
1935
2039
  <pre class="lines">
1936
2040
 
1937
2041
 
1938
- 89
1939
- 90
1940
- 91</pre>
2042
+ 91
2043
+ 92
2044
+ 93</pre>
1941
2045
  </td>
1942
2046
  <td>
1943
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 89</span>
2047
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 91</span>
1944
2048
 
1945
2049
  <span class='kw'>def</span> <span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
1946
2050
  <span class='ivar'>@polymorphic</span> <span class='op'>==</span> <span class='kw'>true</span>
@@ -1948,6 +2052,53 @@ ActiveRecord:</p>
1948
2052
  </td>
1949
2053
  </tr>
1950
2054
  </table>
2055
+ </div>
2056
+
2057
+ <div class="method_details ">
2058
+ <h3 class="signature " id="polymorphic_child_for_type-instance_method">
2059
+
2060
+ #<strong>polymorphic_child_for_type</strong>(type) &#x21d2; <tt>Object</tt>
2061
+
2062
+
2063
+
2064
+
2065
+
2066
+ </h3><div class="docstring">
2067
+ <div class="discussion">
2068
+ <p class="note private">
2069
+ <strong>This method is part of a private API.</strong>
2070
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
2071
+ </p>
2072
+
2073
+
2074
+ </div>
2075
+ </div>
2076
+ <div class="tags">
2077
+
2078
+
2079
+ </div><table class="source_code">
2080
+ <tr>
2081
+ <td>
2082
+ <pre class="lines">
2083
+
2084
+
2085
+ 333
2086
+ 334
2087
+ 335
2088
+ 336
2089
+ 337</pre>
2090
+ </td>
2091
+ <td>
2092
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 333</span>
2093
+
2094
+ <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
+ <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>
2097
+ <span class='kw'>end</span>
2098
+ <span class='kw'>end</span></pre>
2099
+ </td>
2100
+ </tr>
2101
+ </table>
1951
2102
  </div>
1952
2103
 
1953
2104
  <div class="method_details ">
@@ -2054,18 +2205,18 @@ ActiveRecord:</p>
2054
2205
  <pre class="lines">
2055
2206
 
2056
2207
 
2057
- 216
2058
- 217
2059
- 218
2060
- 219
2061
- 220
2062
- 221
2063
2208
  222
2064
2209
  223
2065
- 224</pre>
2210
+ 224
2211
+ 225
2212
+ 226
2213
+ 227
2214
+ 228
2215
+ 229
2216
+ 230</pre>
2066
2217
  </td>
2067
2218
  <td>
2068
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 216</span>
2219
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 222</span>
2069
2220
 
2070
2221
  <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>
2071
2222
  <span class='id identifier rubyid_namespace'>namespace</span> <span class='op'>||=</span> <span class='id identifier rubyid_name'>name</span>
@@ -2132,12 +2283,12 @@ ActiveRecord:</p>
2132
2283
  <pre class="lines">
2133
2284
 
2134
2285
 
2135
- 46
2136
- 47
2137
- 48</pre>
2286
+ 48
2287
+ 49
2288
+ 50</pre>
2138
2289
  </td>
2139
2290
  <td>
2140
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 46</span>
2291
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 48</span>
2141
2292
 
2142
2293
  <span class='kw'>def</span> <span class='id identifier rubyid_resource'>resource</span>
2143
2294
  <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>
@@ -2252,12 +2403,12 @@ in your resource directly.</p>
2252
2403
  <pre class="lines">
2253
2404
 
2254
2405
 
2255
- 129
2256
- 130
2257
- 131</pre>
2406
+ 131
2407
+ 132
2408
+ 133</pre>
2258
2409
  </td>
2259
2410
  <td>
2260
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 129</span>
2411
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 131</span>
2261
2412
 
2262
2413
  <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>
2263
2414
  <span class='ivar'>@scope_proc</span> <span class='op'>=</span> <span class='id identifier rubyid_blk'>blk</span>
@@ -2338,12 +2489,12 @@ in your resource directly.</p>
2338
2489
  <pre class="lines">
2339
2490
 
2340
2491
 
2341
- 279
2342
- 280
2343
- 281</pre>
2492
+ 285
2493
+ 286
2494
+ 287</pre>
2344
2495
  </td>
2345
2496
  <td>
2346
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 279</span>
2497
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 285</span>
2347
2498
 
2348
2499
  <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>
2349
2500
  <span class='ivar'>@sideloads</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span>
@@ -2422,12 +2573,6 @@ corresponding Resources, and returns an Include Directive hash</p>
2422
2573
  <pre class="lines">
2423
2574
 
2424
2575
 
2425
- 306
2426
- 307
2427
- 308
2428
- 309
2429
- 310
2430
- 311
2431
2576
  312
2432
2577
  313
2433
2578
  314
@@ -2440,10 +2585,16 @@ corresponding Resources, and returns an Include Directive hash</p>
2440
2585
  321
2441
2586
  322
2442
2587
  323
2443
- 324</pre>
2588
+ 324
2589
+ 325
2590
+ 326
2591
+ 327
2592
+ 328
2593
+ 329
2594
+ 330</pre>
2444
2595
  </td>
2445
2596
  <td>
2446
- <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 306</span>
2597
+ <pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 312</span>
2447
2598
 
2448
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>
2449
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>
@@ -2474,7 +2625,7 @@ corresponding Resources, and returns an Include Directive hash</p>
2474
2625
  </div>
2475
2626
 
2476
2627
  <div id="footer">
2477
- Generated on Fri May 5 15:53:22 2017 by
2628
+ Generated on Wed Jun 7 10:15:10 2017 by
2478
2629
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2479
2630
  0.9.9 (ruby-2.3.0).
2480
2631
  </div>
@@ -989,7 +989,7 @@ configured.</p>
989
989
  </div>
990
990
 
991
991
  <div id="footer">
992
- Generated on Fri May 5 15:53:22 2017 by
992
+ Generated on Wed Jun 7 10:15:10 2017 by
993
993
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
994
994
  0.9.9 (ruby-2.3.0).
995
995
  </div>
@@ -381,7 +381,7 @@ results.</p>
381
381
  </div>
382
382
 
383
383
  <div id="footer">
384
- Generated on Fri May 5 15:53:23 2017 by
384
+ Generated on Wed Jun 7 10:15:10 2017 by
385
385
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
386
386
  0.9.9 (ruby-2.3.0).
387
387
  </div>
@@ -107,7 +107,7 @@
107
107
  </div>
108
108
 
109
109
  <div id="footer">
110
- Generated on Fri May 5 15:53:21 2017 by
110
+ Generated on Wed Jun 7 10:15:09 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>
@@ -218,7 +218,7 @@
218
218
  </div>
219
219
 
220
220
  <div id="footer">
221
- Generated on Fri May 5 15:53:23 2017 by
221
+ Generated on Wed Jun 7 10:15:10 2017 by
222
222
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
223
223
  0.9.9 (ruby-2.3.0).
224
224
  </div>
@@ -461,7 +461,7 @@
461
461
  </div>
462
462
 
463
463
  <div id="footer">
464
- Generated on Fri May 5 15:53:22 2017 by
464
+ Generated on Wed Jun 7 10:15:10 2017 by
465
465
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
466
466
  0.9.9 (ruby-2.3.0).
467
467
  </div>
@@ -289,7 +289,7 @@
289
289
  </div>
290
290
 
291
291
  <div id="footer">
292
- Generated on Fri May 5 15:53:23 2017 by
292
+ Generated on Wed Jun 7 10:15:10 2017 by
293
293
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
294
294
  0.9.9 (ruby-2.3.0).
295
295
  </div>