@@ -333,6 +333,30 @@ <h2>
333
333
< p > The model instance just destroyed.</ p >
334
334
</ div > </ span >
335
335
336
+ </ li >
337
+
338
+
339
+ < li class ="public ">
340
+ < span class ="summary_signature ">
341
+
342
+ < a href ="#disassociate-instance_method " title ="#disassociate (instance method) "> #< strong > disassociate</ strong > (parent, child, association_name, association_type) ⇒ Object </ a >
343
+
344
+
345
+
346
+ </ span >
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+ < span class ="summary_desc "> < div class ='inline '>
357
+ < p > Remove the association without destroying objects.</ p >
358
+ </ div > </ span >
359
+
336
360
</ li >
337
361
338
362
@@ -1044,12 +1068,12 @@ <h3 class="signature " id="create-instance_method">
1044
1068
< pre class ="lines ">
1045
1069
1046
1070
1047
- 263
1048
- 264
1049
- 265 </ pre >
1071
+ 303
1072
+ 304
1073
+ 305 </ pre >
1050
1074
</ td >
1051
1075
< td >
1052
- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 263 </ span >
1076
+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 303 </ span >
1053
1077
1054
1078
< span class ='kw '> def</ span > < span class ='id identifier rubyid_create '> create</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_model_class '> model_class</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_create_params '> create_params</ span > < span class ='rparen '> )</ span >
1055
1079
< span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #create in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
@@ -1162,19 +1186,171 @@ <h3 class="signature " id="destroy-instance_method">
1162
1186
< pre class ="lines ">
1163
1187
1164
1188
1165
- 291
1166
- 292
1167
- 293 </ pre >
1189
+ 331
1190
+ 332
1191
+ 333 </ pre >
1168
1192
</ td >
1169
1193
< td >
1170
- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 291 </ span >
1194
+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 331 </ span >
1171
1195
1172
1196
< span class ='kw '> def</ span > < span class ='id identifier rubyid_destroy '> destroy</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_model_class '> model_class</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_id '> id</ span > < span class ='rparen '> )</ span >
1173
1197
< span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #destroy in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
1174
1198
< span class ='kw '> end</ span > </ pre >
1175
1199
</ td >
1176
1200
</ tr >
1177
1201
</ table >
1202
+ </ div >
1203
+
1204
+ < div class ="method_details ">
1205
+ < h3 class ="signature " id ="disassociate-instance_method ">
1206
+
1207
+ #< strong > disassociate</ strong > (parent, child, association_name, association_type) ⇒ < tt > Object</ tt >
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+ </ h3 > < div class ="docstring ">
1214
+ < div class ="discussion ">
1215
+
1216
+ < p > Remove the association without destroying objects</ p >
1217
+
1218
+ < p > This is NOT needed in the standard use case. The standard use case would
1219
+ be:</ p >
1220
+
1221
+ < pre class ="code ruby "> < code class ="ruby "> < span class ='kw '> def</ span > < span class ='id identifier rubyid_update '> update</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_attrs '> attrs</ span > < span class ='rparen '> )</ span >
1222
+ < span class ='comment '> # attrs[:the_foreign_key] is nil, so updating the record disassociates
1223
+ </ span > < span class ='kw '> end</ span >
1224
+ </ code > </ pre >
1225
+
1226
+ < p > However, sometimes you need side-effect or elsewise non-standard behavior.
1227
+ Consider using < a href ="{https://github.com/mbleigh/acts-as-taggable-on " target ="_parent " title ="acts_as_taggable_on "> acts_as_taggable_on</ a > } gem:</ p >
1228
+
1229
+ < pre class ="code ruby "> < code class ="ruby "> < span class ='comment '> # Not actually needed, just an example
1230
+ </ span > < span class ='kw '> def</ span > < span class ='id identifier rubyid_disassociate '> disassociate</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_parent '> parent</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='rparen '> )</ span >
1231
+ < span class ='id identifier rubyid_parent '> parent</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_tag_list '> tag_list</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_remove '> remove</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_name '> name</ span > < span class ='rparen '> )</ span >
1232
+ < span class ='kw '> end</ span >
1233
+ </ code > </ pre >
1234
+
1235
+ < p > < code > association_name</ code > and < code > association_type</ code > come from
1236
+ your sideload configuration:</ p >
1237
+
1238
+ < pre class ="code ruby "> < code class ="ruby "> < span class ='id identifier rubyid_allow_sideload '> allow_sideload</ span > < span class ='symbol '> :the_name</ span > < span class ='comma '> ,</ span > < span class ='label '> type:</ span > < span class ='id identifier rubyid_the_type '> the_type</ span > < span class ='kw '> do</ span >
1239
+ < span class ='comment '> # ... code.
1240
+ </ span > < span class ='kw '> end</ span >
1241
+ </ code > </ pre >
1242
+
1243
+
1244
+ </ div >
1245
+ </ div >
1246
+ < div class ="tags ">
1247
+
1248
+ < div class ="examples ">
1249
+ < p class ="tag_title "> Examples:</ p >
1250
+
1251
+
1252
+ < p class ="example_title "> < div class ='inline '>
1253
+ < p > Basic accessor</ p >
1254
+ </ div > </ p >
1255
+
1256
+ < pre class ="example code "> < code > < span class ='kw '> def</ span > < span class ='id identifier rubyid_disassociate '> disassociate</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_parent '> parent</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='rparen '> )</ span >
1257
+ < span class ='kw '> if</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='op '> ==</ span > < span class ='symbol '> :has_many</ span >
1258
+ < 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 ='id identifier rubyid_association_name '> association_name</ span > < span class ='rparen '> )</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_delete '> delete</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='rparen '> )</ span >
1259
+ < span class ='kw '> else</ span >
1260
+ < 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_association_name '> association_name</ span > < span class ='embexpr_end '> }</ span > < span class ='tstring_content '> =</ span > < span class ='tstring_end '> "</ span > </ span > < span class ='comma '> ,</ span > < span class ='kw '> nil</ span > < span class ='rparen '> )</ span >
1261
+ < span class ='kw '> end</ span >
1262
+ < span class ='kw '> end</ span > </ code > </ pre >
1263
+
1264
+ </ div >
1265
+ < p class ="tag_title "> Parameters:</ p >
1266
+ < ul class ="param ">
1267
+
1268
+ < li >
1269
+
1270
+ < span class ='name '> parent</ span >
1271
+
1272
+
1273
+ < span class ='type '> </ span >
1274
+
1275
+
1276
+
1277
+ —
1278
+ < div class ='inline '>
1279
+ < p > The parent object (via the JSONAPI 'relationships' graph)</ p >
1280
+ </ div >
1281
+
1282
+ </ li >
1283
+
1284
+ < li >
1285
+
1286
+ < span class ='name '> child</ span >
1287
+
1288
+
1289
+ < span class ='type '> </ span >
1290
+
1291
+
1292
+
1293
+ —
1294
+ < div class ='inline '>
1295
+ < p > The child object (via the JSONAPI 'relationships' graph)</ p >
1296
+ </ div >
1297
+
1298
+ </ li >
1299
+
1300
+ < li >
1301
+
1302
+ < span class ='name '> association_name</ span >
1303
+
1304
+
1305
+ < span class ='type '> </ span >
1306
+
1307
+
1308
+
1309
+ —
1310
+ < div class ='inline '>
1311
+ < p > The 'relationships' key we are processing</ p >
1312
+ </ div >
1313
+
1314
+ </ li >
1315
+
1316
+ < li >
1317
+
1318
+ < span class ='name '> association_type</ span >
1319
+
1320
+
1321
+ < span class ='type '> </ span >
1322
+
1323
+
1324
+
1325
+ —
1326
+ < div class ='inline '>
1327
+ < p > The Sideload type (see Sideload#type). Usually :has_many/:belongs_to/etc</ p >
1328
+ </ div >
1329
+
1330
+ </ li >
1331
+
1332
+ </ ul >
1333
+
1334
+
1335
+ </ div > < table class ="source_code ">
1336
+ < tr >
1337
+ < td >
1338
+ < pre class ="lines ">
1339
+
1340
+
1341
+ 276
1342
+ 277
1343
+ 278</ pre >
1344
+ </ td >
1345
+ < td >
1346
+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 276</ span >
1347
+
1348
+ < span class ='kw '> def</ span > < span class ='id identifier rubyid_disassociate '> disassociate</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_parent '> parent</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_child '> child</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_name '> association_name</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_association_type '> association_type</ span > < span class ='rparen '> )</ span >
1349
+ < span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #disassociate in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
1350
+ < span class ='kw '> end</ span > </ pre >
1351
+ </ td >
1352
+ </ tr >
1353
+ </ table >
1178
1354
</ div >
1179
1355
1180
1356
< div class ="method_details ">
@@ -1943,12 +2119,12 @@ <h3 class="signature " id="sideloading_module-instance_method">
1943
2119
< pre class ="lines ">
1944
2120
1945
2121
1946
- 249
1947
- 250
1948
- 251 </ pre >
2122
+ 289
2123
+ 290
2124
+ 291 </ pre >
1949
2125
</ td >
1950
2126
< td >
1951
- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 249 </ span >
2127
+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 289 </ span >
1952
2128
1953
2129
< span class ='kw '> def</ span > < span class ='id identifier rubyid_sideloading_module '> sideloading_module</ span >
1954
2130
< span class ='const '> Module</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_new '> new</ span >
@@ -2255,12 +2431,12 @@ <h3 class="signature " id="update-instance_method">
2255
2431
< pre class ="lines ">
2256
2432
2257
2433
2258
- 277
2259
- 278
2260
- 279 </ pre >
2434
+ 317
2435
+ 318
2436
+ 319 </ pre >
2261
2437
</ td >
2262
2438
< td >
2263
- < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 277 </ span >
2439
+ < pre class ="code "> < span class ="info file "> # File 'lib/jsonapi_compliable/adapters/abstract.rb', line 317 </ span >
2264
2440
2265
2441
< span class ='kw '> def</ span > < span class ='id identifier rubyid_update '> update</ span > < span class ='lparen '> (</ span > < span class ='id identifier rubyid_model_class '> model_class</ span > < span class ='comma '> ,</ span > < span class ='id identifier rubyid_update_params '> update_params</ span > < span class ='rparen '> )</ span >
2266
2442
< span class ='id identifier rubyid_raise '> raise</ span > < span class ='tstring '> < span class ='tstring_beg '> '</ span > < span class ='tstring_content '> you must override #update in an adapter subclass</ span > < span class ='tstring_end '> '</ span > </ span >
@@ -2275,7 +2451,7 @@ <h3 class="signature " id="update-instance_method">
2275
2451
</ div >
2276
2452
2277
2453
< div id ="footer ">
2278
- Generated on Wed Jun 7 10:15:10 2017 by
2454
+ Generated on Thu Sep 28 17:28:11 2017 by
2279
2455
< a href ="http://yardoc.org " title ="Yay! A Ruby Documentation Tool " target ="_parent "> yard</ a >
2280
2456
0.9.9 (ruby-2.3.0).
2281
2457
</ div >
0 commit comments