jsonapi_compliable 0.6.4 → 0.6.5
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.travis.yml +11 -3
- data/.yardopts +1 -0
- data/README.md +10 -1
- data/Rakefile +1 -0
- data/docs/JsonapiCompliable.html +202 -0
- data/docs/JsonapiCompliable/Adapters.html +119 -0
- data/docs/JsonapiCompliable/Adapters/Abstract.html +2285 -0
- data/docs/JsonapiCompliable/Adapters/ActiveRecord.html +2151 -0
- data/docs/JsonapiCompliable/Adapters/ActiveRecordSideloading.html +582 -0
- data/docs/JsonapiCompliable/Adapters/Null.html +1682 -0
- data/docs/JsonapiCompliable/Base.html +1395 -0
- data/docs/JsonapiCompliable/Deserializer.html +835 -0
- data/docs/JsonapiCompliable/Errors.html +115 -0
- data/docs/JsonapiCompliable/Errors/BadFilter.html +124 -0
- data/docs/JsonapiCompliable/Errors/StatNotFound.html +266 -0
- data/docs/JsonapiCompliable/Errors/UnsupportedPageSize.html +264 -0
- data/docs/JsonapiCompliable/Errors/ValidationError.html +124 -0
- data/docs/JsonapiCompliable/Extensions.html +117 -0
- data/docs/JsonapiCompliable/Extensions/BooleanAttribute.html +212 -0
- data/docs/JsonapiCompliable/Extensions/BooleanAttribute/ClassMethods.html +229 -0
- data/docs/JsonapiCompliable/Extensions/ExtraAttribute.html +242 -0
- data/docs/JsonapiCompliable/Extensions/ExtraAttribute/ClassMethods.html +237 -0
- data/docs/JsonapiCompliable/Query.html +1099 -0
- data/docs/JsonapiCompliable/Rails.html +211 -0
- data/docs/JsonapiCompliable/Resource.html +5241 -0
- data/docs/JsonapiCompliable/Scope.html +703 -0
- data/docs/JsonapiCompliable/Scoping.html +117 -0
- data/docs/JsonapiCompliable/Scoping/Base.html +843 -0
- data/docs/JsonapiCompliable/Scoping/DefaultFilter.html +318 -0
- data/docs/JsonapiCompliable/Scoping/ExtraFields.html +301 -0
- data/docs/JsonapiCompliable/Scoping/Filter.html +313 -0
- data/docs/JsonapiCompliable/Scoping/Filterable.html +364 -0
- data/docs/JsonapiCompliable/Scoping/Paginate.html +613 -0
- data/docs/JsonapiCompliable/Scoping/Sort.html +454 -0
- data/docs/JsonapiCompliable/SerializableTempId.html +216 -0
- data/docs/JsonapiCompliable/Sideload.html +2484 -0
- data/docs/JsonapiCompliable/Stats.html +117 -0
- data/docs/JsonapiCompliable/Stats/DSL.html +999 -0
- data/docs/JsonapiCompliable/Stats/Payload.html +391 -0
- data/docs/JsonapiCompliable/Util.html +117 -0
- data/docs/JsonapiCompliable/Util/FieldParams.html +228 -0
- data/docs/JsonapiCompliable/Util/Hash.html +471 -0
- data/docs/JsonapiCompliable/Util/IncludeParams.html +299 -0
- data/docs/JsonapiCompliable/Util/Persistence.html +435 -0
- data/docs/JsonapiCompliable/Util/RelationshipPayload.html +563 -0
- data/docs/JsonapiCompliable/Util/RenderOptions.html +250 -0
- data/docs/JsonapiCompliable/Util/ValidationResponse.html +532 -0
- data/docs/_index.html +527 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +492 -0
- data/docs/file.README.html +99 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +99 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +1731 -0
- data/docs/top-level-namespace.html +110 -0
- data/gemfiles/rails_5.gemfile +1 -1
- data/lib/jsonapi_compliable/adapters/abstract.rb +267 -4
- data/lib/jsonapi_compliable/adapters/active_record.rb +23 -1
- data/lib/jsonapi_compliable/adapters/null.rb +43 -3
- data/lib/jsonapi_compliable/base.rb +182 -33
- data/lib/jsonapi_compliable/deserializer.rb +90 -21
- data/lib/jsonapi_compliable/extensions/boolean_attribute.rb +12 -0
- data/lib/jsonapi_compliable/extensions/extra_attribute.rb +32 -0
- data/lib/jsonapi_compliable/extensions/temp_id.rb +11 -0
- data/lib/jsonapi_compliable/query.rb +94 -2
- data/lib/jsonapi_compliable/rails.rb +8 -0
- data/lib/jsonapi_compliable/resource.rb +548 -11
- data/lib/jsonapi_compliable/scope.rb +43 -1
- data/lib/jsonapi_compliable/scoping/base.rb +59 -8
- data/lib/jsonapi_compliable/scoping/default_filter.rb +33 -0
- data/lib/jsonapi_compliable/scoping/extra_fields.rb +33 -0
- data/lib/jsonapi_compliable/scoping/filter.rb +29 -2
- data/lib/jsonapi_compliable/scoping/filterable.rb +4 -0
- data/lib/jsonapi_compliable/scoping/paginate.rb +33 -0
- data/lib/jsonapi_compliable/scoping/sort.rb +18 -0
- data/lib/jsonapi_compliable/sideload.rb +229 -1
- data/lib/jsonapi_compliable/stats/dsl.rb +44 -0
- data/lib/jsonapi_compliable/stats/payload.rb +20 -0
- data/lib/jsonapi_compliable/util/field_params.rb +1 -0
- data/lib/jsonapi_compliable/util/hash.rb +18 -0
- data/lib/jsonapi_compliable/util/include_params.rb +22 -0
- data/lib/jsonapi_compliable/util/persistence.rb +13 -3
- data/lib/jsonapi_compliable/util/relationship_payload.rb +2 -0
- data/lib/jsonapi_compliable/util/render_options.rb +2 -0
- data/lib/jsonapi_compliable/util/validation_response.rb +16 -0
- data/lib/jsonapi_compliable/version.rb +1 -1
- metadata +60 -5
- data/gemfiles/rails_4.gemfile.lock +0 -208
- data/gemfiles/rails_5.gemfile.lock +0 -212
- data/lib/jsonapi_compliable/write.rb +0 -93
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Module: JsonapiCompliable::SerializableTempId
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.9
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
|
18
|
+
pathId = "JsonapiCompliable::SerializableTempId";
|
|
19
|
+
relpath = '../';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="nav_wrap">
|
|
31
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
|
32
|
+
<div id="resizer"></div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div id="main" tabindex="-1">
|
|
36
|
+
<div id="header">
|
|
37
|
+
<div id="menu">
|
|
38
|
+
|
|
39
|
+
<a href="../_index.html">Index (S)</a> »
|
|
40
|
+
<span class='title'><span class='object_link'><a href="../JsonapiCompliable.html" title="JsonapiCompliable (module)">JsonapiCompliable</a></span></span>
|
|
41
|
+
»
|
|
42
|
+
<span class="title">SerializableTempId</span>
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<div id="search">
|
|
47
|
+
|
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
|
49
|
+
href="../class_list.html">
|
|
50
|
+
|
|
51
|
+
<svg width="24" height="24">
|
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
</svg>
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
</div>
|
|
59
|
+
<div class="clear"></div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div id="content"><h1>Module: JsonapiCompliable::SerializableTempId
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
</h1>
|
|
67
|
+
<div class="box_info">
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<dl>
|
|
80
|
+
<dt>Defined in:</dt>
|
|
81
|
+
<dd>lib/jsonapi_compliable/extensions/temp_id.rb</dd>
|
|
82
|
+
</dl>
|
|
83
|
+
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<h2>Overview</h2><div class="docstring">
|
|
87
|
+
<div class="discussion">
|
|
88
|
+
|
|
89
|
+
<p>If the object we are serializing has the instance variable
|
|
90
|
+
<tt>@_jsonapi_temp_id</tt>, render <code>temp-id</code> in the
|
|
91
|
+
<a href="http://jsonapi.org/format/#document-resource-identifier-objects" target="_parent" title="resource identifier">resource identifier</a></p>
|
|
92
|
+
|
|
93
|
+
<p>Why? Well, when the request is a nested POST, creating the main entity as
|
|
94
|
+
well as relationships, we need some way of telling the client, “hey, the
|
|
95
|
+
object you have in memory, that you just sent to the server, has been
|
|
96
|
+
persisted and now has id X”.</p>
|
|
97
|
+
|
|
98
|
+
<p><tt>@_jsonapi_temp_id</tt> is set within this library. You should never have to
|
|
99
|
+
reference it directly.</p>
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
<div class="tags">
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
<h2>
|
|
116
|
+
Instance Method Summary
|
|
117
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
|
118
|
+
</h2>
|
|
119
|
+
|
|
120
|
+
<ul class="summary">
|
|
121
|
+
|
|
122
|
+
<li class="public ">
|
|
123
|
+
<span class="summary_signature">
|
|
124
|
+
|
|
125
|
+
<a href="#as_jsonapi-instance_method" title="#as_jsonapi (instance method)">#<strong>as_jsonapi</strong> ⇒ Object </a>
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
</span>
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
<span class="summary_desc"><div class='inline'>
|
|
140
|
+
<p>Common interface for jsonapi-rb extensions.</p>
|
|
141
|
+
</div></span>
|
|
142
|
+
|
|
143
|
+
</li>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
</ul>
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
<div id="instance_method_details" class="method_details_list">
|
|
152
|
+
<h2>Instance Method Details</h2>
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
<div class="method_details first">
|
|
156
|
+
<h3 class="signature first" id="as_jsonapi-instance_method">
|
|
157
|
+
|
|
158
|
+
#<strong>as_jsonapi</strong> ⇒ <tt>Object</tt>
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
</h3><div class="docstring">
|
|
165
|
+
<div class="discussion">
|
|
166
|
+
|
|
167
|
+
<p>Common interface for jsonapi-rb extensions</p>
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
<div class="tags">
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
</div><table class="source_code">
|
|
176
|
+
<tr>
|
|
177
|
+
<td>
|
|
178
|
+
<pre class="lines">
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
14
|
|
182
|
+
15
|
|
183
|
+
16
|
|
184
|
+
17
|
|
185
|
+
18
|
|
186
|
+
19
|
|
187
|
+
20</pre>
|
|
188
|
+
</td>
|
|
189
|
+
<td>
|
|
190
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/extensions/temp_id.rb', line 14</span>
|
|
191
|
+
|
|
192
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_as_jsonapi'>as_jsonapi</span><span class='lparen'>(</span><span class='op'>*</span><span class='rparen'>)</span>
|
|
193
|
+
<span class='kw'>super</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>
|
|
194
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_temp_id'>temp_id</span> <span class='op'>=</span> <span class='ivar'>@object</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_get'>instance_variable_get</span><span class='lparen'>(</span><span class='symbol'>:@_jsonapi_temp_id</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
|
195
|
+
<span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:temp-id</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_temp_id'>temp_id</span>
|
|
196
|
+
<span class='kw'>end</span>
|
|
197
|
+
<span class='kw'>end</span>
|
|
198
|
+
<span class='kw'>end</span></pre>
|
|
199
|
+
</td>
|
|
200
|
+
</tr>
|
|
201
|
+
</table>
|
|
202
|
+
</div>
|
|
203
|
+
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<div id="footer">
|
|
209
|
+
Generated on Fri May 5 15:53:21 2017 by
|
|
210
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
211
|
+
0.9.9 (ruby-2.3.0).
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
</div>
|
|
215
|
+
</body>
|
|
216
|
+
</html>
|
|
@@ -0,0 +1,2484 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Class: JsonapiCompliable::Sideload
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.9
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
|
18
|
+
pathId = "JsonapiCompliable::Sideload";
|
|
19
|
+
relpath = '../';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="nav_wrap">
|
|
31
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
|
32
|
+
<div id="resizer"></div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div id="main" tabindex="-1">
|
|
36
|
+
<div id="header">
|
|
37
|
+
<div id="menu">
|
|
38
|
+
|
|
39
|
+
<a href="../_index.html">Index (S)</a> »
|
|
40
|
+
<span class='title'><span class='object_link'><a href="../JsonapiCompliable.html" title="JsonapiCompliable (module)">JsonapiCompliable</a></span></span>
|
|
41
|
+
»
|
|
42
|
+
<span class="title">Sideload</span>
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<div id="search">
|
|
47
|
+
|
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
|
49
|
+
href="../class_list.html">
|
|
50
|
+
|
|
51
|
+
<svg width="24" height="24">
|
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
</svg>
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
</div>
|
|
59
|
+
<div class="clear"></div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div id="content"><h1>Class: JsonapiCompliable::Sideload
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
</h1>
|
|
67
|
+
<div class="box_info">
|
|
68
|
+
|
|
69
|
+
<dl>
|
|
70
|
+
<dt>Inherits:</dt>
|
|
71
|
+
<dd>
|
|
72
|
+
<span class="inheritName">Object</span>
|
|
73
|
+
|
|
74
|
+
<ul class="fullTree">
|
|
75
|
+
<li>Object</li>
|
|
76
|
+
|
|
77
|
+
<li class="next">JsonapiCompliable::Sideload</li>
|
|
78
|
+
|
|
79
|
+
</ul>
|
|
80
|
+
<a href="#" class="inheritanceTree">show all</a>
|
|
81
|
+
|
|
82
|
+
</dd>
|
|
83
|
+
</dl>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
<dl>
|
|
96
|
+
<dt>Defined in:</dt>
|
|
97
|
+
<dd>lib/jsonapi_compliable/sideload.rb</dd>
|
|
98
|
+
</dl>
|
|
99
|
+
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
|
|
107
|
+
<ul class="summary">
|
|
108
|
+
|
|
109
|
+
<li class="public ">
|
|
110
|
+
<span class="summary_signature">
|
|
111
|
+
|
|
112
|
+
<a href="#assign_proc-instance_method" title="#assign_proc (instance method)">#<strong>assign_proc</strong> ⇒ Proc </a>
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
</span>
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
<span class="note title readonly">readonly</span>
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
<span class="summary_desc"><div class='inline'>
|
|
132
|
+
<p>The configured 'assign' block.</p>
|
|
133
|
+
</div></span>
|
|
134
|
+
|
|
135
|
+
</li>
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
<li class="public ">
|
|
139
|
+
<span class="summary_signature">
|
|
140
|
+
|
|
141
|
+
<a href="#foreign_key-instance_method" title="#foreign_key (instance method)">#<strong>foreign_key</strong> ⇒ Symbol </a>
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
</span>
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
<span class="note title readonly">readonly</span>
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
<span class="summary_desc"><div class='inline'>
|
|
161
|
+
<p>The attribute used to match objects - need not be a true database foreign
|
|
162
|
+
key.</p>
|
|
163
|
+
</div></span>
|
|
164
|
+
|
|
165
|
+
</li>
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
<li class="public ">
|
|
169
|
+
<span class="summary_signature">
|
|
170
|
+
|
|
171
|
+
<a href="#grouper-instance_method" title="#grouper (instance method)">#<strong>grouper</strong> ⇒ Proc </a>
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
</span>
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
<span class="note title readonly">readonly</span>
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
<span class="summary_desc"><div class='inline'>
|
|
191
|
+
<p>The configured 'group_by' proc.</p>
|
|
192
|
+
</div></span>
|
|
193
|
+
|
|
194
|
+
</li>
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
<li class="public ">
|
|
198
|
+
<span class="summary_signature">
|
|
199
|
+
|
|
200
|
+
<a href="#name-instance_method" title="#name (instance method)">#<strong>name</strong> ⇒ Symbol </a>
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
</span>
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
<span class="note title readonly">readonly</span>
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
<span class="summary_desc"><div class='inline'>
|
|
220
|
+
<p>The name of the sideload.</p>
|
|
221
|
+
</div></span>
|
|
222
|
+
|
|
223
|
+
</li>
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
<li class="public ">
|
|
227
|
+
<span class="summary_signature">
|
|
228
|
+
|
|
229
|
+
<a href="#polymorphic-instance_method" title="#polymorphic (instance method)">#<strong>polymorphic</strong> ⇒ Boolean </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>Is this a polymorphic sideload?.</p>
|
|
250
|
+
</div></span>
|
|
251
|
+
|
|
252
|
+
</li>
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
<li class="public ">
|
|
256
|
+
<span class="summary_signature">
|
|
257
|
+
|
|
258
|
+
<a href="#polymorphic_groups-instance_method" title="#polymorphic_groups (instance method)">#<strong>polymorphic_groups</strong> ⇒ Hash </a>
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
</span>
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
<span class="note title readonly">readonly</span>
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
<span class="summary_desc"><div class='inline'>
|
|
278
|
+
<p>The subgroups, when polymorphic.</p>
|
|
279
|
+
</div></span>
|
|
280
|
+
|
|
281
|
+
</li>
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
<li class="public ">
|
|
285
|
+
<span class="summary_signature">
|
|
286
|
+
|
|
287
|
+
<a href="#primary_key-instance_method" title="#primary_key (instance method)">#<strong>primary_key</strong> ⇒ Symbol </a>
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
</span>
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
<span class="note title readonly">readonly</span>
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
<span class="summary_desc"><div class='inline'>
|
|
307
|
+
<p>The attribute used to match objects - need not be a true database primary
|
|
308
|
+
key.</p>
|
|
309
|
+
</div></span>
|
|
310
|
+
|
|
311
|
+
</li>
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
<li class="public ">
|
|
315
|
+
<span class="summary_signature">
|
|
316
|
+
|
|
317
|
+
<a href="#resource_class-instance_method" title="#resource_class (instance method)">#<strong>resource_class</strong> ⇒ Class </a>
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
</span>
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
<span class="note title readonly">readonly</span>
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
<span class="summary_desc"><div class='inline'>
|
|
337
|
+
<p>The corresponding Resource class.</p>
|
|
338
|
+
</div></span>
|
|
339
|
+
|
|
340
|
+
</li>
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
<li class="public ">
|
|
344
|
+
<span class="summary_signature">
|
|
345
|
+
|
|
346
|
+
<a href="#scope_proc-instance_method" title="#scope_proc (instance method)">#<strong>scope_proc</strong> ⇒ Proc </a>
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
</span>
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
<span class="note title readonly">readonly</span>
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
<span class="summary_desc"><div class='inline'>
|
|
366
|
+
<p>The configured 'scope' block.</p>
|
|
367
|
+
</div></span>
|
|
368
|
+
|
|
369
|
+
</li>
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
<li class="public ">
|
|
373
|
+
<span class="summary_signature">
|
|
374
|
+
|
|
375
|
+
<a href="#sideloads-instance_method" title="#sideloads (instance method)">#<strong>sideloads</strong> ⇒ Hash </a>
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
</span>
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
<span class="note title readonly">readonly</span>
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
<span class="summary_desc"><div class='inline'>
|
|
395
|
+
<p>The associated sibling sideloads.</p>
|
|
396
|
+
</div></span>
|
|
397
|
+
|
|
398
|
+
</li>
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
<li class="public ">
|
|
402
|
+
<span class="summary_signature">
|
|
403
|
+
|
|
404
|
+
<a href="#type-instance_method" title="#type (instance method)">#<strong>type</strong> ⇒ Symbol </a>
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
</span>
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
<span class="note title readonly">readonly</span>
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
<span class="summary_desc"><div class='inline'>
|
|
424
|
+
<p>One of :has_many, :belongs_to, etc.</p>
|
|
425
|
+
</div></span>
|
|
426
|
+
|
|
427
|
+
</li>
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
</ul>
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
<h2>
|
|
437
|
+
Instance Method Summary
|
|
438
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
|
439
|
+
</h2>
|
|
440
|
+
|
|
441
|
+
<ul class="summary">
|
|
442
|
+
|
|
443
|
+
<li class="public ">
|
|
444
|
+
<span class="summary_signature">
|
|
445
|
+
|
|
446
|
+
<a href="#allow_sideload-instance_method" title="#allow_sideload (instance method)">#<strong>allow_sideload</strong>(name, opts = {}, &blk) ⇒ Object </a>
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
</span>
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
<span class="summary_desc"><div class='inline'>
|
|
461
|
+
<p>Configure a relationship between Resource objects.</p>
|
|
462
|
+
</div></span>
|
|
463
|
+
|
|
464
|
+
</li>
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
<li class="public ">
|
|
468
|
+
<span class="summary_signature">
|
|
469
|
+
|
|
470
|
+
<a href="#assign-instance_method" title="#assign (instance method)">#<strong>assign</strong> {|parents, children| ... } ⇒ Object </a>
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
</span>
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
<span class="summary_desc"><div class='inline'>
|
|
485
|
+
<p>The proc used to assign the resolved parents and children.</p>
|
|
486
|
+
</div></span>
|
|
487
|
+
|
|
488
|
+
</li>
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
<li class="public ">
|
|
492
|
+
<span class="summary_signature">
|
|
493
|
+
|
|
494
|
+
<a href="#associate-instance_method" title="#associate (instance method)">#<strong>associate</strong>(parent, child) ⇒ Object </a>
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
</span>
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
<span class="summary_desc"><div class='inline'>
|
|
509
|
+
<p>Configure how to associate parent and child records.</p>
|
|
510
|
+
</div></span>
|
|
511
|
+
|
|
512
|
+
</li>
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
<li class="public ">
|
|
516
|
+
<span class="summary_signature">
|
|
517
|
+
|
|
518
|
+
<a href="#group_by-instance_method" title="#group_by (instance method)">#<strong>group_by</strong>(&grouper) ⇒ Object </a>
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
</span>
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
<span class="summary_desc"><div class='inline'>
|
|
533
|
+
<p>Define a proc that groups the parent records.</p>
|
|
534
|
+
</div></span>
|
|
535
|
+
|
|
536
|
+
</li>
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
<li class="public ">
|
|
540
|
+
<span class="summary_signature">
|
|
541
|
+
|
|
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) ⇒ Sideload </a>
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
</span>
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
<span class="note title constructor">constructor</span>
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
<span class="summary_desc"><div class='inline'>
|
|
559
|
+
<p>NB - the adapter's <code>#sideloading_module</code> is mixed in on
|
|
560
|
+
instantiation.</p>
|
|
561
|
+
</div></span>
|
|
562
|
+
|
|
563
|
+
</li>
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
<li class="public ">
|
|
567
|
+
<span class="summary_signature">
|
|
568
|
+
|
|
569
|
+
<a href="#polymorphic%3F-instance_method" title="#polymorphic? (instance method)">#<strong>polymorphic?</strong> ⇒ Boolean </a>
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
|
|
573
|
+
</span>
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
<span class="summary_desc"><div class='inline'>
|
|
584
|
+
<p>Is this sideload polymorphic?.</p>
|
|
585
|
+
</div></span>
|
|
586
|
+
|
|
587
|
+
</li>
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
<li class="public ">
|
|
591
|
+
<span class="summary_signature">
|
|
592
|
+
|
|
593
|
+
<a href="#resolve-instance_method" title="#resolve (instance method)">#<strong>resolve</strong>(parents, query, namespace = nil) ⇒ void </a>
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
</span>
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
<span class="private note title">private</span>
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
<span class="summary_desc"><div class='inline'>
|
|
608
|
+
<p>Resolve the sideload.</p>
|
|
609
|
+
</div></span>
|
|
610
|
+
|
|
611
|
+
</li>
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
<li class="public ">
|
|
615
|
+
<span class="summary_signature">
|
|
616
|
+
|
|
617
|
+
<a href="#resource-instance_method" title="#resource (instance method)">#<strong>resource</strong> ⇒ Resource </a>
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
</span>
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
<span class="summary_desc"><div class='inline'>
|
|
632
|
+
<p>An instance of <code>#resource_class</code>.</p>
|
|
633
|
+
</div></span>
|
|
634
|
+
|
|
635
|
+
</li>
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
<li class="public ">
|
|
639
|
+
<span class="summary_signature">
|
|
640
|
+
|
|
641
|
+
<a href="#scope-instance_method" title="#scope (instance method)">#<strong>scope</strong> {|parents| ... } ⇒ Object </a>
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
</span>
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
<span class="summary_desc"><div class='inline'>
|
|
656
|
+
<p>Build a scope that will be used to fetch the related records This scope
|
|
657
|
+
will be further chained with filtering/sorting/etc.</p>
|
|
658
|
+
</div></span>
|
|
659
|
+
|
|
660
|
+
</li>
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
<li class="public ">
|
|
664
|
+
<span class="summary_signature">
|
|
665
|
+
|
|
666
|
+
<a href="#sideload-instance_method" title="#sideload (instance method)">#<strong>sideload</strong>(name) ⇒ Object </a>
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
</span>
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
<span class="summary_desc"><div class='inline'>
|
|
681
|
+
<p>Fetch a Sideload object by its name.</p>
|
|
682
|
+
</div></span>
|
|
683
|
+
|
|
684
|
+
</li>
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
<li class="public ">
|
|
688
|
+
<span class="summary_signature">
|
|
689
|
+
|
|
690
|
+
<a href="#to_hash-instance_method" title="#to_hash (instance method)">#<strong>to_hash</strong>(processed = []) ⇒ Hash </a>
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
</span>
|
|
695
|
+
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
<span class="private note title">private</span>
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
<span class="summary_desc"><div class='inline'>
|
|
705
|
+
<p>Looks at all nested sideload, and all nested sideloads for the
|
|
706
|
+
corresponding Resources, and returns an Include Directive hash.</p>
|
|
707
|
+
</div></span>
|
|
708
|
+
|
|
709
|
+
</li>
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
</ul>
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
<div id="constructor_details" class="method_details_list">
|
|
716
|
+
<h2>Constructor Details</h2>
|
|
717
|
+
|
|
718
|
+
<div class="method_details first">
|
|
719
|
+
<h3 class="signature first" id="initialize-instance_method">
|
|
720
|
+
|
|
721
|
+
#<strong>initialize</strong>(name, type: nil, resource: nil, polymorphic: false, primary_key: :id, foreign_key: nil) ⇒ <tt><span class='object_link'><a href="" title="JsonapiCompliable::Sideload (class)">Sideload</a></span></tt>
|
|
722
|
+
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
</h3><div class="docstring">
|
|
728
|
+
<div class="discussion">
|
|
729
|
+
|
|
730
|
+
<p>NB - the adapter's <code>#sideloading_module</code> is mixed in on
|
|
731
|
+
instantiation</p>
|
|
732
|
+
|
|
733
|
+
<p>An anonymous Resource will be assigned when none provided.</p>
|
|
734
|
+
|
|
735
|
+
|
|
736
|
+
</div>
|
|
737
|
+
</div>
|
|
738
|
+
<div class="tags">
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
<p class="tag_title">See Also:</p>
|
|
742
|
+
<ul class="see">
|
|
743
|
+
|
|
744
|
+
<li><span class='object_link'><a href="Adapters/Abstract.html#sideloading_module-instance_method" title="JsonapiCompliable::Adapters::Abstract#sideloading_module (method)">Adapters::Abstract#sideloading_module</a></span></li>
|
|
745
|
+
|
|
746
|
+
</ul>
|
|
747
|
+
|
|
748
|
+
</div><table class="source_code">
|
|
749
|
+
<tr>
|
|
750
|
+
<td>
|
|
751
|
+
<pre class="lines">
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
31
|
|
755
|
+
32
|
|
756
|
+
33
|
|
757
|
+
34
|
|
758
|
+
35
|
|
759
|
+
36
|
|
760
|
+
37
|
|
761
|
+
38
|
|
762
|
+
39
|
|
763
|
+
40
|
|
764
|
+
41
|
|
765
|
+
42</pre>
|
|
766
|
+
</td>
|
|
767
|
+
<td>
|
|
768
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 31</span>
|
|
769
|
+
|
|
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>
|
|
771
|
+
<span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
|
|
772
|
+
<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
|
+
<span class='ivar'>@sideloads</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
|
774
|
+
<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
|
+
<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>
|
|
776
|
+
<span class='ivar'>@primary_key</span> <span class='op'>=</span> <span class='id identifier rubyid_primary_key'>primary_key</span>
|
|
777
|
+
<span class='ivar'>@foreign_key</span> <span class='op'>=</span> <span class='id identifier rubyid_foreign_key'>foreign_key</span>
|
|
778
|
+
<span class='ivar'>@type</span> <span class='op'>=</span> <span class='id identifier rubyid_type'>type</span>
|
|
779
|
+
|
|
780
|
+
<span class='id identifier rubyid_extend'>extend</span> <span class='ivar'>@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_sideloading_module'>sideloading_module</span>
|
|
781
|
+
<span class='kw'>end</span></pre>
|
|
782
|
+
</td>
|
|
783
|
+
</tr>
|
|
784
|
+
</table>
|
|
785
|
+
</div>
|
|
786
|
+
|
|
787
|
+
</div>
|
|
788
|
+
|
|
789
|
+
<div id="instance_attr_details" class="attr_details">
|
|
790
|
+
<h2>Instance Attribute Details</h2>
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
<span id=""></span>
|
|
794
|
+
<div class="method_details first">
|
|
795
|
+
<h3 class="signature first" id="assign_proc-instance_method">
|
|
796
|
+
|
|
797
|
+
#<strong>assign_proc</strong> ⇒ <tt>Proc</tt> <span class="extras">(readonly)</span>
|
|
798
|
+
|
|
799
|
+
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
|
|
803
|
+
</h3><div class="docstring">
|
|
804
|
+
<div class="discussion">
|
|
805
|
+
|
|
806
|
+
<p>The configured 'assign' block</p>
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
</div>
|
|
810
|
+
</div>
|
|
811
|
+
<div class="tags">
|
|
812
|
+
|
|
813
|
+
<p class="tag_title">Returns:</p>
|
|
814
|
+
<ul class="return">
|
|
815
|
+
|
|
816
|
+
<li>
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
<span class='type'>(<tt>Proc</tt>)</span>
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
|
|
823
|
+
—
|
|
824
|
+
<div class='inline'>
|
|
825
|
+
<p>the current value of assign_proc</p>
|
|
826
|
+
</div>
|
|
827
|
+
|
|
828
|
+
</li>
|
|
829
|
+
|
|
830
|
+
</ul>
|
|
831
|
+
|
|
832
|
+
</div><table class="source_code">
|
|
833
|
+
<tr>
|
|
834
|
+
<td>
|
|
835
|
+
<pre class="lines">
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
13
|
|
839
|
+
14
|
|
840
|
+
15</pre>
|
|
841
|
+
</td>
|
|
842
|
+
<td>
|
|
843
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
844
|
+
|
|
845
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_assign_proc'>assign_proc</span>
|
|
846
|
+
<span class='ivar'>@assign_proc</span>
|
|
847
|
+
<span class='kw'>end</span></pre>
|
|
848
|
+
</td>
|
|
849
|
+
</tr>
|
|
850
|
+
</table>
|
|
851
|
+
</div>
|
|
852
|
+
|
|
853
|
+
|
|
854
|
+
<span id=""></span>
|
|
855
|
+
<div class="method_details ">
|
|
856
|
+
<h3 class="signature " id="foreign_key-instance_method">
|
|
857
|
+
|
|
858
|
+
#<strong>foreign_key</strong> ⇒ <tt>Symbol</tt> <span class="extras">(readonly)</span>
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
</h3><div class="docstring">
|
|
865
|
+
<div class="discussion">
|
|
866
|
+
|
|
867
|
+
<p>The attribute used to match objects - need not be a true database foreign
|
|
868
|
+
key.</p>
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
</div>
|
|
872
|
+
</div>
|
|
873
|
+
<div class="tags">
|
|
874
|
+
|
|
875
|
+
<p class="tag_title">Returns:</p>
|
|
876
|
+
<ul class="return">
|
|
877
|
+
|
|
878
|
+
<li>
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
|
|
885
|
+
—
|
|
886
|
+
<div class='inline'>
|
|
887
|
+
<p>the current value of foreign_key</p>
|
|
888
|
+
</div>
|
|
889
|
+
|
|
890
|
+
</li>
|
|
891
|
+
|
|
892
|
+
</ul>
|
|
893
|
+
|
|
894
|
+
</div><table class="source_code">
|
|
895
|
+
<tr>
|
|
896
|
+
<td>
|
|
897
|
+
<pre class="lines">
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
13
|
|
901
|
+
14
|
|
902
|
+
15</pre>
|
|
903
|
+
</td>
|
|
904
|
+
<td>
|
|
905
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
906
|
+
|
|
907
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_foreign_key'>foreign_key</span>
|
|
908
|
+
<span class='ivar'>@foreign_key</span>
|
|
909
|
+
<span class='kw'>end</span></pre>
|
|
910
|
+
</td>
|
|
911
|
+
</tr>
|
|
912
|
+
</table>
|
|
913
|
+
</div>
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
<span id=""></span>
|
|
917
|
+
<div class="method_details ">
|
|
918
|
+
<h3 class="signature " id="grouper-instance_method">
|
|
919
|
+
|
|
920
|
+
#<strong>grouper</strong> ⇒ <tt>Proc</tt> <span class="extras">(readonly)</span>
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
</h3><div class="docstring">
|
|
927
|
+
<div class="discussion">
|
|
928
|
+
|
|
929
|
+
<p>The configured 'group_by' proc</p>
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
</div>
|
|
933
|
+
</div>
|
|
934
|
+
<div class="tags">
|
|
935
|
+
|
|
936
|
+
<p class="tag_title">Returns:</p>
|
|
937
|
+
<ul class="return">
|
|
938
|
+
|
|
939
|
+
<li>
|
|
940
|
+
|
|
941
|
+
|
|
942
|
+
<span class='type'>(<tt>Proc</tt>)</span>
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
—
|
|
947
|
+
<div class='inline'>
|
|
948
|
+
<p>the current value of grouper</p>
|
|
949
|
+
</div>
|
|
950
|
+
|
|
951
|
+
</li>
|
|
952
|
+
|
|
953
|
+
</ul>
|
|
954
|
+
|
|
955
|
+
</div><table class="source_code">
|
|
956
|
+
<tr>
|
|
957
|
+
<td>
|
|
958
|
+
<pre class="lines">
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
13
|
|
962
|
+
14
|
|
963
|
+
15</pre>
|
|
964
|
+
</td>
|
|
965
|
+
<td>
|
|
966
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
967
|
+
|
|
968
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_grouper'>grouper</span>
|
|
969
|
+
<span class='ivar'>@grouper</span>
|
|
970
|
+
<span class='kw'>end</span></pre>
|
|
971
|
+
</td>
|
|
972
|
+
</tr>
|
|
973
|
+
</table>
|
|
974
|
+
</div>
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
<span id=""></span>
|
|
978
|
+
<div class="method_details ">
|
|
979
|
+
<h3 class="signature " id="name-instance_method">
|
|
980
|
+
|
|
981
|
+
#<strong>name</strong> ⇒ <tt>Symbol</tt> <span class="extras">(readonly)</span>
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
</h3><div class="docstring">
|
|
988
|
+
<div class="discussion">
|
|
989
|
+
|
|
990
|
+
<p>The name of the sideload</p>
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
</div>
|
|
994
|
+
</div>
|
|
995
|
+
<div class="tags">
|
|
996
|
+
|
|
997
|
+
<p class="tag_title">Returns:</p>
|
|
998
|
+
<ul class="return">
|
|
999
|
+
|
|
1000
|
+
<li>
|
|
1001
|
+
|
|
1002
|
+
|
|
1003
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
1004
|
+
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
—
|
|
1008
|
+
<div class='inline'>
|
|
1009
|
+
<p>the current value of name</p>
|
|
1010
|
+
</div>
|
|
1011
|
+
|
|
1012
|
+
</li>
|
|
1013
|
+
|
|
1014
|
+
</ul>
|
|
1015
|
+
|
|
1016
|
+
</div><table class="source_code">
|
|
1017
|
+
<tr>
|
|
1018
|
+
<td>
|
|
1019
|
+
<pre class="lines">
|
|
1020
|
+
|
|
1021
|
+
|
|
1022
|
+
13
|
|
1023
|
+
14
|
|
1024
|
+
15</pre>
|
|
1025
|
+
</td>
|
|
1026
|
+
<td>
|
|
1027
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1028
|
+
|
|
1029
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
|
|
1030
|
+
<span class='ivar'>@name</span>
|
|
1031
|
+
<span class='kw'>end</span></pre>
|
|
1032
|
+
</td>
|
|
1033
|
+
</tr>
|
|
1034
|
+
</table>
|
|
1035
|
+
</div>
|
|
1036
|
+
|
|
1037
|
+
|
|
1038
|
+
<span id=""></span>
|
|
1039
|
+
<div class="method_details ">
|
|
1040
|
+
<h3 class="signature " id="polymorphic-instance_method">
|
|
1041
|
+
|
|
1042
|
+
#<strong>polymorphic</strong> ⇒ <tt>Boolean</tt> <span class="extras">(readonly)</span>
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
</h3><div class="docstring">
|
|
1049
|
+
<div class="discussion">
|
|
1050
|
+
|
|
1051
|
+
<p>Is this a polymorphic sideload?</p>
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
</div>
|
|
1055
|
+
</div>
|
|
1056
|
+
<div class="tags">
|
|
1057
|
+
|
|
1058
|
+
<p class="tag_title">Returns:</p>
|
|
1059
|
+
<ul class="return">
|
|
1060
|
+
|
|
1061
|
+
<li>
|
|
1062
|
+
|
|
1063
|
+
|
|
1064
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
|
|
1068
|
+
—
|
|
1069
|
+
<div class='inline'>
|
|
1070
|
+
<p>the current value of polymorphic</p>
|
|
1071
|
+
</div>
|
|
1072
|
+
|
|
1073
|
+
</li>
|
|
1074
|
+
|
|
1075
|
+
</ul>
|
|
1076
|
+
|
|
1077
|
+
</div><table class="source_code">
|
|
1078
|
+
<tr>
|
|
1079
|
+
<td>
|
|
1080
|
+
<pre class="lines">
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
13
|
|
1084
|
+
14
|
|
1085
|
+
15</pre>
|
|
1086
|
+
</td>
|
|
1087
|
+
<td>
|
|
1088
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1089
|
+
|
|
1090
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_polymorphic'>polymorphic</span>
|
|
1091
|
+
<span class='ivar'>@polymorphic</span>
|
|
1092
|
+
<span class='kw'>end</span></pre>
|
|
1093
|
+
</td>
|
|
1094
|
+
</tr>
|
|
1095
|
+
</table>
|
|
1096
|
+
</div>
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
<span id=""></span>
|
|
1100
|
+
<div class="method_details ">
|
|
1101
|
+
<h3 class="signature " id="polymorphic_groups-instance_method">
|
|
1102
|
+
|
|
1103
|
+
#<strong>polymorphic_groups</strong> ⇒ <tt>Hash</tt> <span class="extras">(readonly)</span>
|
|
1104
|
+
|
|
1105
|
+
|
|
1106
|
+
|
|
1107
|
+
|
|
1108
|
+
|
|
1109
|
+
</h3><div class="docstring">
|
|
1110
|
+
<div class="discussion">
|
|
1111
|
+
|
|
1112
|
+
<p>The subgroups, when polymorphic</p>
|
|
1113
|
+
|
|
1114
|
+
|
|
1115
|
+
</div>
|
|
1116
|
+
</div>
|
|
1117
|
+
<div class="tags">
|
|
1118
|
+
|
|
1119
|
+
<p class="tag_title">Returns:</p>
|
|
1120
|
+
<ul class="return">
|
|
1121
|
+
|
|
1122
|
+
<li>
|
|
1123
|
+
|
|
1124
|
+
|
|
1125
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
|
|
1129
|
+
—
|
|
1130
|
+
<div class='inline'>
|
|
1131
|
+
<p>the current value of polymorphic_groups</p>
|
|
1132
|
+
</div>
|
|
1133
|
+
|
|
1134
|
+
</li>
|
|
1135
|
+
|
|
1136
|
+
</ul>
|
|
1137
|
+
|
|
1138
|
+
</div><table class="source_code">
|
|
1139
|
+
<tr>
|
|
1140
|
+
<td>
|
|
1141
|
+
<pre class="lines">
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
13
|
|
1145
|
+
14
|
|
1146
|
+
15</pre>
|
|
1147
|
+
</td>
|
|
1148
|
+
<td>
|
|
1149
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1150
|
+
|
|
1151
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_polymorphic_groups'>polymorphic_groups</span>
|
|
1152
|
+
<span class='ivar'>@polymorphic_groups</span>
|
|
1153
|
+
<span class='kw'>end</span></pre>
|
|
1154
|
+
</td>
|
|
1155
|
+
</tr>
|
|
1156
|
+
</table>
|
|
1157
|
+
</div>
|
|
1158
|
+
|
|
1159
|
+
|
|
1160
|
+
<span id=""></span>
|
|
1161
|
+
<div class="method_details ">
|
|
1162
|
+
<h3 class="signature " id="primary_key-instance_method">
|
|
1163
|
+
|
|
1164
|
+
#<strong>primary_key</strong> ⇒ <tt>Symbol</tt> <span class="extras">(readonly)</span>
|
|
1165
|
+
|
|
1166
|
+
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
</h3><div class="docstring">
|
|
1171
|
+
<div class="discussion">
|
|
1172
|
+
|
|
1173
|
+
<p>The attribute used to match objects - need not be a true database primary
|
|
1174
|
+
key.</p>
|
|
1175
|
+
|
|
1176
|
+
|
|
1177
|
+
</div>
|
|
1178
|
+
</div>
|
|
1179
|
+
<div class="tags">
|
|
1180
|
+
|
|
1181
|
+
<p class="tag_title">Returns:</p>
|
|
1182
|
+
<ul class="return">
|
|
1183
|
+
|
|
1184
|
+
<li>
|
|
1185
|
+
|
|
1186
|
+
|
|
1187
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
—
|
|
1192
|
+
<div class='inline'>
|
|
1193
|
+
<p>the current value of primary_key</p>
|
|
1194
|
+
</div>
|
|
1195
|
+
|
|
1196
|
+
</li>
|
|
1197
|
+
|
|
1198
|
+
</ul>
|
|
1199
|
+
|
|
1200
|
+
</div><table class="source_code">
|
|
1201
|
+
<tr>
|
|
1202
|
+
<td>
|
|
1203
|
+
<pre class="lines">
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
13
|
|
1207
|
+
14
|
|
1208
|
+
15</pre>
|
|
1209
|
+
</td>
|
|
1210
|
+
<td>
|
|
1211
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1212
|
+
|
|
1213
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_primary_key'>primary_key</span>
|
|
1214
|
+
<span class='ivar'>@primary_key</span>
|
|
1215
|
+
<span class='kw'>end</span></pre>
|
|
1216
|
+
</td>
|
|
1217
|
+
</tr>
|
|
1218
|
+
</table>
|
|
1219
|
+
</div>
|
|
1220
|
+
|
|
1221
|
+
|
|
1222
|
+
<span id=""></span>
|
|
1223
|
+
<div class="method_details ">
|
|
1224
|
+
<h3 class="signature " id="resource_class-instance_method">
|
|
1225
|
+
|
|
1226
|
+
#<strong>resource_class</strong> ⇒ <tt>Class</tt> <span class="extras">(readonly)</span>
|
|
1227
|
+
|
|
1228
|
+
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
</h3><div class="docstring">
|
|
1233
|
+
<div class="discussion">
|
|
1234
|
+
|
|
1235
|
+
<p>The corresponding Resource class</p>
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
</div>
|
|
1239
|
+
</div>
|
|
1240
|
+
<div class="tags">
|
|
1241
|
+
|
|
1242
|
+
<p class="tag_title">Returns:</p>
|
|
1243
|
+
<ul class="return">
|
|
1244
|
+
|
|
1245
|
+
<li>
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
<span class='type'>(<tt>Class</tt>)</span>
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
—
|
|
1253
|
+
<div class='inline'>
|
|
1254
|
+
<p>the current value of resource_class</p>
|
|
1255
|
+
</div>
|
|
1256
|
+
|
|
1257
|
+
</li>
|
|
1258
|
+
|
|
1259
|
+
</ul>
|
|
1260
|
+
|
|
1261
|
+
</div><table class="source_code">
|
|
1262
|
+
<tr>
|
|
1263
|
+
<td>
|
|
1264
|
+
<pre class="lines">
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
13
|
|
1268
|
+
14
|
|
1269
|
+
15</pre>
|
|
1270
|
+
</td>
|
|
1271
|
+
<td>
|
|
1272
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1273
|
+
|
|
1274
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_resource_class'>resource_class</span>
|
|
1275
|
+
<span class='ivar'>@resource_class</span>
|
|
1276
|
+
<span class='kw'>end</span></pre>
|
|
1277
|
+
</td>
|
|
1278
|
+
</tr>
|
|
1279
|
+
</table>
|
|
1280
|
+
</div>
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
<span id=""></span>
|
|
1284
|
+
<div class="method_details ">
|
|
1285
|
+
<h3 class="signature " id="scope_proc-instance_method">
|
|
1286
|
+
|
|
1287
|
+
#<strong>scope_proc</strong> ⇒ <tt>Proc</tt> <span class="extras">(readonly)</span>
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
|
|
1293
|
+
</h3><div class="docstring">
|
|
1294
|
+
<div class="discussion">
|
|
1295
|
+
|
|
1296
|
+
<p>The configured 'scope' block</p>
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
</div>
|
|
1300
|
+
</div>
|
|
1301
|
+
<div class="tags">
|
|
1302
|
+
|
|
1303
|
+
<p class="tag_title">Returns:</p>
|
|
1304
|
+
<ul class="return">
|
|
1305
|
+
|
|
1306
|
+
<li>
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
<span class='type'>(<tt>Proc</tt>)</span>
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
—
|
|
1314
|
+
<div class='inline'>
|
|
1315
|
+
<p>the current value of scope_proc</p>
|
|
1316
|
+
</div>
|
|
1317
|
+
|
|
1318
|
+
</li>
|
|
1319
|
+
|
|
1320
|
+
</ul>
|
|
1321
|
+
|
|
1322
|
+
</div><table class="source_code">
|
|
1323
|
+
<tr>
|
|
1324
|
+
<td>
|
|
1325
|
+
<pre class="lines">
|
|
1326
|
+
|
|
1327
|
+
|
|
1328
|
+
13
|
|
1329
|
+
14
|
|
1330
|
+
15</pre>
|
|
1331
|
+
</td>
|
|
1332
|
+
<td>
|
|
1333
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1334
|
+
|
|
1335
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_scope_proc'>scope_proc</span>
|
|
1336
|
+
<span class='ivar'>@scope_proc</span>
|
|
1337
|
+
<span class='kw'>end</span></pre>
|
|
1338
|
+
</td>
|
|
1339
|
+
</tr>
|
|
1340
|
+
</table>
|
|
1341
|
+
</div>
|
|
1342
|
+
|
|
1343
|
+
|
|
1344
|
+
<span id=""></span>
|
|
1345
|
+
<div class="method_details ">
|
|
1346
|
+
<h3 class="signature " id="sideloads-instance_method">
|
|
1347
|
+
|
|
1348
|
+
#<strong>sideloads</strong> ⇒ <tt>Hash</tt> <span class="extras">(readonly)</span>
|
|
1349
|
+
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
|
|
1353
|
+
|
|
1354
|
+
</h3><div class="docstring">
|
|
1355
|
+
<div class="discussion">
|
|
1356
|
+
|
|
1357
|
+
<p>The associated sibling sideloads</p>
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
</div>
|
|
1361
|
+
</div>
|
|
1362
|
+
<div class="tags">
|
|
1363
|
+
|
|
1364
|
+
<p class="tag_title">Returns:</p>
|
|
1365
|
+
<ul class="return">
|
|
1366
|
+
|
|
1367
|
+
<li>
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
|
|
1374
|
+
—
|
|
1375
|
+
<div class='inline'>
|
|
1376
|
+
<p>the current value of sideloads</p>
|
|
1377
|
+
</div>
|
|
1378
|
+
|
|
1379
|
+
</li>
|
|
1380
|
+
|
|
1381
|
+
</ul>
|
|
1382
|
+
|
|
1383
|
+
</div><table class="source_code">
|
|
1384
|
+
<tr>
|
|
1385
|
+
<td>
|
|
1386
|
+
<pre class="lines">
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
13
|
|
1390
|
+
14
|
|
1391
|
+
15</pre>
|
|
1392
|
+
</td>
|
|
1393
|
+
<td>
|
|
1394
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1395
|
+
|
|
1396
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_sideloads'>sideloads</span>
|
|
1397
|
+
<span class='ivar'>@sideloads</span>
|
|
1398
|
+
<span class='kw'>end</span></pre>
|
|
1399
|
+
</td>
|
|
1400
|
+
</tr>
|
|
1401
|
+
</table>
|
|
1402
|
+
</div>
|
|
1403
|
+
|
|
1404
|
+
|
|
1405
|
+
<span id=""></span>
|
|
1406
|
+
<div class="method_details ">
|
|
1407
|
+
<h3 class="signature " id="type-instance_method">
|
|
1408
|
+
|
|
1409
|
+
#<strong>type</strong> ⇒ <tt>Symbol</tt> <span class="extras">(readonly)</span>
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
</h3><div class="docstring">
|
|
1416
|
+
<div class="discussion">
|
|
1417
|
+
|
|
1418
|
+
<p>One of :has_many, :belongs_to, etc</p>
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
</div>
|
|
1422
|
+
</div>
|
|
1423
|
+
<div class="tags">
|
|
1424
|
+
|
|
1425
|
+
<p class="tag_title">Returns:</p>
|
|
1426
|
+
<ul class="return">
|
|
1427
|
+
|
|
1428
|
+
<li>
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
1432
|
+
|
|
1433
|
+
|
|
1434
|
+
|
|
1435
|
+
—
|
|
1436
|
+
<div class='inline'>
|
|
1437
|
+
<p>the current value of type</p>
|
|
1438
|
+
</div>
|
|
1439
|
+
|
|
1440
|
+
</li>
|
|
1441
|
+
|
|
1442
|
+
</ul>
|
|
1443
|
+
|
|
1444
|
+
</div><table class="source_code">
|
|
1445
|
+
<tr>
|
|
1446
|
+
<td>
|
|
1447
|
+
<pre class="lines">
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
13
|
|
1451
|
+
14
|
|
1452
|
+
15</pre>
|
|
1453
|
+
</td>
|
|
1454
|
+
<td>
|
|
1455
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 13</span>
|
|
1456
|
+
|
|
1457
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_type'>type</span>
|
|
1458
|
+
<span class='ivar'>@type</span>
|
|
1459
|
+
<span class='kw'>end</span></pre>
|
|
1460
|
+
</td>
|
|
1461
|
+
</tr>
|
|
1462
|
+
</table>
|
|
1463
|
+
</div>
|
|
1464
|
+
|
|
1465
|
+
</div>
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
<div id="instance_method_details" class="method_details_list">
|
|
1469
|
+
<h2>Instance Method Details</h2>
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
<div class="method_details first">
|
|
1473
|
+
<h3 class="signature first" id="allow_sideload-instance_method">
|
|
1474
|
+
|
|
1475
|
+
#<strong>allow_sideload</strong>(name, opts = {}, &blk) ⇒ <tt>Object</tt>
|
|
1476
|
+
|
|
1477
|
+
|
|
1478
|
+
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
</h3><div class="docstring">
|
|
1482
|
+
<div class="discussion">
|
|
1483
|
+
|
|
1484
|
+
<p>Configure a relationship between Resource objects</p>
|
|
1485
|
+
|
|
1486
|
+
<p>You probably want to extract this logic into an adapter rather than using
|
|
1487
|
+
directly</p>
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
</div>
|
|
1491
|
+
</div>
|
|
1492
|
+
<div class="tags">
|
|
1493
|
+
|
|
1494
|
+
<div class="examples">
|
|
1495
|
+
<p class="tag_title">Examples:</p>
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
<p class="example_title"><div class='inline'>
|
|
1499
|
+
<p>Default ActiveRecord</p>
|
|
1500
|
+
</div></p>
|
|
1501
|
+
|
|
1502
|
+
<pre class="example code"><code><span class='comment'># What happens 'under the hood'
|
|
1503
|
+
</span><span class='kw'>class</span> <span class='const'>CommentResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
1504
|
+
<span class='comment'># ... code ...
|
|
1505
|
+
</span> <span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:post</span><span class='comma'>,</span> <span class='label'>resource:</span> <span class='const'>PostResource</span> <span class='kw'>do</span>
|
|
1506
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_comments'>comments</span><span class='op'>|</span>
|
|
1507
|
+
<span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>id:</span> <span class='id identifier rubyid_comments'>comments</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:post_id</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
1508
|
+
<span class='kw'>end</span>
|
|
1509
|
+
|
|
1510
|
+
<span class='id identifier rubyid_assign'>assign</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_comments'>comments</span><span class='comma'>,</span> <span class='id identifier rubyid_posts'>posts</span><span class='op'>|</span>
|
|
1511
|
+
<span class='id identifier rubyid_comments'>comments</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_comment'>comment</span><span class='op'>|</span>
|
|
1512
|
+
<span class='id identifier rubyid_relevant_post'>relevant_post</span> <span class='op'>=</span> <span class='id identifier rubyid_posts'>posts</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span> <span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span> <span class='op'>==</span> <span class='id identifier rubyid_comment'>comment</span><span class='period'>.</span><span class='id identifier rubyid_post_id'>post_id</span> <span class='rbrace'>}</span>
|
|
1513
|
+
<span class='id identifier rubyid_comment'>comment</span><span class='period'>.</span><span class='id identifier rubyid_post'>post</span> <span class='op'>=</span> <span class='id identifier rubyid_relevant_post'>relevant_post</span>
|
|
1514
|
+
<span class='kw'>end</span>
|
|
1515
|
+
<span class='kw'>end</span>
|
|
1516
|
+
<span class='kw'>end</span>
|
|
1517
|
+
<span class='kw'>end</span>
|
|
1518
|
+
|
|
1519
|
+
<span class='comment'># Rather than writing that code directly, go through the adapter:
|
|
1520
|
+
</span><span class='kw'>class</span> <span class='const'>CommentResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
1521
|
+
<span class='comment'># ... code ...
|
|
1522
|
+
</span> <span class='id identifier rubyid_use_adapter'>use_adapter</span> <span class='const'><span class='object_link'><a href="../JsonapiCompliable.html" title="JsonapiCompliable (module)">JsonapiCompliable</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Adapters.html" title="JsonapiCompliable::Adapters (module)">Adapters</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Adapters/ActiveRecord.html" title="JsonapiCompliable::Adapters::ActiveRecord (class)">ActiveRecord</a></span></span>
|
|
1523
|
+
|
|
1524
|
+
<span class='id identifier rubyid_belongs_to'>belongs_to</span> <span class='symbol'>:post</span><span class='comma'>,</span>
|
|
1525
|
+
<span class='label'>scope:</span> <span class='tlambda'>-></span> <span class='tlambeg'>{</span> <span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
|
1526
|
+
<span class='label'>resource:</span> <span class='const'>PostResource</span><span class='comma'>,</span>
|
|
1527
|
+
<span class='label'>foreign_key:</span> <span class='symbol'>:post_id</span>
|
|
1528
|
+
<span class='kw'>end</span></code></pre>
|
|
1529
|
+
|
|
1530
|
+
</div>
|
|
1531
|
+
|
|
1532
|
+
<p class="tag_title">Returns:</p>
|
|
1533
|
+
<ul class="return">
|
|
1534
|
+
|
|
1535
|
+
<li>
|
|
1536
|
+
|
|
1537
|
+
|
|
1538
|
+
<span class='type'></span>
|
|
1539
|
+
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
<div class='inline'>
|
|
1544
|
+
<p>void</p>
|
|
1545
|
+
</div>
|
|
1546
|
+
|
|
1547
|
+
</li>
|
|
1548
|
+
|
|
1549
|
+
</ul>
|
|
1550
|
+
|
|
1551
|
+
<p class="tag_title">See Also:</p>
|
|
1552
|
+
<ul class="see">
|
|
1553
|
+
|
|
1554
|
+
<li><span class='object_link'><a href="Adapters/ActiveRecordSideloading.html#belongs_to-instance_method" title="JsonapiCompliable::Adapters::ActiveRecordSideloading#belongs_to (method)">Adapters::ActiveRecordSideloading#belongs_to</a></span></li>
|
|
1555
|
+
|
|
1556
|
+
<li><span class='object_link'><a href="#assign-instance_method" title="JsonapiCompliable::Sideload#assign (method)">#assign</a></span></li>
|
|
1557
|
+
|
|
1558
|
+
<li><span class='object_link'><a href="#scope-instance_method" title="JsonapiCompliable::Sideload#scope (method)">#scope</a></span></li>
|
|
1559
|
+
|
|
1560
|
+
</ul>
|
|
1561
|
+
|
|
1562
|
+
</div><table class="source_code">
|
|
1563
|
+
<tr>
|
|
1564
|
+
<td>
|
|
1565
|
+
<pre class="lines">
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
264
|
|
1569
|
+
265
|
|
1570
|
+
266
|
|
1571
|
+
267
|
|
1572
|
+
268
|
|
1573
|
+
269
|
|
1574
|
+
270
|
|
1575
|
+
271
|
|
1576
|
+
272
|
|
1577
|
+
273</pre>
|
|
1578
|
+
</td>
|
|
1579
|
+
<td>
|
|
1580
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 264</span>
|
|
1581
|
+
|
|
1582
|
+
<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'>&</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span>
|
|
1583
|
+
<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>
|
|
1584
|
+
<span class='id identifier rubyid_sideload'>sideload</span><span class='period'>.</span><span class='id identifier rubyid_instance_eval'>instance_eval</span><span class='lparen'>(</span><span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_blk'>blk</span>
|
|
1585
|
+
|
|
1586
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
|
|
1587
|
+
<span class='ivar'>@polymorphic_groups</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_sideload'>sideload</span>
|
|
1588
|
+
<span class='kw'>else</span>
|
|
1589
|
+
<span class='ivar'>@sideloads</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_sideload'>sideload</span>
|
|
1590
|
+
<span class='kw'>end</span>
|
|
1591
|
+
<span class='kw'>end</span></pre>
|
|
1592
|
+
</td>
|
|
1593
|
+
</tr>
|
|
1594
|
+
</table>
|
|
1595
|
+
</div>
|
|
1596
|
+
|
|
1597
|
+
<div class="method_details ">
|
|
1598
|
+
<h3 class="signature " id="assign-instance_method">
|
|
1599
|
+
|
|
1600
|
+
#<strong>assign</strong> {|parents, children| ... } ⇒ <tt>Object</tt>
|
|
1601
|
+
|
|
1602
|
+
|
|
1603
|
+
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
</h3><div class="docstring">
|
|
1607
|
+
<div class="discussion">
|
|
1608
|
+
|
|
1609
|
+
<p>The proc used to assign the resolved parents and children.</p>
|
|
1610
|
+
|
|
1611
|
+
<p>You probably want to wrap this logic in an Adapter, instead of specifying
|
|
1612
|
+
in your resource directly.</p>
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
</div>
|
|
1616
|
+
</div>
|
|
1617
|
+
<div class="tags">
|
|
1618
|
+
|
|
1619
|
+
<div class="examples">
|
|
1620
|
+
<p class="tag_title">Examples:</p>
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
<p class="example_title"><div class='inline'>
|
|
1624
|
+
<p>Default ActiveRecord</p>
|
|
1625
|
+
</div></p>
|
|
1626
|
+
|
|
1627
|
+
<pre class="example code"><code><span class='kw'>class</span> <span class='const'>PostResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
1628
|
+
<span class='comment'># ... code ...
|
|
1629
|
+
</span> <span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:comments</span><span class='comma'>,</span> <span class='label'>resource:</span> <span class='const'>CommentResource</span> <span class='kw'>do</span>
|
|
1630
|
+
<span class='comment'># ... code ...
|
|
1631
|
+
</span> <span class='id identifier rubyid_assign'>assign</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_posts'>posts</span><span class='comma'>,</span> <span class='id identifier rubyid_comments'>comments</span><span class='op'>|</span>
|
|
1632
|
+
<span class='id identifier rubyid_posts'>posts</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_post'>post</span><span class='op'>|</span>
|
|
1633
|
+
<span class='id identifier rubyid_relevant_comments'>relevant_comments</span> <span class='op'>=</span> <span class='id identifier rubyid_comments'>comments</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_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_post_id'>post_id</span> <span class='op'>==</span> <span class='id identifier rubyid_post'>post</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span> <span class='rbrace'>}</span>
|
|
1634
|
+
<span class='id identifier rubyid_post'>post</span><span class='period'>.</span><span class='id identifier rubyid_comments'>comments</span> <span class='op'>=</span> <span class='id identifier rubyid_relevant_comments'>relevant_comments</span>
|
|
1635
|
+
<span class='kw'>end</span>
|
|
1636
|
+
<span class='kw'>end</span>
|
|
1637
|
+
<span class='kw'>end</span>
|
|
1638
|
+
<span class='kw'>end</span></code></pre>
|
|
1639
|
+
|
|
1640
|
+
|
|
1641
|
+
<p class="example_title"><div class='inline'>
|
|
1642
|
+
<p>ActiveRecord via Adapter</p>
|
|
1643
|
+
</div></p>
|
|
1644
|
+
|
|
1645
|
+
<pre class="example code"><code><span class='kw'>class</span> <span class='const'>PostResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
1646
|
+
<span class='comment'># ... code ...
|
|
1647
|
+
</span> <span class='id identifier rubyid_has_many'>has_many</span> <span class='symbol'>:comments</span><span class='comma'>,</span>
|
|
1648
|
+
<span class='label'>scope:</span> <span class='tlambda'>-></span> <span class='tlambeg'>{</span> <span class='const'>Comment</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
|
1649
|
+
<span class='label'>resource:</span> <span class='const'>CommentResource</span><span class='comma'>,</span>
|
|
1650
|
+
<span class='label'>foreign_key:</span> <span class='symbol'>:post_id</span>
|
|
1651
|
+
<span class='kw'>end</span></code></pre>
|
|
1652
|
+
|
|
1653
|
+
</div>
|
|
1654
|
+
|
|
1655
|
+
<p class="tag_title">Yield Parameters:</p>
|
|
1656
|
+
<ul class="yieldparam">
|
|
1657
|
+
|
|
1658
|
+
<li>
|
|
1659
|
+
|
|
1660
|
+
<span class='name'>parents</span>
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
<span class='type'></span>
|
|
1664
|
+
|
|
1665
|
+
|
|
1666
|
+
|
|
1667
|
+
—
|
|
1668
|
+
<div class='inline'><ul><li>
|
|
1669
|
+
<p>The resolved parent records</p>
|
|
1670
|
+
</li></ul>
|
|
1671
|
+
</div>
|
|
1672
|
+
|
|
1673
|
+
</li>
|
|
1674
|
+
|
|
1675
|
+
<li>
|
|
1676
|
+
|
|
1677
|
+
<span class='name'>children</span>
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
<span class='type'></span>
|
|
1681
|
+
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
—
|
|
1685
|
+
<div class='inline'><ul><li>
|
|
1686
|
+
<p>The resolved child records</p>
|
|
1687
|
+
</li></ul>
|
|
1688
|
+
</div>
|
|
1689
|
+
|
|
1690
|
+
</li>
|
|
1691
|
+
|
|
1692
|
+
</ul>
|
|
1693
|
+
|
|
1694
|
+
<p class="tag_title">See Also:</p>
|
|
1695
|
+
<ul class="see">
|
|
1696
|
+
|
|
1697
|
+
<li><span class='object_link'><a href="Adapters/Abstract.html" title="JsonapiCompliable::Adapters::Abstract (class)">Adapters::Abstract</a></span></li>
|
|
1698
|
+
|
|
1699
|
+
<li><span class='object_link'><a href="Adapters/ActiveRecordSideloading.html#has_many-instance_method" title="JsonapiCompliable::Adapters::ActiveRecordSideloading#has_many (method)">Adapters::ActiveRecordSideloading#has_many</a></span></li>
|
|
1700
|
+
|
|
1701
|
+
<li><span class='object_link'><a href="#allow_sideload-instance_method" title="JsonapiCompliable::Sideload#allow_sideload (method)">#allow_sideload</a></span></li>
|
|
1702
|
+
|
|
1703
|
+
</ul>
|
|
1704
|
+
|
|
1705
|
+
</div><table class="source_code">
|
|
1706
|
+
<tr>
|
|
1707
|
+
<td>
|
|
1708
|
+
<pre class="lines">
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
166
|
|
1712
|
+
167
|
|
1713
|
+
168</pre>
|
|
1714
|
+
</td>
|
|
1715
|
+
<td>
|
|
1716
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 166</span>
|
|
1717
|
+
|
|
1718
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_assign'>assign</span><span class='lparen'>(</span><span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span>
|
|
1719
|
+
<span class='ivar'>@assign_proc</span> <span class='op'>=</span> <span class='id identifier rubyid_blk'>blk</span>
|
|
1720
|
+
<span class='kw'>end</span></pre>
|
|
1721
|
+
</td>
|
|
1722
|
+
</tr>
|
|
1723
|
+
</table>
|
|
1724
|
+
</div>
|
|
1725
|
+
|
|
1726
|
+
<div class="method_details ">
|
|
1727
|
+
<h3 class="signature " id="associate-instance_method">
|
|
1728
|
+
|
|
1729
|
+
#<strong>associate</strong>(parent, child) ⇒ <tt>Object</tt>
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
|
|
1733
|
+
|
|
1734
|
+
|
|
1735
|
+
</h3><div class="docstring">
|
|
1736
|
+
<div class="discussion">
|
|
1737
|
+
|
|
1738
|
+
<p>Configure how to associate parent and child records.</p>
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
</div>
|
|
1742
|
+
</div>
|
|
1743
|
+
<div class="tags">
|
|
1744
|
+
|
|
1745
|
+
<div class="examples">
|
|
1746
|
+
<p class="tag_title">Examples:</p>
|
|
1747
|
+
|
|
1748
|
+
|
|
1749
|
+
<p class="example_title"><div class='inline'>
|
|
1750
|
+
<p>Basic attr_accessor</p>
|
|
1751
|
+
</div></p>
|
|
1752
|
+
|
|
1753
|
+
<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>
|
|
1754
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:has_many</span>
|
|
1755
|
+
<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'>"</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>
|
|
1756
|
+
<span class='kw'>else</span>
|
|
1757
|
+
<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'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_parent'>parent</span><span class='rparen'>)</span>
|
|
1758
|
+
<span class='kw'>end</span>
|
|
1759
|
+
<span class='kw'>end</span></code></pre>
|
|
1760
|
+
|
|
1761
|
+
</div>
|
|
1762
|
+
|
|
1763
|
+
|
|
1764
|
+
<p class="tag_title">See Also:</p>
|
|
1765
|
+
<ul class="see">
|
|
1766
|
+
|
|
1767
|
+
<li><span class='object_link'><a href="#name-instance_method" title="JsonapiCompliable::Sideload#name (method)">#name</a></span></li>
|
|
1768
|
+
|
|
1769
|
+
<li><span class='object_link'><a href="#type-instance_method" title="JsonapiCompliable::Sideload#type (method)">#type</a></span></li>
|
|
1770
|
+
|
|
1771
|
+
</ul>
|
|
1772
|
+
|
|
1773
|
+
</div><table class="source_code">
|
|
1774
|
+
<tr>
|
|
1775
|
+
<td>
|
|
1776
|
+
<pre class="lines">
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
183
|
|
1780
|
+
184
|
|
1781
|
+
185</pre>
|
|
1782
|
+
</td>
|
|
1783
|
+
<td>
|
|
1784
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 183</span>
|
|
1785
|
+
|
|
1786
|
+
<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>
|
|
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="group_by-instance_method">
|
|
1796
|
+
|
|
1797
|
+
#<strong>group_by</strong>(&grouper) ⇒ <tt>Object</tt>
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
|
|
1802
|
+
|
|
1803
|
+
</h3><div class="docstring">
|
|
1804
|
+
<div class="discussion">
|
|
1805
|
+
|
|
1806
|
+
<p>Define a proc that groups the parent records. For instance, with an
|
|
1807
|
+
ActiveRecord polymorphic belongs_to there will be a <code>parent_id</code>
|
|
1808
|
+
and <code>parent_type</code>. We would want to group on
|
|
1809
|
+
<code>parent_type</code>:</p>
|
|
1810
|
+
|
|
1811
|
+
<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
|
+
<span class='comment'># group parent_type, parent here is 'organization'
|
|
1813
|
+
</span> <span class='id identifier rubyid_group_by'>group_by</span> <span class='tlambda'>-></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>
|
|
1814
|
+
<span class='kw'>end</span>
|
|
1815
|
+
</code></pre>
|
|
1816
|
+
|
|
1817
|
+
|
|
1818
|
+
</div>
|
|
1819
|
+
</div>
|
|
1820
|
+
<div class="tags">
|
|
1821
|
+
|
|
1822
|
+
|
|
1823
|
+
<p class="tag_title">See Also:</p>
|
|
1824
|
+
<ul class="see">
|
|
1825
|
+
|
|
1826
|
+
<li><span class='object_link'><a href="#polymorphic%3F-instance_method" title="JsonapiCompliable::Sideload#polymorphic? (method)">#polymorphic?</a></span></li>
|
|
1827
|
+
|
|
1828
|
+
</ul>
|
|
1829
|
+
|
|
1830
|
+
</div><table class="source_code">
|
|
1831
|
+
<tr>
|
|
1832
|
+
<td>
|
|
1833
|
+
<pre class="lines">
|
|
1834
|
+
|
|
1835
|
+
|
|
1836
|
+
197
|
|
1837
|
+
198
|
|
1838
|
+
199</pre>
|
|
1839
|
+
</td>
|
|
1840
|
+
<td>
|
|
1841
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 197</span>
|
|
1842
|
+
|
|
1843
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_group_by'>group_by</span><span class='lparen'>(</span><span class='op'>&</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>
|
|
1845
|
+
<span class='kw'>end</span></pre>
|
|
1846
|
+
</td>
|
|
1847
|
+
</tr>
|
|
1848
|
+
</table>
|
|
1849
|
+
</div>
|
|
1850
|
+
|
|
1851
|
+
<div class="method_details ">
|
|
1852
|
+
<h3 class="signature " id="polymorphic?-instance_method">
|
|
1853
|
+
|
|
1854
|
+
#<strong>polymorphic?</strong> ⇒ <tt>Boolean</tt>
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
</h3><div class="docstring">
|
|
1861
|
+
<div class="discussion">
|
|
1862
|
+
|
|
1863
|
+
<p>Is this sideload polymorphic?</p>
|
|
1864
|
+
|
|
1865
|
+
<p>Polymorphic sideloads group the parent objects in some fashion, so
|
|
1866
|
+
different 'types' can be resolved differently. Let's say an
|
|
1867
|
+
<code>Office</code> has a polymorphic <code>Organization</code>, which can
|
|
1868
|
+
be either a <code>Business</code> or <code>Government</code>:</p>
|
|
1869
|
+
|
|
1870
|
+
<pre class="code ruby"><code class="ruby">allow_sideload :organization, :polymorphic: true do
|
|
1871
|
+
group_by { |record| record.organization_type }
|
|
1872
|
+
|
|
1873
|
+
allow_sideload 'Business', resource: BusinessResource do
|
|
1874
|
+
# ... code ...
|
|
1875
|
+
end
|
|
1876
|
+
|
|
1877
|
+
allow_sideload 'Governemnt', resource: GovernmentResource do
|
|
1878
|
+
# ... code ...
|
|
1879
|
+
end
|
|
1880
|
+
end</code></pre>
|
|
1881
|
+
|
|
1882
|
+
<p>You probably want to extract this code into an Adapter. For instance, with
|
|
1883
|
+
ActiveRecord:</p>
|
|
1884
|
+
|
|
1885
|
+
<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'>-></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>
|
|
1887
|
+
<span class='label'>groups:</span> <span class='lbrace'>{</span>
|
|
1888
|
+
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Business</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
|
1889
|
+
<span class='label'>scope:</span> <span class='tlambda'>-></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>
|
|
1890
|
+
<span class='label'>resource:</span> <span class='const'>BusinessResource</span><span class='comma'>,</span>
|
|
1891
|
+
<span class='label'>foreign_key:</span> <span class='symbol'>:organization_id</span>
|
|
1892
|
+
<span class='rbrace'>}</span><span class='comma'>,</span>
|
|
1893
|
+
<span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Government</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbrace'>{</span>
|
|
1894
|
+
<span class='label'>scope:</span> <span class='tlambda'>-></span> <span class='tlambeg'>{</span> <span class='const'>Government</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
|
1895
|
+
<span class='label'>resource:</span> <span class='const'>GovernmentResource</span><span class='comma'>,</span>
|
|
1896
|
+
<span class='label'>foreign_key:</span> <span class='symbol'>:organization_id</span>
|
|
1897
|
+
<span class='rbrace'>}</span>
|
|
1898
|
+
<span class='rbrace'>}</span>
|
|
1899
|
+
</code></pre>
|
|
1900
|
+
|
|
1901
|
+
|
|
1902
|
+
</div>
|
|
1903
|
+
</div>
|
|
1904
|
+
<div class="tags">
|
|
1905
|
+
|
|
1906
|
+
<p class="tag_title">Returns:</p>
|
|
1907
|
+
<ul class="return">
|
|
1908
|
+
|
|
1909
|
+
<li>
|
|
1910
|
+
|
|
1911
|
+
|
|
1912
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
1913
|
+
|
|
1914
|
+
|
|
1915
|
+
|
|
1916
|
+
—
|
|
1917
|
+
<div class='inline'>
|
|
1918
|
+
<p>is this sideload polymorphic?</p>
|
|
1919
|
+
</div>
|
|
1920
|
+
|
|
1921
|
+
</li>
|
|
1922
|
+
|
|
1923
|
+
</ul>
|
|
1924
|
+
|
|
1925
|
+
<p class="tag_title">See Also:</p>
|
|
1926
|
+
<ul class="see">
|
|
1927
|
+
|
|
1928
|
+
<li><span class='object_link'><a href="Adapters/ActiveRecordSideloading.html#polymorphic_belongs_to-instance_method" title="JsonapiCompliable::Adapters::ActiveRecordSideloading#polymorphic_belongs_to (method)">Adapters::ActiveRecordSideloading#polymorphic_belongs_to</a></span></li>
|
|
1929
|
+
|
|
1930
|
+
</ul>
|
|
1931
|
+
|
|
1932
|
+
</div><table class="source_code">
|
|
1933
|
+
<tr>
|
|
1934
|
+
<td>
|
|
1935
|
+
<pre class="lines">
|
|
1936
|
+
|
|
1937
|
+
|
|
1938
|
+
89
|
|
1939
|
+
90
|
|
1940
|
+
91</pre>
|
|
1941
|
+
</td>
|
|
1942
|
+
<td>
|
|
1943
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 89</span>
|
|
1944
|
+
|
|
1945
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
|
|
1946
|
+
<span class='ivar'>@polymorphic</span> <span class='op'>==</span> <span class='kw'>true</span>
|
|
1947
|
+
<span class='kw'>end</span></pre>
|
|
1948
|
+
</td>
|
|
1949
|
+
</tr>
|
|
1950
|
+
</table>
|
|
1951
|
+
</div>
|
|
1952
|
+
|
|
1953
|
+
<div class="method_details ">
|
|
1954
|
+
<h3 class="signature " id="resolve-instance_method">
|
|
1955
|
+
|
|
1956
|
+
#<strong>resolve</strong>(parents, query, namespace = nil) ⇒ <tt>void</tt>
|
|
1957
|
+
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
|
|
1962
|
+
</h3><div class="docstring">
|
|
1963
|
+
<div class="discussion">
|
|
1964
|
+
<p class="note private">
|
|
1965
|
+
<strong>This method is part of a private API.</strong>
|
|
1966
|
+
You should avoid using this method if possible, as it may be removed or be changed in the future.
|
|
1967
|
+
</p>
|
|
1968
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
|
1969
|
+
<p>Resolve the sideload.</p>
|
|
1970
|
+
<ul><li>
|
|
1971
|
+
<p>Uses the 'scope' proc to build a 'base scope'</p>
|
|
1972
|
+
</li><li>
|
|
1973
|
+
<p>Chains additional criteria onto that 'base scope'</p>
|
|
1974
|
+
</li><li>
|
|
1975
|
+
<p>Resolves that scope (see Scope#resolve)</p>
|
|
1976
|
+
</li><li>
|
|
1977
|
+
<p>Assigns the resulting child objects to their corresponding parents</p>
|
|
1978
|
+
</li></ul>
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
</div>
|
|
1982
|
+
</div>
|
|
1983
|
+
<div class="tags">
|
|
1984
|
+
<p class="tag_title">Parameters:</p>
|
|
1985
|
+
<ul class="param">
|
|
1986
|
+
|
|
1987
|
+
<li>
|
|
1988
|
+
|
|
1989
|
+
<span class='name'>parents</span>
|
|
1990
|
+
|
|
1991
|
+
|
|
1992
|
+
<span class='type'>(<tt>Object</tt>)</span>
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
|
|
1996
|
+
—
|
|
1997
|
+
<div class='inline'>
|
|
1998
|
+
<p>The resolved parent models</p>
|
|
1999
|
+
</div>
|
|
2000
|
+
|
|
2001
|
+
</li>
|
|
2002
|
+
|
|
2003
|
+
<li>
|
|
2004
|
+
|
|
2005
|
+
<span class='name'>query</span>
|
|
2006
|
+
|
|
2007
|
+
|
|
2008
|
+
<span class='type'>(<tt><span class='object_link'><a href="Query.html" title="JsonapiCompliable::Query (class)">Query</a></span></tt>)</span>
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
—
|
|
2013
|
+
<div class='inline'>
|
|
2014
|
+
<p>The Query instance</p>
|
|
2015
|
+
</div>
|
|
2016
|
+
|
|
2017
|
+
</li>
|
|
2018
|
+
|
|
2019
|
+
<li>
|
|
2020
|
+
|
|
2021
|
+
<span class='name'>namespace</span>
|
|
2022
|
+
|
|
2023
|
+
|
|
2024
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
2025
|
+
|
|
2026
|
+
|
|
2027
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
|
2028
|
+
|
|
2029
|
+
|
|
2030
|
+
—
|
|
2031
|
+
<div class='inline'>
|
|
2032
|
+
<p>The current namespace (see Resource#with_context)</p>
|
|
2033
|
+
</div>
|
|
2034
|
+
|
|
2035
|
+
</li>
|
|
2036
|
+
|
|
2037
|
+
</ul>
|
|
2038
|
+
|
|
2039
|
+
|
|
2040
|
+
<p class="tag_title">See Also:</p>
|
|
2041
|
+
<ul class="see">
|
|
2042
|
+
|
|
2043
|
+
<li><span class='object_link'><a href="Scope.html#resolve-instance_method" title="JsonapiCompliable::Scope#resolve (method)">JsonapiCompliable::Scope#resolve</a></span></li>
|
|
2044
|
+
|
|
2045
|
+
<li><span class='object_link'><a href="Query.html" title="JsonapiCompliable::Query (class)">Query</a></span></li>
|
|
2046
|
+
|
|
2047
|
+
<li><span class='object_link'><a href="Resource.html#with_context-instance_method" title="JsonapiCompliable::Resource#with_context (method)">Resource#with_context</a></span></li>
|
|
2048
|
+
|
|
2049
|
+
</ul>
|
|
2050
|
+
|
|
2051
|
+
</div><table class="source_code">
|
|
2052
|
+
<tr>
|
|
2053
|
+
<td>
|
|
2054
|
+
<pre class="lines">
|
|
2055
|
+
|
|
2056
|
+
|
|
2057
|
+
216
|
|
2058
|
+
217
|
|
2059
|
+
218
|
|
2060
|
+
219
|
|
2061
|
+
220
|
|
2062
|
+
221
|
|
2063
|
+
222
|
|
2064
|
+
223
|
|
2065
|
+
224</pre>
|
|
2066
|
+
</td>
|
|
2067
|
+
<td>
|
|
2068
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 216</span>
|
|
2069
|
+
|
|
2070
|
+
<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
|
+
<span class='id identifier rubyid_namespace'>namespace</span> <span class='op'>||=</span> <span class='id identifier rubyid_name'>name</span>
|
|
2072
|
+
|
|
2073
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_polymorphic?'>polymorphic?</span>
|
|
2074
|
+
<span class='id identifier rubyid_resolve_polymorphic'>resolve_polymorphic</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='rparen'>)</span>
|
|
2075
|
+
<span class='kw'>else</span>
|
|
2076
|
+
<span class='id identifier rubyid_resolve_basic'>resolve_basic</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='rparen'>)</span>
|
|
2077
|
+
<span class='kw'>end</span>
|
|
2078
|
+
<span class='kw'>end</span></pre>
|
|
2079
|
+
</td>
|
|
2080
|
+
</tr>
|
|
2081
|
+
</table>
|
|
2082
|
+
</div>
|
|
2083
|
+
|
|
2084
|
+
<div class="method_details ">
|
|
2085
|
+
<h3 class="signature " id="resource-instance_method">
|
|
2086
|
+
|
|
2087
|
+
#<strong>resource</strong> ⇒ <tt><span class='object_link'><a href="Resource.html" title="JsonapiCompliable::Resource (class)">Resource</a></span></tt>
|
|
2088
|
+
|
|
2089
|
+
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
</h3><div class="docstring">
|
|
2094
|
+
<div class="discussion">
|
|
2095
|
+
|
|
2096
|
+
<p>Returns an instance of <code>#resource_class</code></p>
|
|
2097
|
+
|
|
2098
|
+
|
|
2099
|
+
</div>
|
|
2100
|
+
</div>
|
|
2101
|
+
<div class="tags">
|
|
2102
|
+
|
|
2103
|
+
<p class="tag_title">Returns:</p>
|
|
2104
|
+
<ul class="return">
|
|
2105
|
+
|
|
2106
|
+
<li>
|
|
2107
|
+
|
|
2108
|
+
|
|
2109
|
+
<span class='type'>(<tt><span class='object_link'><a href="Resource.html" title="JsonapiCompliable::Resource (class)">Resource</a></span></tt>)</span>
|
|
2110
|
+
|
|
2111
|
+
|
|
2112
|
+
|
|
2113
|
+
—
|
|
2114
|
+
<div class='inline'>
|
|
2115
|
+
<p>an instance of <code>#resource_class</code></p>
|
|
2116
|
+
</div>
|
|
2117
|
+
|
|
2118
|
+
</li>
|
|
2119
|
+
|
|
2120
|
+
</ul>
|
|
2121
|
+
|
|
2122
|
+
<p class="tag_title">See Also:</p>
|
|
2123
|
+
<ul class="see">
|
|
2124
|
+
|
|
2125
|
+
<li><span class='object_link'><a href="#resource_class-instance_method" title="JsonapiCompliable::Sideload#resource_class (method)">#resource_class</a></span></li>
|
|
2126
|
+
|
|
2127
|
+
</ul>
|
|
2128
|
+
|
|
2129
|
+
</div><table class="source_code">
|
|
2130
|
+
<tr>
|
|
2131
|
+
<td>
|
|
2132
|
+
<pre class="lines">
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
46
|
|
2136
|
+
47
|
|
2137
|
+
48</pre>
|
|
2138
|
+
</td>
|
|
2139
|
+
<td>
|
|
2140
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 46</span>
|
|
2141
|
+
|
|
2142
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_resource'>resource</span>
|
|
2143
|
+
<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>
|
|
2144
|
+
<span class='kw'>end</span></pre>
|
|
2145
|
+
</td>
|
|
2146
|
+
</tr>
|
|
2147
|
+
</table>
|
|
2148
|
+
</div>
|
|
2149
|
+
|
|
2150
|
+
<div class="method_details ">
|
|
2151
|
+
<h3 class="signature " id="scope-instance_method">
|
|
2152
|
+
|
|
2153
|
+
#<strong>scope</strong> {|parents| ... } ⇒ <tt>Object</tt>
|
|
2154
|
+
|
|
2155
|
+
|
|
2156
|
+
|
|
2157
|
+
|
|
2158
|
+
|
|
2159
|
+
</h3><div class="docstring">
|
|
2160
|
+
<div class="discussion">
|
|
2161
|
+
|
|
2162
|
+
<p>Build a scope that will be used to fetch the related records This scope
|
|
2163
|
+
will be further chained with filtering/sorting/etc</p>
|
|
2164
|
+
|
|
2165
|
+
<p>You probably want to wrap this logic in an Adapter, instead of specifying
|
|
2166
|
+
in your resource directly.</p>
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
</div>
|
|
2170
|
+
</div>
|
|
2171
|
+
<div class="tags">
|
|
2172
|
+
|
|
2173
|
+
<div class="examples">
|
|
2174
|
+
<p class="tag_title">Examples:</p>
|
|
2175
|
+
|
|
2176
|
+
|
|
2177
|
+
<p class="example_title"><div class='inline'>
|
|
2178
|
+
<p>Default ActiveRecord</p>
|
|
2179
|
+
</div></p>
|
|
2180
|
+
|
|
2181
|
+
<pre class="example code"><code><span class='kw'>class</span> <span class='const'>PostResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
2182
|
+
<span class='comment'># ... code ...
|
|
2183
|
+
</span> <span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:comments</span><span class='comma'>,</span> <span class='label'>resource:</span> <span class='const'>CommentResource</span> <span class='kw'>do</span>
|
|
2184
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_posts'>posts</span><span class='op'>|</span>
|
|
2185
|
+
<span class='const'>Comment</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>post_id:</span> <span class='id identifier rubyid_posts'>posts</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:id</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
2186
|
+
<span class='kw'>end</span>
|
|
2187
|
+
<span class='comment'># ... code ...
|
|
2188
|
+
</span> <span class='kw'>end</span>
|
|
2189
|
+
<span class='kw'>end</span></code></pre>
|
|
2190
|
+
|
|
2191
|
+
|
|
2192
|
+
<p class="example_title"><div class='inline'>
|
|
2193
|
+
<p>Custom Scope</p>
|
|
2194
|
+
</div></p>
|
|
2195
|
+
|
|
2196
|
+
<pre class="example code"><code><span class='comment'># In this example, our base scope is a Hash
|
|
2197
|
+
</span><span class='id identifier rubyid_scope'>scope</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_posts'>posts</span><span class='op'>|</span>
|
|
2198
|
+
<span class='lbrace'>{</span> <span class='label'>post_ids:</span> <span class='id identifier rubyid_posts'>posts</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:id</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
|
2199
|
+
<span class='kw'>end</span></code></pre>
|
|
2200
|
+
|
|
2201
|
+
|
|
2202
|
+
<p class="example_title"><div class='inline'>
|
|
2203
|
+
<p>ActiveRecord via Adapter</p>
|
|
2204
|
+
</div></p>
|
|
2205
|
+
|
|
2206
|
+
<pre class="example code"><code><span class='kw'>class</span> <span class='const'>PostResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
2207
|
+
<span class='comment'># ... code ...
|
|
2208
|
+
</span> <span class='id identifier rubyid_has_many'>has_many</span> <span class='symbol'>:comments</span><span class='comma'>,</span>
|
|
2209
|
+
<span class='label'>scope:</span> <span class='tlambda'>-></span> <span class='tlambeg'>{</span> <span class='const'>Comment</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
|
2210
|
+
<span class='label'>resource:</span> <span class='const'>CommentResource</span><span class='comma'>,</span>
|
|
2211
|
+
<span class='label'>foreign_key:</span> <span class='symbol'>:post_id</span>
|
|
2212
|
+
<span class='kw'>end</span></code></pre>
|
|
2213
|
+
|
|
2214
|
+
</div>
|
|
2215
|
+
|
|
2216
|
+
<p class="tag_title">Yield Parameters:</p>
|
|
2217
|
+
<ul class="yieldparam">
|
|
2218
|
+
|
|
2219
|
+
<li>
|
|
2220
|
+
|
|
2221
|
+
<span class='name'>parents</span>
|
|
2222
|
+
|
|
2223
|
+
|
|
2224
|
+
<span class='type'></span>
|
|
2225
|
+
|
|
2226
|
+
|
|
2227
|
+
|
|
2228
|
+
—
|
|
2229
|
+
<div class='inline'><ul><li>
|
|
2230
|
+
<p>The resolved parent records</p>
|
|
2231
|
+
</li></ul>
|
|
2232
|
+
</div>
|
|
2233
|
+
|
|
2234
|
+
</li>
|
|
2235
|
+
|
|
2236
|
+
</ul>
|
|
2237
|
+
|
|
2238
|
+
<p class="tag_title">See Also:</p>
|
|
2239
|
+
<ul class="see">
|
|
2240
|
+
|
|
2241
|
+
<li><span class='object_link'><a href="Adapters/Abstract.html" title="JsonapiCompliable::Adapters::Abstract (class)">Adapters::Abstract</a></span></li>
|
|
2242
|
+
|
|
2243
|
+
<li><span class='object_link'><a href="Adapters/ActiveRecordSideloading.html#has_many-instance_method" title="JsonapiCompliable::Adapters::ActiveRecordSideloading#has_many (method)">Adapters::ActiveRecordSideloading#has_many</a></span></li>
|
|
2244
|
+
|
|
2245
|
+
<li><span class='object_link'><a href="#allow_sideload-instance_method" title="JsonapiCompliable::Sideload#allow_sideload (method)">#allow_sideload</a></span></li>
|
|
2246
|
+
|
|
2247
|
+
</ul>
|
|
2248
|
+
|
|
2249
|
+
</div><table class="source_code">
|
|
2250
|
+
<tr>
|
|
2251
|
+
<td>
|
|
2252
|
+
<pre class="lines">
|
|
2253
|
+
|
|
2254
|
+
|
|
2255
|
+
129
|
|
2256
|
+
130
|
|
2257
|
+
131</pre>
|
|
2258
|
+
</td>
|
|
2259
|
+
<td>
|
|
2260
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 129</span>
|
|
2261
|
+
|
|
2262
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_scope'>scope</span><span class='lparen'>(</span><span class='op'>&</span><span class='id identifier rubyid_blk'>blk</span><span class='rparen'>)</span>
|
|
2263
|
+
<span class='ivar'>@scope_proc</span> <span class='op'>=</span> <span class='id identifier rubyid_blk'>blk</span>
|
|
2264
|
+
<span class='kw'>end</span></pre>
|
|
2265
|
+
</td>
|
|
2266
|
+
</tr>
|
|
2267
|
+
</table>
|
|
2268
|
+
</div>
|
|
2269
|
+
|
|
2270
|
+
<div class="method_details ">
|
|
2271
|
+
<h3 class="signature " id="sideload-instance_method">
|
|
2272
|
+
|
|
2273
|
+
#<strong>sideload</strong>(name) ⇒ <tt>Object</tt>
|
|
2274
|
+
|
|
2275
|
+
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
|
|
2279
|
+
</h3><div class="docstring">
|
|
2280
|
+
<div class="discussion">
|
|
2281
|
+
|
|
2282
|
+
<p>Fetch a Sideload object by its name</p>
|
|
2283
|
+
|
|
2284
|
+
|
|
2285
|
+
</div>
|
|
2286
|
+
</div>
|
|
2287
|
+
<div class="tags">
|
|
2288
|
+
<p class="tag_title">Parameters:</p>
|
|
2289
|
+
<ul class="param">
|
|
2290
|
+
|
|
2291
|
+
<li>
|
|
2292
|
+
|
|
2293
|
+
<span class='name'>name</span>
|
|
2294
|
+
|
|
2295
|
+
|
|
2296
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
2297
|
+
|
|
2298
|
+
|
|
2299
|
+
|
|
2300
|
+
—
|
|
2301
|
+
<div class='inline'>
|
|
2302
|
+
<p>The name of the corresponding sideload</p>
|
|
2303
|
+
</div>
|
|
2304
|
+
|
|
2305
|
+
</li>
|
|
2306
|
+
|
|
2307
|
+
</ul>
|
|
2308
|
+
|
|
2309
|
+
<p class="tag_title">Returns:</p>
|
|
2310
|
+
<ul class="return">
|
|
2311
|
+
|
|
2312
|
+
<li>
|
|
2313
|
+
|
|
2314
|
+
|
|
2315
|
+
<span class='type'></span>
|
|
2316
|
+
|
|
2317
|
+
|
|
2318
|
+
|
|
2319
|
+
|
|
2320
|
+
<div class='inline'>
|
|
2321
|
+
<p>the corresponding Sideload object</p>
|
|
2322
|
+
</div>
|
|
2323
|
+
|
|
2324
|
+
</li>
|
|
2325
|
+
|
|
2326
|
+
</ul>
|
|
2327
|
+
|
|
2328
|
+
<p class="tag_title">See Also:</p>
|
|
2329
|
+
<ul class="see">
|
|
2330
|
+
|
|
2331
|
+
<li>+allow_sideload</li>
|
|
2332
|
+
|
|
2333
|
+
</ul>
|
|
2334
|
+
|
|
2335
|
+
</div><table class="source_code">
|
|
2336
|
+
<tr>
|
|
2337
|
+
<td>
|
|
2338
|
+
<pre class="lines">
|
|
2339
|
+
|
|
2340
|
+
|
|
2341
|
+
279
|
|
2342
|
+
280
|
|
2343
|
+
281</pre>
|
|
2344
|
+
</td>
|
|
2345
|
+
<td>
|
|
2346
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 279</span>
|
|
2347
|
+
|
|
2348
|
+
<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
|
+
<span class='ivar'>@sideloads</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span>
|
|
2350
|
+
<span class='kw'>end</span></pre>
|
|
2351
|
+
</td>
|
|
2352
|
+
</tr>
|
|
2353
|
+
</table>
|
|
2354
|
+
</div>
|
|
2355
|
+
|
|
2356
|
+
<div class="method_details ">
|
|
2357
|
+
<h3 class="signature " id="to_hash-instance_method">
|
|
2358
|
+
|
|
2359
|
+
#<strong>to_hash</strong>(processed = []) ⇒ <tt>Hash</tt>
|
|
2360
|
+
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
</h3><div class="docstring">
|
|
2366
|
+
<div class="discussion">
|
|
2367
|
+
<p class="note private">
|
|
2368
|
+
<strong>This method is part of a private API.</strong>
|
|
2369
|
+
You should avoid using this method if possible, as it may be removed or be changed in the future.
|
|
2370
|
+
</p>
|
|
2371
|
+
|
|
2372
|
+
<p>Looks at all nested sideload, and all nested sideloads for the
|
|
2373
|
+
corresponding Resources, and returns an Include Directive hash</p>
|
|
2374
|
+
|
|
2375
|
+
<p>For instance, this configuration:</p>
|
|
2376
|
+
|
|
2377
|
+
<pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>BarResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
2378
|
+
<span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:baz</span> <span class='kw'>do</span>
|
|
2379
|
+
<span class='kw'>end</span>
|
|
2380
|
+
<span class='kw'>end</span>
|
|
2381
|
+
|
|
2382
|
+
<span class='kw'>class</span> <span class='const'>PostResource</span> <span class='op'><</span> <span class='const'>ApplicationResource</span>
|
|
2383
|
+
<span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:foo</span> <span class='kw'>do</span>
|
|
2384
|
+
<span class='id identifier rubyid_allow_sideload'>allow_sideload</span> <span class='symbol'>:bar</span><span class='comma'>,</span> <span class='label'>resource:</span> <span class='const'>BarResource</span> <span class='kw'>do</span>
|
|
2385
|
+
<span class='kw'>end</span>
|
|
2386
|
+
<span class='kw'>end</span>
|
|
2387
|
+
<span class='kw'>end</span>
|
|
2388
|
+
</code></pre>
|
|
2389
|
+
|
|
2390
|
+
<p><code>post_resource.sideloading.to_hash</code> would return</p>
|
|
2391
|
+
|
|
2392
|
+
<pre class="code ruby"><code class="ruby"><span class='lbrace'>{</span> <span class='label'>base:</span> <span class='lbrace'>{</span> <span class='label'>foo:</span> <span class='lbrace'>{</span> <span class='label'>bar:</span> <span class='lbrace'>{</span> <span class='label'>baz:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
|
|
2393
|
+
</code></pre>
|
|
2394
|
+
|
|
2395
|
+
|
|
2396
|
+
</div>
|
|
2397
|
+
</div>
|
|
2398
|
+
<div class="tags">
|
|
2399
|
+
|
|
2400
|
+
<p class="tag_title">Returns:</p>
|
|
2401
|
+
<ul class="return">
|
|
2402
|
+
|
|
2403
|
+
<li>
|
|
2404
|
+
|
|
2405
|
+
|
|
2406
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
2407
|
+
|
|
2408
|
+
|
|
2409
|
+
|
|
2410
|
+
—
|
|
2411
|
+
<div class='inline'>
|
|
2412
|
+
<p>The nested include hash</p>
|
|
2413
|
+
</div>
|
|
2414
|
+
|
|
2415
|
+
</li>
|
|
2416
|
+
|
|
2417
|
+
</ul>
|
|
2418
|
+
|
|
2419
|
+
</div><table class="source_code">
|
|
2420
|
+
<tr>
|
|
2421
|
+
<td>
|
|
2422
|
+
<pre class="lines">
|
|
2423
|
+
|
|
2424
|
+
|
|
2425
|
+
306
|
|
2426
|
+
307
|
|
2427
|
+
308
|
|
2428
|
+
309
|
|
2429
|
+
310
|
|
2430
|
+
311
|
|
2431
|
+
312
|
|
2432
|
+
313
|
|
2433
|
+
314
|
|
2434
|
+
315
|
|
2435
|
+
316
|
|
2436
|
+
317
|
|
2437
|
+
318
|
|
2438
|
+
319
|
|
2439
|
+
320
|
|
2440
|
+
321
|
|
2441
|
+
322
|
|
2442
|
+
323
|
|
2443
|
+
324</pre>
|
|
2444
|
+
</td>
|
|
2445
|
+
<td>
|
|
2446
|
+
<pre class="code"><span class="info file"># File 'lib/jsonapi_compliable/sideload.rb', line 306</span>
|
|
2447
|
+
|
|
2448
|
+
<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
|
+
<span class='kw'>return</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>=></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>
|
|
2450
|
+
<span class='id identifier rubyid_processed'>processed</span> <span class='op'><<</span> <span class='kw'>self</span>
|
|
2451
|
+
|
|
2452
|
+
<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'>=></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>
|
|
2453
|
+
<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>
|
|
2454
|
+
<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>
|
|
2455
|
+
|
|
2456
|
+
<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>
|
|
2457
|
+
<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>
|
|
2458
|
+
<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>
|
|
2459
|
+
<span class='kw'>end</span>
|
|
2460
|
+
<span class='kw'>else</span>
|
|
2461
|
+
<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>
|
|
2462
|
+
<span class='kw'>end</span>
|
|
2463
|
+
<span class='kw'>end</span>
|
|
2464
|
+
<span class='kw'>end</span>
|
|
2465
|
+
<span class='id identifier rubyid_result'>result</span>
|
|
2466
|
+
<span class='kw'>end</span></pre>
|
|
2467
|
+
</td>
|
|
2468
|
+
</tr>
|
|
2469
|
+
</table>
|
|
2470
|
+
</div>
|
|
2471
|
+
|
|
2472
|
+
</div>
|
|
2473
|
+
|
|
2474
|
+
</div>
|
|
2475
|
+
|
|
2476
|
+
<div id="footer">
|
|
2477
|
+
Generated on Fri May 5 15:53:22 2017 by
|
|
2478
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
2479
|
+
0.9.9 (ruby-2.3.0).
|
|
2480
|
+
</div>
|
|
2481
|
+
|
|
2482
|
+
</div>
|
|
2483
|
+
</body>
|
|
2484
|
+
</html>
|