dynamoid 0.6.1 → 0.7.0
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.
- data/.travis.yml +4 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +40 -45
- data/README.markdown +55 -25
- data/Rakefile +31 -0
- data/VERSION +1 -1
- data/doc/Dynamoid.html +58 -42
- data/doc/Dynamoid/Adapter.html +666 -179
- data/doc/Dynamoid/Adapter/AwsSdk.html +752 -236
- data/doc/Dynamoid/Associations.html +28 -21
- data/doc/Dynamoid/Associations/Association.html +102 -49
- data/doc/Dynamoid/Associations/BelongsTo.html +28 -25
- data/doc/Dynamoid/Associations/ClassMethods.html +95 -52
- data/doc/Dynamoid/Associations/HasAndBelongsToMany.html +28 -25
- data/doc/Dynamoid/Associations/HasMany.html +28 -25
- data/doc/Dynamoid/Associations/HasOne.html +28 -25
- data/doc/Dynamoid/Associations/ManyAssociation.html +138 -94
- data/doc/Dynamoid/Associations/SingleAssociation.html +67 -38
- data/doc/Dynamoid/Components.html +60 -22
- data/doc/Dynamoid/Config.html +61 -44
- data/doc/Dynamoid/Config/Options.html +90 -61
- data/doc/Dynamoid/Criteria.html +28 -21
- data/doc/Dynamoid/Criteria/Chain.html +508 -100
- data/doc/Dynamoid/Criteria/ClassMethods.html +26 -19
- data/doc/Dynamoid/Dirty.html +424 -0
- data/doc/Dynamoid/Dirty/ClassMethods.html +174 -0
- data/doc/Dynamoid/Document.html +451 -84
- data/doc/Dynamoid/Document/ClassMethods.html +281 -102
- data/doc/Dynamoid/Errors.html +29 -22
- data/doc/Dynamoid/Errors/ConditionalCheckFailedException.html +141 -0
- data/doc/Dynamoid/Errors/DocumentNotValid.html +36 -25
- data/doc/Dynamoid/Errors/Error.html +27 -20
- data/doc/Dynamoid/Errors/InvalidField.html +27 -19
- data/doc/Dynamoid/Errors/InvalidQuery.html +131 -0
- data/doc/Dynamoid/Errors/MissingRangeKey.html +27 -19
- data/doc/Dynamoid/Fields.html +94 -77
- data/doc/Dynamoid/Fields/ClassMethods.html +166 -37
- data/doc/Dynamoid/Finders.html +28 -21
- data/doc/Dynamoid/Finders/ClassMethods.html +505 -78
- data/doc/Dynamoid/IdentityMap.html +492 -0
- data/doc/Dynamoid/IdentityMap/ClassMethods.html +534 -0
- data/doc/Dynamoid/Indexes.html +41 -28
- data/doc/Dynamoid/Indexes/ClassMethods.html +45 -29
- data/doc/Dynamoid/Indexes/Index.html +100 -62
- data/doc/Dynamoid/Middleware.html +115 -0
- data/doc/Dynamoid/Middleware/IdentityMap.html +264 -0
- data/doc/Dynamoid/Persistence.html +326 -85
- data/doc/Dynamoid/Persistence/ClassMethods.html +275 -109
- data/doc/Dynamoid/Validations.html +47 -31
- data/doc/_index.html +116 -71
- data/doc/class_list.html +13 -7
- data/doc/css/full_list.css +4 -2
- data/doc/css/style.css +60 -44
- data/doc/file.LICENSE.html +26 -19
- data/doc/file.README.html +152 -48
- data/doc/file_list.html +14 -8
- data/doc/frames.html +20 -5
- data/doc/index.html +152 -48
- data/doc/js/app.js +52 -43
- data/doc/js/full_list.js +14 -9
- data/doc/js/jquery.js +4 -16
- data/doc/method_list.html +446 -540
- data/doc/top-level-namespace.html +27 -20
- data/{Dynamoid.gemspec → dynamoid.gemspec} +21 -8
- data/lib/dynamoid/adapter.rb +11 -10
- data/lib/dynamoid/adapter/aws_sdk.rb +40 -19
- data/lib/dynamoid/components.rb +2 -1
- data/lib/dynamoid/criteria/chain.rb +29 -11
- data/lib/dynamoid/dirty.rb +6 -0
- data/lib/dynamoid/document.rb +34 -19
- data/lib/dynamoid/fields.rb +36 -30
- data/lib/dynamoid/finders.rb +7 -5
- data/lib/dynamoid/persistence.rb +37 -10
- data/spec/app/models/address.rb +2 -0
- data/spec/app/models/camel_case.rb +10 -0
- data/spec/app/models/car.rb +6 -0
- data/spec/app/models/nuclear_submarine.rb +5 -0
- data/spec/app/models/subscription.rb +2 -2
- data/spec/app/models/vehicle.rb +7 -0
- data/spec/dynamoid/adapter/aws_sdk_spec.rb +20 -11
- data/spec/dynamoid/adapter_spec.rb +67 -82
- data/spec/dynamoid/associations/association_spec.rb +30 -30
- data/spec/dynamoid/criteria/chain_spec.rb +56 -9
- data/spec/dynamoid/criteria_spec.rb +3 -0
- data/spec/dynamoid/dirty_spec.rb +8 -0
- data/spec/dynamoid/document_spec.rb +109 -47
- data/spec/dynamoid/fields_spec.rb +32 -3
- data/spec/dynamoid/finders_spec.rb +12 -0
- data/spec/dynamoid/persistence_spec.rb +73 -8
- data/spec/spec_helper.rb +1 -0
- data/spec/support/with_partitioning.rb +15 -0
- metadata +22 -9
data/doc/Dynamoid/Adapter.html
CHANGED
|
@@ -6,19 +6,21 @@
|
|
|
6
6
|
<title>
|
|
7
7
|
Module: Dynamoid::Adapter
|
|
8
8
|
|
|
9
|
-
— Documentation by YARD 0.
|
|
9
|
+
— Documentation by YARD 0.8.6.1
|
|
10
10
|
|
|
11
11
|
</title>
|
|
12
12
|
|
|
13
|
-
<link rel="stylesheet" href="../css/style.css" type="text/css"
|
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
|
14
14
|
|
|
15
|
-
<link rel="stylesheet" href="../css/common.css" type="text/css"
|
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
|
16
16
|
|
|
17
17
|
<script type="text/javascript" charset="utf-8">
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
|
19
|
+
relpath = '../';
|
|
20
|
+
framesUrl = "../frames.html#!" + escape(window.location.href);
|
|
20
21
|
</script>
|
|
21
22
|
|
|
23
|
+
|
|
22
24
|
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
|
23
25
|
|
|
24
26
|
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
|
@@ -26,36 +28,41 @@
|
|
|
26
28
|
|
|
27
29
|
</head>
|
|
28
30
|
<body>
|
|
29
|
-
<script type="text/javascript" charset="utf-8">
|
|
30
|
-
if (window.top.frames.main) document.body.className = 'frames';
|
|
31
|
-
</script>
|
|
32
|
-
|
|
33
31
|
<div id="header">
|
|
34
32
|
<div id="menu">
|
|
35
33
|
|
|
36
|
-
<a href="../_index.html">Index (A)</a> »
|
|
34
|
+
<a href="../_index.html">Index (A)</a> »
|
|
37
35
|
<span class='title'><span class='object_link'><a href="../Dynamoid.html" title="Dynamoid (module)">Dynamoid</a></span></span>
|
|
38
36
|
»
|
|
39
37
|
<span class="title">Adapter</span>
|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
|
|
42
40
|
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
|
43
41
|
</div>
|
|
44
42
|
|
|
45
43
|
<div id="search">
|
|
46
44
|
|
|
47
|
-
<a
|
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
|
46
|
+
href="../class_list.html">
|
|
47
|
+
Class List
|
|
48
|
+
</a>
|
|
48
49
|
|
|
49
|
-
<a
|
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
|
51
|
+
href="../method_list.html">
|
|
52
|
+
Method List
|
|
53
|
+
</a>
|
|
50
54
|
|
|
51
|
-
<a
|
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
|
56
|
+
href="../file_list.html">
|
|
57
|
+
File List
|
|
58
|
+
</a>
|
|
52
59
|
|
|
53
60
|
</div>
|
|
54
61
|
<div class="clear"></div>
|
|
55
62
|
</div>
|
|
56
|
-
|
|
63
|
+
|
|
57
64
|
<iframe id="search_frame"></iframe>
|
|
58
|
-
|
|
65
|
+
|
|
59
66
|
<div id="content"><h1>Module: Dynamoid::Adapter
|
|
60
67
|
|
|
61
68
|
|
|
@@ -81,7 +88,7 @@
|
|
|
81
88
|
|
|
82
89
|
<dt class="r1 last">Defined in:</dt>
|
|
83
90
|
<dd class="r1 last">lib/dynamoid/adapter.rb<span class="defines">,<br />
|
|
84
|
-
lib/dynamoid/adapter/
|
|
91
|
+
lib/dynamoid/adapter/aws_sdk.rb</span>
|
|
85
92
|
</dd>
|
|
86
93
|
|
|
87
94
|
</dl>
|
|
@@ -89,7 +96,7 @@
|
|
|
89
96
|
|
|
90
97
|
<h2>Overview</h2><div class="docstring">
|
|
91
98
|
<div class="discussion">
|
|
92
|
-
<p>Adapter provides a generic, write-through class that abstracts variations in the underlying connections to provide a uniform response
|
|
99
|
+
<p>Adapter provides a generic, write-through class that abstracts variations in the underlying connections to provide a uniform response
|
|
93
100
|
to Dynamoid.</p>
|
|
94
101
|
|
|
95
102
|
|
|
@@ -100,11 +107,11 @@ to Dynamoid.</p>
|
|
|
100
107
|
|
|
101
108
|
</div><h2>Defined Under Namespace</h2>
|
|
102
109
|
<p class="children">
|
|
103
|
-
|
|
110
|
+
|
|
104
111
|
|
|
105
|
-
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Adapter/AwsSdk.html" title="Dynamoid::Adapter::AwsSdk (module)">AwsSdk</a></span
|
|
112
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Adapter/AwsSdk.html" title="Dynamoid::Adapter::AwsSdk (module)">AwsSdk</a></span>
|
|
106
113
|
|
|
107
|
-
|
|
114
|
+
|
|
108
115
|
|
|
109
116
|
|
|
110
117
|
</p>
|
|
@@ -125,6 +132,7 @@ to Dynamoid.</p>
|
|
|
125
132
|
</span>
|
|
126
133
|
|
|
127
134
|
|
|
135
|
+
|
|
128
136
|
|
|
129
137
|
|
|
130
138
|
|
|
@@ -167,9 +175,10 @@ to Dynamoid.</p>
|
|
|
167
175
|
|
|
168
176
|
|
|
169
177
|
|
|
178
|
+
|
|
170
179
|
|
|
171
180
|
|
|
172
|
-
<span class="summary_desc"><div class='inline'><p>The actual adapter currently in use: presently
|
|
181
|
+
<span class="summary_desc"><div class='inline'><p>The actual adapter currently in use: presently AwsSdk.</p>
|
|
173
182
|
</div></span>
|
|
174
183
|
|
|
175
184
|
</li>
|
|
@@ -189,6 +198,7 @@ to Dynamoid.</p>
|
|
|
189
198
|
|
|
190
199
|
|
|
191
200
|
|
|
201
|
+
|
|
192
202
|
|
|
193
203
|
|
|
194
204
|
<span class="summary_desc"><div class='inline'><p>Shows how long it takes a method to run on the adapter.</p>
|
|
@@ -200,7 +210,7 @@ to Dynamoid.</p>
|
|
|
200
210
|
<li class="public ">
|
|
201
211
|
<span class="summary_signature">
|
|
202
212
|
|
|
203
|
-
<a href="#delete-instance_method" title="#delete (instance method)">- (Object) <strong>delete</strong>(table,
|
|
213
|
+
<a href="#delete-instance_method" title="#delete (instance method)">- (Object) <strong>delete</strong>(table, ids, options = {}) </a>
|
|
204
214
|
|
|
205
215
|
|
|
206
216
|
|
|
@@ -211,11 +221,35 @@ to Dynamoid.</p>
|
|
|
211
221
|
|
|
212
222
|
|
|
213
223
|
|
|
224
|
+
|
|
214
225
|
|
|
215
226
|
|
|
216
227
|
<span class="summary_desc"><div class='inline'><p>Delete an item from a table.</p>
|
|
217
228
|
</div></span>
|
|
218
229
|
|
|
230
|
+
</li>
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
<li class="public ">
|
|
234
|
+
<span class="summary_signature">
|
|
235
|
+
|
|
236
|
+
<a href="#get_original_id_and_partition-instance_method" title="#get_original_id_and_partition (instance method)">- (String) <strong>get_original_id_and_partition</strong>(id) </a>
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
</span>
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
<span class="summary_desc"><div class='inline'><p>Get original id (hash_key) and partiton number from a hash_key.</p>
|
|
251
|
+
</div></span>
|
|
252
|
+
|
|
219
253
|
</li>
|
|
220
254
|
|
|
221
255
|
|
|
@@ -233,6 +267,7 @@ to Dynamoid.</p>
|
|
|
233
267
|
|
|
234
268
|
|
|
235
269
|
|
|
270
|
+
|
|
236
271
|
|
|
237
272
|
|
|
238
273
|
<span class="summary_desc"><div class='inline'><p>Takes a list of ids and returns them with partitioning added.</p>
|
|
@@ -244,7 +279,7 @@ to Dynamoid.</p>
|
|
|
244
279
|
<li class="public ">
|
|
245
280
|
<span class="summary_signature">
|
|
246
281
|
|
|
247
|
-
<a href="#method_missing-instance_method" title="#method_missing (instance method)">- (Object) <strong>method_missing</strong>(method, *args) </a>
|
|
282
|
+
<a href="#method_missing-instance_method" title="#method_missing (instance method)">- (Object) <strong>method_missing</strong>(method, *args, &block) </a>
|
|
248
283
|
|
|
249
284
|
|
|
250
285
|
|
|
@@ -255,11 +290,35 @@ to Dynamoid.</p>
|
|
|
255
290
|
|
|
256
291
|
|
|
257
292
|
|
|
293
|
+
|
|
258
294
|
|
|
259
295
|
|
|
260
296
|
<span class="summary_desc"><div class='inline'><p>Delegate all methods that aren't defind here to the underlying adapter.</p>
|
|
261
297
|
</div></span>
|
|
262
298
|
|
|
299
|
+
</li>
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
<li class="public ">
|
|
303
|
+
<span class="summary_signature">
|
|
304
|
+
|
|
305
|
+
<a href="#query-instance_method" title="#query (instance method)">- (Array) <strong>query</strong>(table_name, opts = {}) </a>
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
</span>
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
<span class="summary_desc"><div class='inline'><p>Query the DynamoDB table.</p>
|
|
320
|
+
</div></span>
|
|
321
|
+
|
|
263
322
|
</li>
|
|
264
323
|
|
|
265
324
|
|
|
@@ -277,6 +336,7 @@ to Dynamoid.</p>
|
|
|
277
336
|
|
|
278
337
|
|
|
279
338
|
|
|
339
|
+
|
|
280
340
|
|
|
281
341
|
|
|
282
342
|
<span class="summary_desc"><div class='inline'><p>Read one or many keys from the selected table.</p>
|
|
@@ -299,6 +359,7 @@ to Dynamoid.</p>
|
|
|
299
359
|
|
|
300
360
|
|
|
301
361
|
|
|
362
|
+
|
|
302
363
|
|
|
303
364
|
|
|
304
365
|
<span class="summary_desc"><div class='inline'><p>Establishes a connection to the underyling adapter and caches all its tables for speedier future lookups.</p>
|
|
@@ -310,7 +371,7 @@ to Dynamoid.</p>
|
|
|
310
371
|
<li class="public ">
|
|
311
372
|
<span class="summary_signature">
|
|
312
373
|
|
|
313
|
-
<a href="#result_for_partition-instance_method" title="#result_for_partition (instance method)">- (Object) <strong>result_for_partition</strong>(results) </a>
|
|
374
|
+
<a href="#result_for_partition-instance_method" title="#result_for_partition (instance method)">- (Object) <strong>result_for_partition</strong>(results, table_name) </a>
|
|
314
375
|
|
|
315
376
|
|
|
316
377
|
|
|
@@ -321,9 +382,10 @@ to Dynamoid.</p>
|
|
|
321
382
|
|
|
322
383
|
|
|
323
384
|
|
|
385
|
+
|
|
324
386
|
|
|
325
387
|
|
|
326
|
-
<span class="summary_desc"><div class='inline'><p>Takes an array of results that are partitioned, find the most recently updated
|
|
388
|
+
<span class="summary_desc"><div class='inline'><p>Takes an array of query results that are partitioned, find the most recently updated ones that share an id and range_key, and return only the most recently updated.</p>
|
|
327
389
|
</div></span>
|
|
328
390
|
|
|
329
391
|
</li>
|
|
@@ -343,6 +405,7 @@ to Dynamoid.</p>
|
|
|
343
405
|
|
|
344
406
|
|
|
345
407
|
|
|
408
|
+
|
|
346
409
|
|
|
347
410
|
|
|
348
411
|
<span class="summary_desc"><div class='inline'><p>Scans a table.</p>
|
|
@@ -354,7 +417,7 @@ to Dynamoid.</p>
|
|
|
354
417
|
<li class="public ">
|
|
355
418
|
<span class="summary_signature">
|
|
356
419
|
|
|
357
|
-
<a href="#write-instance_method" title="#write (instance method)">- (Object) <strong>write</strong>(table, object) </a>
|
|
420
|
+
<a href="#write-instance_method" title="#write (instance method)">- (Object) <strong>write</strong>(table, object, options = nil) </a>
|
|
358
421
|
|
|
359
422
|
|
|
360
423
|
|
|
@@ -365,6 +428,7 @@ to Dynamoid.</p>
|
|
|
365
428
|
|
|
366
429
|
|
|
367
430
|
|
|
431
|
+
|
|
368
432
|
|
|
369
433
|
|
|
370
434
|
<span class="summary_desc"><div class='inline'><p>Write an object to the adapter.</p>
|
|
@@ -384,13 +448,15 @@ to Dynamoid.</p>
|
|
|
384
448
|
</p>
|
|
385
449
|
|
|
386
450
|
<div class="method_details first">
|
|
387
|
-
<
|
|
451
|
+
<h3 class="signature first" id="method_missing-instance_method">
|
|
452
|
+
|
|
453
|
+
- (<tt>Object</tt>) <strong>method_missing</strong>(method, *args, &block)
|
|
388
454
|
|
|
389
|
-
|
|
455
|
+
|
|
390
456
|
|
|
391
457
|
|
|
392
458
|
|
|
393
|
-
</
|
|
459
|
+
</h3><div class="docstring">
|
|
394
460
|
<div class="discussion">
|
|
395
461
|
<p>Delegate all methods that aren't defind here to the underlying adapter.</p>
|
|
396
462
|
|
|
@@ -399,7 +465,7 @@ to Dynamoid.</p>
|
|
|
399
465
|
</div>
|
|
400
466
|
<div class="tags">
|
|
401
467
|
|
|
402
|
-
<
|
|
468
|
+
<p class="tag_title">Since:</p>
|
|
403
469
|
<ul class="since">
|
|
404
470
|
|
|
405
471
|
<li>
|
|
@@ -421,16 +487,16 @@ to Dynamoid.</p>
|
|
|
421
487
|
<pre class="lines">
|
|
422
488
|
|
|
423
489
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
490
|
+
222
|
|
491
|
+
223
|
|
492
|
+
224
|
|
493
|
+
225</pre>
|
|
428
494
|
</td>
|
|
429
495
|
<td>
|
|
430
|
-
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line
|
|
496
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 222</span>
|
|
431
497
|
|
|
432
|
-
<span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
|
|
433
|
-
<span class='kw'>return</span> <span class='id identifier rubyid_benchmark'>benchmark</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='id identifier rubyid_adapter'>adapter</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='ivar'>@adapter</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
|
498
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
499
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_benchmark'>benchmark</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='id identifier rubyid_adapter'>adapter</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='ivar'>@adapter</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
|
434
500
|
<span class='kw'>super</span>
|
|
435
501
|
<span class='kw'>end</span></pre>
|
|
436
502
|
</td>
|
|
@@ -445,15 +511,16 @@ to Dynamoid.</p>
|
|
|
445
511
|
|
|
446
512
|
|
|
447
513
|
<span id="tables=-instance_method"></span>
|
|
448
|
-
<span id="tables-instance_method"></span>
|
|
449
514
|
<div class="method_details first">
|
|
450
|
-
<
|
|
515
|
+
<h3 class="signature first" id="tables-instance_method">
|
|
451
516
|
|
|
452
517
|
- (<tt>Object</tt>) <strong>tables</strong>
|
|
453
518
|
|
|
454
519
|
|
|
455
520
|
|
|
456
|
-
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
</h3><div class="docstring">
|
|
457
524
|
<div class="discussion">
|
|
458
525
|
<p>Returns the value of attribute tables</p>
|
|
459
526
|
|
|
@@ -489,25 +556,27 @@ to Dynamoid.</p>
|
|
|
489
556
|
|
|
490
557
|
<div id="instance_method_details" class="method_details_list">
|
|
491
558
|
<h2>Instance Method Details</h2>
|
|
492
|
-
|
|
559
|
+
|
|
493
560
|
|
|
494
561
|
<div class="method_details first">
|
|
495
|
-
<
|
|
562
|
+
<h3 class="signature first" id="adapter-instance_method">
|
|
496
563
|
|
|
497
564
|
- (<tt>Object</tt>) <strong>adapter</strong>
|
|
498
565
|
|
|
499
566
|
|
|
500
567
|
|
|
501
|
-
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
</h3><div class="docstring">
|
|
502
571
|
<div class="discussion">
|
|
503
|
-
<p>The actual adapter currently in use: presently
|
|
572
|
+
<p>The actual adapter currently in use: presently AwsSdk.</p>
|
|
504
573
|
|
|
505
574
|
|
|
506
575
|
</div>
|
|
507
576
|
</div>
|
|
508
577
|
<div class="tags">
|
|
509
578
|
|
|
510
|
-
<
|
|
579
|
+
<p class="tag_title">Since:</p>
|
|
511
580
|
<ul class="since">
|
|
512
581
|
|
|
513
582
|
<li>
|
|
@@ -547,13 +616,15 @@ to Dynamoid.</p>
|
|
|
547
616
|
</div>
|
|
548
617
|
|
|
549
618
|
<div class="method_details ">
|
|
550
|
-
<
|
|
619
|
+
<h3 class="signature " id="benchmark-instance_method">
|
|
551
620
|
|
|
552
621
|
- (<tt>Object</tt>) <strong>benchmark</strong>(method, *args) { ... }
|
|
553
622
|
|
|
554
623
|
|
|
555
624
|
|
|
556
|
-
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
</h3><div class="docstring">
|
|
557
628
|
<div class="discussion">
|
|
558
629
|
<p>Shows how long it takes a method to run on the adapter. Useful for generating logged output.</p>
|
|
559
630
|
|
|
@@ -561,7 +632,7 @@ to Dynamoid.</p>
|
|
|
561
632
|
</div>
|
|
562
633
|
</div>
|
|
563
634
|
<div class="tags">
|
|
564
|
-
<
|
|
635
|
+
<p class="tag_title">Parameters:</p>
|
|
565
636
|
<ul class="param">
|
|
566
637
|
|
|
567
638
|
<li>
|
|
@@ -596,7 +667,7 @@ to Dynamoid.</p>
|
|
|
596
667
|
|
|
597
668
|
</ul>
|
|
598
669
|
|
|
599
|
-
<
|
|
670
|
+
<p class="tag_title">Yields:</p>
|
|
600
671
|
<ul class="yield">
|
|
601
672
|
|
|
602
673
|
<li>
|
|
@@ -613,7 +684,7 @@ to Dynamoid.</p>
|
|
|
613
684
|
</li>
|
|
614
685
|
|
|
615
686
|
</ul>
|
|
616
|
-
<
|
|
687
|
+
<p class="tag_title">Returns:</p>
|
|
617
688
|
<ul class="return">
|
|
618
689
|
|
|
619
690
|
<li>
|
|
@@ -630,7 +701,7 @@ to Dynamoid.</p>
|
|
|
630
701
|
</li>
|
|
631
702
|
|
|
632
703
|
</ul>
|
|
633
|
-
<
|
|
704
|
+
<p class="tag_title">Since:</p>
|
|
634
705
|
<ul class="since">
|
|
635
706
|
|
|
636
707
|
<li>
|
|
@@ -674,13 +745,15 @@ to Dynamoid.</p>
|
|
|
674
745
|
</div>
|
|
675
746
|
|
|
676
747
|
<div class="method_details ">
|
|
677
|
-
<
|
|
748
|
+
<h3 class="signature " id="delete-instance_method">
|
|
678
749
|
|
|
679
|
-
- (<tt>Object</tt>) <strong>delete</strong>(table,
|
|
750
|
+
- (<tt>Object</tt>) <strong>delete</strong>(table, ids, options = {})
|
|
680
751
|
|
|
681
752
|
|
|
682
753
|
|
|
683
|
-
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
</h3><div class="docstring">
|
|
684
757
|
<div class="discussion">
|
|
685
758
|
<p>Delete an item from a table. If partitioning is turned on, deletes all partitioned keys as well.</p>
|
|
686
759
|
|
|
@@ -688,7 +761,7 @@ to Dynamoid.</p>
|
|
|
688
761
|
</div>
|
|
689
762
|
</div>
|
|
690
763
|
<div class="tags">
|
|
691
|
-
<
|
|
764
|
+
<p class="tag_title">Parameters:</p>
|
|
692
765
|
<ul class="param">
|
|
693
766
|
|
|
694
767
|
<li>
|
|
@@ -708,15 +781,15 @@ to Dynamoid.</p>
|
|
|
708
781
|
|
|
709
782
|
<li>
|
|
710
783
|
|
|
711
|
-
<span class='name'>
|
|
784
|
+
<span class='name'>ids</span>
|
|
712
785
|
|
|
713
786
|
|
|
714
|
-
<span class='type'>(<tt>
|
|
787
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
|
715
788
|
|
|
716
789
|
|
|
717
790
|
|
|
718
791
|
—
|
|
719
|
-
<div class='inline'><p>
|
|
792
|
+
<div class='inline'><p>to delete, can also be a string of just one id</p>
|
|
720
793
|
</div>
|
|
721
794
|
|
|
722
795
|
</li>
|
|
@@ -726,28 +799,131 @@ to Dynamoid.</p>
|
|
|
726
799
|
<span class='name'>range_key</span>
|
|
727
800
|
|
|
728
801
|
|
|
729
|
-
<span class='type'>(<tt>
|
|
802
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
|
730
803
|
|
|
731
804
|
|
|
732
805
|
|
|
733
806
|
—
|
|
734
|
-
<div class='inline'><p>the
|
|
807
|
+
<div class='inline'><p>of the record to delete, can also be a string of just one range_key</p>
|
|
735
808
|
</div>
|
|
736
809
|
|
|
737
810
|
</li>
|
|
738
811
|
|
|
739
812
|
</ul>
|
|
740
813
|
|
|
741
|
-
|
|
742
|
-
|
|
814
|
+
|
|
815
|
+
</div><table class="source_code">
|
|
816
|
+
<tr>
|
|
817
|
+
<td>
|
|
818
|
+
<pre class="lines">
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
101
|
|
822
|
+
102
|
|
823
|
+
103
|
|
824
|
+
104
|
|
825
|
+
105
|
|
826
|
+
106
|
|
827
|
+
107
|
|
828
|
+
108
|
|
829
|
+
109
|
|
830
|
+
110
|
|
831
|
+
111
|
|
832
|
+
112
|
|
833
|
+
113
|
|
834
|
+
114
|
|
835
|
+
115
|
|
836
|
+
116
|
|
837
|
+
117
|
|
838
|
+
118
|
|
839
|
+
119
|
|
840
|
+
120
|
|
841
|
+
121
|
|
842
|
+
122
|
|
843
|
+
123
|
|
844
|
+
124</pre>
|
|
845
|
+
</td>
|
|
846
|
+
<td>
|
|
847
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 101</span>
|
|
848
|
+
|
|
849
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
850
|
+
<span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span> <span class='comment'>#array of range keys that matches the ids passed in
|
|
851
|
+
</span> <span class='kw'>if</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:each</span><span class='rparen'>)</span>
|
|
852
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:each</span><span class='rparen'>)</span>
|
|
853
|
+
<span class='comment'>#turn ids into array of arrays each element being hash_key, range_key
|
|
854
|
+
</span> <span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span><span class='id identifier rubyid_range_key'>range_key</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
|
|
855
|
+
<span class='kw'>else</span>
|
|
856
|
+
<span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='lbracket'>[</span><span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id identifier rubyid_ids'>ids</span>
|
|
857
|
+
<span class='kw'>end</span>
|
|
858
|
+
|
|
859
|
+
<span class='kw'>if</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partitioning?'>partitioning?</span>
|
|
860
|
+
<span class='id identifier rubyid_batch_delete_item'>batch_delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
861
|
+
<span class='kw'>else</span>
|
|
862
|
+
<span class='id identifier rubyid_batch_delete_item'>batch_delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span>
|
|
863
|
+
<span class='kw'>end</span>
|
|
864
|
+
<span class='kw'>else</span>
|
|
865
|
+
<span class='kw'>if</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partitioning?'>partitioning?</span>
|
|
866
|
+
<span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='lbracket'>[</span><span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id identifier rubyid_ids'>ids</span>
|
|
867
|
+
<span class='id identifier rubyid_batch_delete_item'>batch_delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
868
|
+
<span class='kw'>else</span>
|
|
869
|
+
<span class='id identifier rubyid_delete_item'>delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
|
870
|
+
<span class='kw'>end</span>
|
|
871
|
+
<span class='kw'>end</span>
|
|
872
|
+
<span class='kw'>end</span></pre>
|
|
873
|
+
</td>
|
|
874
|
+
</tr>
|
|
875
|
+
</table>
|
|
876
|
+
</div>
|
|
877
|
+
|
|
878
|
+
<div class="method_details ">
|
|
879
|
+
<h3 class="signature " id="get_original_id_and_partition-instance_method">
|
|
880
|
+
|
|
881
|
+
- (<tt>String</tt>) <strong>get_original_id_and_partition</strong>(id)
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
|
|
885
|
+
|
|
886
|
+
|
|
887
|
+
</h3><div class="docstring">
|
|
888
|
+
<div class="discussion">
|
|
889
|
+
<p>Get original id (hash_key) and partiton number from a hash_key</p>
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
</div>
|
|
893
|
+
</div>
|
|
894
|
+
<div class="tags">
|
|
895
|
+
<p class="tag_title">Parameters:</p>
|
|
896
|
+
<ul class="param">
|
|
743
897
|
|
|
744
898
|
<li>
|
|
745
899
|
|
|
900
|
+
<span class='name'>id</span>
|
|
746
901
|
|
|
747
902
|
|
|
903
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
748
904
|
|
|
749
|
-
|
|
750
|
-
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
—
|
|
908
|
+
<div class='inline'><p>the id or hash_key of a record, ex. xxxxx.13</p>
|
|
909
|
+
</div>
|
|
910
|
+
|
|
911
|
+
</li>
|
|
912
|
+
|
|
913
|
+
</ul>
|
|
914
|
+
|
|
915
|
+
<p class="tag_title">Returns:</p>
|
|
916
|
+
<ul class="return">
|
|
917
|
+
|
|
918
|
+
<li>
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
<span class='type'>(<tt>String</tt>, <tt>String</tt>)</span>
|
|
922
|
+
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
—
|
|
926
|
+
<div class='inline'><p>original_id and the partition number, ex original_id = xxxxx partition = 13</p>
|
|
751
927
|
</div>
|
|
752
928
|
|
|
753
929
|
</li>
|
|
@@ -760,27 +936,21 @@ to Dynamoid.</p>
|
|
|
760
936
|
<pre class="lines">
|
|
761
937
|
|
|
762
938
|
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
104
|
|
770
|
-
105
|
|
771
|
-
106</pre>
|
|
939
|
+
170
|
|
940
|
+
171
|
|
941
|
+
172
|
|
942
|
+
173
|
|
943
|
+
174
|
|
944
|
+
175</pre>
|
|
772
945
|
</td>
|
|
773
946
|
<td>
|
|
774
|
-
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line
|
|
947
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 170</span>
|
|
775
948
|
|
|
776
|
-
<span class='kw'>def</span> <span class='id identifier
|
|
777
|
-
<span class='
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
<span class='kw'>else</span>
|
|
782
|
-
<span class='id identifier rubyid_benchmark'>benchmark</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Delete Item</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='id identifier rubyid_delete_item'>delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span><span class='rbrace'>}</span>
|
|
783
|
-
<span class='kw'>end</span>
|
|
949
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_get_original_id_and_partition'>get_original_id_and_partition</span> <span class='id identifier rubyid_id'>id</span>
|
|
950
|
+
<span class='id identifier rubyid_partition'>partition</span> <span class='op'>=</span> <span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span>
|
|
951
|
+
<span class='id identifier rubyid_id'>id</span> <span class='op'>=</span> <span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_partition'>partition</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
|
952
|
+
|
|
953
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_partition'>partition</span>
|
|
784
954
|
<span class='kw'>end</span></pre>
|
|
785
955
|
</td>
|
|
786
956
|
</tr>
|
|
@@ -788,15 +958,17 @@ to Dynamoid.</p>
|
|
|
788
958
|
</div>
|
|
789
959
|
|
|
790
960
|
<div class="method_details ">
|
|
791
|
-
<
|
|
961
|
+
<h3 class="signature " id="id_with_partitions-instance_method">
|
|
792
962
|
|
|
793
963
|
- (<tt>Object</tt>) <strong>id_with_partitions</strong>(ids)
|
|
794
964
|
|
|
795
965
|
|
|
796
966
|
|
|
797
|
-
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
</h3><div class="docstring">
|
|
798
970
|
<div class="discussion">
|
|
799
|
-
<p>Takes a list of ids and returns them with partitioning added. If an array of arrays is passed, we assume the second key is the range key
|
|
971
|
+
<p>Takes a list of ids and returns them with partitioning added. If an array of arrays is passed, we assume the second key is the range key
|
|
800
972
|
and pass it in unchanged.</p>
|
|
801
973
|
|
|
802
974
|
|
|
@@ -805,18 +977,22 @@ and pass it in unchanged.</p>
|
|
|
805
977
|
<div class="tags">
|
|
806
978
|
|
|
807
979
|
<div class="examples">
|
|
808
|
-
<
|
|
980
|
+
<p class="tag_title">Examples:</p>
|
|
809
981
|
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
982
|
+
|
|
983
|
+
<p class="example_title"><div class='inline'><p>Partition id 1</p>
|
|
984
|
+
</div></p>
|
|
985
|
+
|
|
986
|
+
<pre class="example code"><code><span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='comment'># ['1.0', '1.1', '1.2', ..., '1.199']</span></code></pre>
|
|
813
987
|
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
988
|
+
|
|
989
|
+
<p class="example_title"><div class='inline'><p>Partition id 1 and range_key 1.0</p>
|
|
990
|
+
</div></p>
|
|
991
|
+
|
|
992
|
+
<pre class="example code"><code><span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='float'>1.0</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='comment'># [['1.0', 1.0], ['1.1', 1.0], ['1.2', 1.0], ..., ['1.199', 1.0]]</span></code></pre>
|
|
817
993
|
|
|
818
994
|
</div>
|
|
819
|
-
<
|
|
995
|
+
<p class="tag_title">Parameters:</p>
|
|
820
996
|
<ul class="param">
|
|
821
997
|
|
|
822
998
|
<li>
|
|
@@ -836,7 +1012,7 @@ and pass it in unchanged.</p>
|
|
|
836
1012
|
|
|
837
1013
|
</ul>
|
|
838
1014
|
|
|
839
|
-
<
|
|
1015
|
+
<p class="tag_title">Since:</p>
|
|
840
1016
|
<ul class="since">
|
|
841
1017
|
|
|
842
1018
|
<li>
|
|
@@ -858,12 +1034,12 @@ and pass it in unchanged.</p>
|
|
|
858
1034
|
<pre class="lines">
|
|
859
1035
|
|
|
860
1036
|
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
1037
|
+
161
|
|
1038
|
+
162
|
|
1039
|
+
163</pre>
|
|
864
1040
|
</td>
|
|
865
1041
|
<td>
|
|
866
|
-
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line
|
|
1042
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 161</span>
|
|
867
1043
|
|
|
868
1044
|
<span class='kw'>def</span> <span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span>
|
|
869
1045
|
<span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_id'>id</span><span class='op'>|</span> <span class='lparen'>(</span><span class='int'>0</span><span class='op'>...</span><span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partition_size'>partition_size</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span> <span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Array</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='rbrace'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_n'>n</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_id'>id</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_id'>id</span><span class='rbrace'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_n'>n</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
|
@@ -874,24 +1050,246 @@ and pass it in unchanged.</p>
|
|
|
874
1050
|
</div>
|
|
875
1051
|
|
|
876
1052
|
<div class="method_details ">
|
|
877
|
-
<
|
|
1053
|
+
<h3 class="signature " id="query-instance_method">
|
|
1054
|
+
|
|
1055
|
+
- (<tt>Array</tt>) <strong>query</strong>(table_name, opts = {})
|
|
1056
|
+
|
|
1057
|
+
|
|
1058
|
+
|
|
1059
|
+
|
|
1060
|
+
|
|
1061
|
+
</h3><div class="docstring">
|
|
1062
|
+
<div class="discussion">
|
|
1063
|
+
<p>Query the DynamoDB table. This employs DynamoDB's indexes so is generally faster than scanning, but is
|
|
1064
|
+
only really useful for range queries, since it can only find by one hash key at once. Only provide
|
|
1065
|
+
one range key to the hash. If paritioning is on, will run a query for every parition and join the results</p>
|
|
1066
|
+
|
|
1067
|
+
|
|
1068
|
+
</div>
|
|
1069
|
+
</div>
|
|
1070
|
+
<div class="tags">
|
|
1071
|
+
<p class="tag_title">Parameters:</p>
|
|
1072
|
+
<ul class="param">
|
|
1073
|
+
|
|
1074
|
+
<li>
|
|
1075
|
+
|
|
1076
|
+
<span class='name'>table_name</span>
|
|
1077
|
+
|
|
1078
|
+
|
|
1079
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
—
|
|
1084
|
+
<div class='inline'><p>the name of the table</p>
|
|
1085
|
+
</div>
|
|
1086
|
+
|
|
1087
|
+
</li>
|
|
1088
|
+
|
|
1089
|
+
<li>
|
|
1090
|
+
|
|
1091
|
+
<span class='name'>opts</span>
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
1095
|
+
|
|
1096
|
+
|
|
1097
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
—
|
|
1101
|
+
<div class='inline'><p>the options to query the table with</p>
|
|
1102
|
+
</div>
|
|
1103
|
+
|
|
1104
|
+
</li>
|
|
1105
|
+
|
|
1106
|
+
</ul>
|
|
1107
|
+
|
|
1108
|
+
|
|
1109
|
+
|
|
1110
|
+
|
|
1111
|
+
|
|
1112
|
+
|
|
1113
|
+
<p class="tag_title">Options Hash (<tt>opts</tt>):</p>
|
|
1114
|
+
<ul class="option">
|
|
1115
|
+
|
|
1116
|
+
<li>
|
|
1117
|
+
<span class="name">:hash_value</span>
|
|
1118
|
+
<span class="type">(<tt>String</tt>)</span>
|
|
1119
|
+
<span class="default">
|
|
1120
|
+
|
|
1121
|
+
</span>
|
|
1122
|
+
|
|
1123
|
+
— <div class='inline'><p>the value of the hash key to find</p>
|
|
1124
|
+
</div>
|
|
1125
|
+
|
|
1126
|
+
</li>
|
|
1127
|
+
|
|
1128
|
+
<li>
|
|
1129
|
+
<span class="name">:range_value</span>
|
|
1130
|
+
<span class="type">(<tt>Range</tt>)</span>
|
|
1131
|
+
<span class="default">
|
|
1132
|
+
|
|
1133
|
+
</span>
|
|
1134
|
+
|
|
1135
|
+
— <div class='inline'><p>find the range key within this range</p>
|
|
1136
|
+
</div>
|
|
1137
|
+
|
|
1138
|
+
</li>
|
|
1139
|
+
|
|
1140
|
+
<li>
|
|
1141
|
+
<span class="name">:range_greater_than</span>
|
|
1142
|
+
<span class="type">(<tt>Number</tt>)</span>
|
|
1143
|
+
<span class="default">
|
|
1144
|
+
|
|
1145
|
+
</span>
|
|
1146
|
+
|
|
1147
|
+
— <div class='inline'><p>find range keys greater than this</p>
|
|
1148
|
+
</div>
|
|
1149
|
+
|
|
1150
|
+
</li>
|
|
1151
|
+
|
|
1152
|
+
<li>
|
|
1153
|
+
<span class="name">:range_less_than</span>
|
|
1154
|
+
<span class="type">(<tt>Number</tt>)</span>
|
|
1155
|
+
<span class="default">
|
|
1156
|
+
|
|
1157
|
+
</span>
|
|
1158
|
+
|
|
1159
|
+
— <div class='inline'><p>find range keys less than this</p>
|
|
1160
|
+
</div>
|
|
1161
|
+
|
|
1162
|
+
</li>
|
|
1163
|
+
|
|
1164
|
+
<li>
|
|
1165
|
+
<span class="name">:range_gte</span>
|
|
1166
|
+
<span class="type">(<tt>Number</tt>)</span>
|
|
1167
|
+
<span class="default">
|
|
1168
|
+
|
|
1169
|
+
</span>
|
|
1170
|
+
|
|
1171
|
+
— <div class='inline'><p>find range keys greater than or equal to this</p>
|
|
1172
|
+
</div>
|
|
1173
|
+
|
|
1174
|
+
</li>
|
|
1175
|
+
|
|
1176
|
+
<li>
|
|
1177
|
+
<span class="name">:range_lte</span>
|
|
1178
|
+
<span class="type">(<tt>Number</tt>)</span>
|
|
1179
|
+
<span class="default">
|
|
1180
|
+
|
|
1181
|
+
</span>
|
|
1182
|
+
|
|
1183
|
+
— <div class='inline'><p>find range keys less than or equal to this</p>
|
|
1184
|
+
</div>
|
|
1185
|
+
|
|
1186
|
+
</li>
|
|
1187
|
+
|
|
1188
|
+
</ul>
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
<p class="tag_title">Returns:</p>
|
|
1192
|
+
<ul class="return">
|
|
1193
|
+
|
|
1194
|
+
<li>
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
—
|
|
1202
|
+
<div class='inline'><p>an array of all matching items</p>
|
|
1203
|
+
</div>
|
|
1204
|
+
|
|
1205
|
+
</li>
|
|
1206
|
+
|
|
1207
|
+
</ul>
|
|
1208
|
+
|
|
1209
|
+
</div><table class="source_code">
|
|
1210
|
+
<tr>
|
|
1211
|
+
<td>
|
|
1212
|
+
<pre class="lines">
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
242
|
|
1216
|
+
243
|
|
1217
|
+
244
|
|
1218
|
+
245
|
|
1219
|
+
246
|
|
1220
|
+
247
|
|
1221
|
+
248
|
|
1222
|
+
249
|
|
1223
|
+
250
|
|
1224
|
+
251
|
|
1225
|
+
252
|
|
1226
|
+
253
|
|
1227
|
+
254
|
|
1228
|
+
255
|
|
1229
|
+
256
|
|
1230
|
+
257
|
|
1231
|
+
258
|
|
1232
|
+
259
|
|
1233
|
+
260
|
|
1234
|
+
261
|
|
1235
|
+
262
|
|
1236
|
+
263
|
|
1237
|
+
264
|
|
1238
|
+
265</pre>
|
|
1239
|
+
</td>
|
|
1240
|
+
<td>
|
|
1241
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 242</span>
|
|
1242
|
+
|
|
1243
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_query'>query</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_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='rparen'>)</span>
|
|
1244
|
+
|
|
1245
|
+
<span class='kw'>unless</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partitioning?'>partitioning?</span>
|
|
1246
|
+
<span class='comment'>#no paritioning? just pass to the standard query method
|
|
1247
|
+
</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='op'>::</span><span class='const'>AwsSdk</span><span class='period'>.</span><span class='id identifier rubyid_query'>query</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
|
1248
|
+
<span class='kw'>else</span>
|
|
1249
|
+
<span class='comment'>#get all the hash_values that could be possible
|
|
1250
|
+
</span> <span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
|
1251
|
+
|
|
1252
|
+
<span class='comment'>#lets not overwrite with the original options
|
|
1253
|
+
</span> <span class='id identifier rubyid_modified_options'>modified_options</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_clone'>clone</span>
|
|
1254
|
+
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
|
1255
|
+
|
|
1256
|
+
<span class='comment'>#loop and query on each of the partition ids
|
|
1257
|
+
</span> <span class='id identifier rubyid_ids'>ids</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_id'>id</span><span class='op'>|</span>
|
|
1258
|
+
<span class='id identifier rubyid_modified_options'>modified_options</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_id'>id</span>
|
|
1259
|
+
|
|
1260
|
+
<span class='id identifier rubyid_query_result'>query_result</span> <span class='op'>=</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='op'>::</span><span class='const'>AwsSdk</span><span class='period'>.</span><span class='id identifier rubyid_query'>query</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_modified_options'>modified_options</span><span class='rparen'>)</span>
|
|
1261
|
+
<span class='id identifier rubyid_results'>results</span> <span class='op'>+=</span> <span class='id identifier rubyid_query_result'>query_result</span><span class='period'>.</span><span class='id identifier rubyid_inject'>inject</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_result'>result</span><span class='op'>|</span> <span class='id identifier rubyid_array'>array</span> <span class='op'>+=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_result'>result</span><span class='rbracket'>]</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_query_result'>query_result</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
|
|
1262
|
+
<span class='kw'>end</span>
|
|
1263
|
+
|
|
1264
|
+
<span class='id identifier rubyid_result_for_partition'>result_for_partition</span> <span class='id identifier rubyid_results'>results</span><span class='comma'>,</span> <span class='id identifier rubyid_table_name'>table_name</span>
|
|
1265
|
+
<span class='kw'>end</span>
|
|
1266
|
+
<span class='kw'>end</span></pre>
|
|
1267
|
+
</td>
|
|
1268
|
+
</tr>
|
|
1269
|
+
</table>
|
|
1270
|
+
</div>
|
|
1271
|
+
|
|
1272
|
+
<div class="method_details ">
|
|
1273
|
+
<h3 class="signature " id="read-instance_method">
|
|
878
1274
|
|
|
879
1275
|
- (<tt>Object</tt>) <strong>read</strong>(table, ids, options = {})
|
|
880
1276
|
|
|
881
1277
|
|
|
882
1278
|
|
|
883
|
-
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
</h3><div class="docstring">
|
|
884
1282
|
<div class="discussion">
|
|
885
1283
|
<p>Read one or many keys from the selected table. This method intelligently calls batch_get or get on the underlying adapter depending on
|
|
886
1284
|
whether ids is a range or a single key: additionally, if partitioning is enabled, it batch_gets all keys in the partition space
|
|
887
|
-
automatically. Finally, if a range key is present, it will also interpolate that into the ids so that the batch get will acquire the
|
|
1285
|
+
automatically. Finally, if a range key is present, it will also interpolate that into the ids so that the batch get will acquire the
|
|
888
1286
|
correct record.</p>
|
|
889
1287
|
|
|
890
1288
|
|
|
891
1289
|
</div>
|
|
892
1290
|
</div>
|
|
893
1291
|
<div class="tags">
|
|
894
|
-
<
|
|
1292
|
+
<p class="tag_title">Parameters:</p>
|
|
895
1293
|
<ul class="param">
|
|
896
1294
|
|
|
897
1295
|
<li>
|
|
@@ -926,22 +1324,23 @@ correct record.</p>
|
|
|
926
1324
|
|
|
927
1325
|
<li>
|
|
928
1326
|
|
|
929
|
-
<span class='name'>
|
|
1327
|
+
<span class='name'>options:</span>
|
|
930
1328
|
|
|
931
1329
|
|
|
932
|
-
<span class='type'>(<tt>
|
|
1330
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
933
1331
|
|
|
934
1332
|
|
|
935
1333
|
|
|
936
1334
|
—
|
|
937
|
-
<div class='inline'><p>the
|
|
1335
|
+
<div class='inline'><p>Passed to the underlying query. The :range_key option is required whenever the table has a range key,
|
|
1336
|
+
unless multiple ids are passed in and Dynamoid::Config.partitioning? is turned off.</p>
|
|
938
1337
|
</div>
|
|
939
1338
|
|
|
940
1339
|
</li>
|
|
941
1340
|
|
|
942
1341
|
</ul>
|
|
943
1342
|
|
|
944
|
-
<
|
|
1343
|
+
<p class="tag_title">Since:</p>
|
|
945
1344
|
<ul class="since">
|
|
946
1345
|
|
|
947
1346
|
<li>
|
|
@@ -963,8 +1362,6 @@ correct record.</p>
|
|
|
963
1362
|
<pre class="lines">
|
|
964
1363
|
|
|
965
1364
|
|
|
966
|
-
70
|
|
967
|
-
71
|
|
968
1365
|
72
|
|
969
1366
|
73
|
|
970
1367
|
74
|
|
@@ -982,28 +1379,34 @@ correct record.</p>
|
|
|
982
1379
|
86
|
|
983
1380
|
87
|
|
984
1381
|
88
|
|
985
|
-
89
|
|
1382
|
+
89
|
|
1383
|
+
90
|
|
1384
|
+
91
|
|
1385
|
+
92
|
|
1386
|
+
93</pre>
|
|
986
1387
|
</td>
|
|
987
1388
|
<td>
|
|
988
|
-
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line
|
|
1389
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 72</span>
|
|
989
1390
|
|
|
990
1391
|
<span class='kw'>def</span> <span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
991
|
-
<span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='
|
|
1392
|
+
<span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:range_key</span><span class='rparen'>)</span>
|
|
1393
|
+
|
|
992
1394
|
<span class='kw'>if</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:each</span><span class='rparen'>)</span>
|
|
993
1395
|
<span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_id'>id</span><span class='op'>|</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id identifier rubyid_id'>id</span><span class='rbrace'>}</span>
|
|
994
1396
|
<span class='kw'>if</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partitioning?'>partitioning?</span>
|
|
995
|
-
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier
|
|
996
|
-
<span class='lbrace'>{</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='id identifier rubyid_table'>table</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span>
|
|
1397
|
+
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_batch_get_item'>batch_get_item</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
|
1398
|
+
<span class='lbrace'>{</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='id identifier rubyid_table'>table</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_table'>table</span><span class='rparen'>)</span><span class='rbrace'>}</span>
|
|
997
1399
|
<span class='kw'>else</span>
|
|
998
|
-
<span class='id identifier
|
|
1400
|
+
<span class='id identifier rubyid_batch_get_item'>batch_get_item</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_ids'>ids</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
|
999
1401
|
<span class='kw'>end</span>
|
|
1000
1402
|
<span class='kw'>else</span>
|
|
1001
1403
|
<span class='kw'>if</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partitioning?'>partitioning?</span>
|
|
1002
1404
|
<span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='lbracket'>[</span><span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id identifier rubyid_ids'>ids</span>
|
|
1003
|
-
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier
|
|
1004
|
-
<span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='id identifier rubyid_table'>table</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
|
1405
|
+
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_batch_get_item'>batch_get_item</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='id identifier rubyid_table'>table</span> <span class='op'>=></span> <span class='id identifier rubyid_id_with_partitions'>id_with_partitions</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
|
1406
|
+
<span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='id identifier rubyid_table'>table</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_table'>table</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
|
1005
1407
|
<span class='kw'>else</span>
|
|
1006
|
-
<span class='id identifier
|
|
1408
|
+
<span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='kw'>if</span> <span class='id identifier rubyid_range_key'>range_key</span>
|
|
1409
|
+
<span class='id identifier rubyid_get_item'>get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
|
1007
1410
|
<span class='kw'>end</span>
|
|
1008
1411
|
<span class='kw'>end</span>
|
|
1009
1412
|
<span class='kw'>end</span></pre>
|
|
@@ -1013,13 +1416,15 @@ correct record.</p>
|
|
|
1013
1416
|
</div>
|
|
1014
1417
|
|
|
1015
1418
|
<div class="method_details ">
|
|
1016
|
-
<
|
|
1419
|
+
<h3 class="signature " id="reconnect!-instance_method">
|
|
1017
1420
|
|
|
1018
1421
|
- (<tt>Object</tt>) <strong>reconnect!</strong>
|
|
1019
1422
|
|
|
1020
1423
|
|
|
1021
1424
|
|
|
1022
|
-
|
|
1425
|
+
|
|
1426
|
+
|
|
1427
|
+
</h3><div class="docstring">
|
|
1023
1428
|
<div class="discussion">
|
|
1024
1429
|
<p>Establishes a connection to the underyling adapter and caches all its tables for speedier future lookups. Issued when the adapter is first called.</p>
|
|
1025
1430
|
|
|
@@ -1028,7 +1433,7 @@ correct record.</p>
|
|
|
1028
1433
|
</div>
|
|
1029
1434
|
<div class="tags">
|
|
1030
1435
|
|
|
1031
|
-
<
|
|
1436
|
+
<p class="tag_title">Since:</p>
|
|
1032
1437
|
<ul class="since">
|
|
1033
1438
|
|
|
1034
1439
|
<li>
|
|
@@ -1072,22 +1477,24 @@ correct record.</p>
|
|
|
1072
1477
|
</div>
|
|
1073
1478
|
|
|
1074
1479
|
<div class="method_details ">
|
|
1075
|
-
<
|
|
1480
|
+
<h3 class="signature " id="result_for_partition-instance_method">
|
|
1076
1481
|
|
|
1077
|
-
- (<tt>Object</tt>) <strong>result_for_partition</strong>(results)
|
|
1482
|
+
- (<tt>Object</tt>) <strong>result_for_partition</strong>(results, table_name)
|
|
1078
1483
|
|
|
1079
1484
|
|
|
1080
1485
|
|
|
1081
|
-
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
</h3><div class="docstring">
|
|
1082
1489
|
<div class="discussion">
|
|
1083
|
-
<p>Takes an array of results that are partitioned, find the most recently updated
|
|
1490
|
+
<p>Takes an array of query results that are partitioned, find the most recently updated ones that share an id and range_key, and return only the most recently updated. Compares each result by
|
|
1084
1491
|
their id and updated_at attributes; if the updated_at is the greatest, then it must be the correct result.</p>
|
|
1085
1492
|
|
|
1086
1493
|
|
|
1087
1494
|
</div>
|
|
1088
1495
|
</div>
|
|
1089
1496
|
<div class="tags">
|
|
1090
|
-
<
|
|
1497
|
+
<p class="tag_title">Parameters:</p>
|
|
1091
1498
|
<ul class="param">
|
|
1092
1499
|
|
|
1093
1500
|
<li>
|
|
@@ -1105,9 +1512,24 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1105
1512
|
|
|
1106
1513
|
</li>
|
|
1107
1514
|
|
|
1515
|
+
<li>
|
|
1516
|
+
|
|
1517
|
+
<span class='name'>table_name</span>
|
|
1518
|
+
|
|
1519
|
+
|
|
1520
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1521
|
+
|
|
1522
|
+
|
|
1523
|
+
|
|
1524
|
+
—
|
|
1525
|
+
<div class='inline'><p>the name of the table</p>
|
|
1526
|
+
</div>
|
|
1527
|
+
|
|
1528
|
+
</li>
|
|
1529
|
+
|
|
1108
1530
|
</ul>
|
|
1109
1531
|
|
|
1110
|
-
<
|
|
1532
|
+
<p class="tag_title">Since:</p>
|
|
1111
1533
|
<ul class="since">
|
|
1112
1534
|
|
|
1113
1535
|
<li>
|
|
@@ -1129,33 +1551,77 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1129
1551
|
<pre class="lines">
|
|
1130
1552
|
|
|
1131
1553
|
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1554
|
+
184
|
|
1555
|
+
185
|
|
1556
|
+
186
|
|
1557
|
+
187
|
|
1558
|
+
188
|
|
1559
|
+
189
|
|
1560
|
+
190
|
|
1561
|
+
191
|
|
1562
|
+
192
|
|
1563
|
+
193
|
|
1564
|
+
194
|
|
1565
|
+
195
|
|
1566
|
+
196
|
|
1567
|
+
197
|
|
1568
|
+
198
|
|
1569
|
+
199
|
|
1570
|
+
200
|
|
1571
|
+
201
|
|
1572
|
+
202
|
|
1573
|
+
203
|
|
1574
|
+
204
|
|
1575
|
+
205
|
|
1576
|
+
206
|
|
1577
|
+
207
|
|
1578
|
+
208
|
|
1579
|
+
209
|
|
1580
|
+
210
|
|
1581
|
+
211
|
|
1582
|
+
212
|
|
1583
|
+
213
|
|
1584
|
+
214
|
|
1585
|
+
215
|
|
1586
|
+
216
|
|
1587
|
+
217</pre>
|
|
1144
1588
|
</td>
|
|
1145
1589
|
<td>
|
|
1146
|
-
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line
|
|
1147
|
-
|
|
1148
|
-
<span class='kw'>def</span> <span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='rparen'>)</span>
|
|
1149
|
-
<span class='
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1590
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 184</span>
|
|
1591
|
+
|
|
1592
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='comma'>,</span> <span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
|
|
1593
|
+
<span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='op'>::</span><span class='const'>AwsSdk</span><span class='period'>.</span><span class='id identifier rubyid_get_table'>get_table</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
|
|
1594
|
+
|
|
1595
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_range_key'>range_key</span>
|
|
1596
|
+
<span class='id identifier rubyid_range_key_name'>range_key_name</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_range_key'>range_key</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
|
|
1597
|
+
|
|
1598
|
+
<span class='id identifier rubyid_final_hash'>final_hash</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
|
1599
|
+
|
|
1600
|
+
<span class='id identifier rubyid_results'>results</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_record'>record</span><span class='op'>|</span>
|
|
1601
|
+
<span class='id identifier rubyid_test_record'>test_record</span> <span class='op'>=</span> <span class='id identifier rubyid_final_hash'>final_hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_record'>record</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key_name'>range_key_name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
|
1602
|
+
|
|
1603
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_test_record'>test_record</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key_name'>range_key_name</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_test_record'>test_record</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key_name'>range_key_name</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>></span> <span class='id identifier rubyid_test_record'>test_record</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
1604
|
+
<span class='comment'>#get ride of our partition and put it in the array with the range key
|
|
1605
|
+
</span> <span class='id identifier rubyid_record'>record</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_partition'>partition</span> <span class='op'>=</span> <span class='id identifier rubyid_get_original_id_and_partition'>get_original_id_and_partition</span> <span class='id identifier rubyid_record'>record</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span>
|
|
1606
|
+
<span class='id identifier rubyid_final_hash'>final_hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_record'>record</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key_name'>range_key_name</span><span class='rbracket'>]</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_record'>record</span>
|
|
1156
1607
|
<span class='kw'>end</span>
|
|
1157
1608
|
<span class='kw'>end</span>
|
|
1158
|
-
|
|
1609
|
+
|
|
1610
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_final_hash'>final_hash</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span>
|
|
1611
|
+
<span class='kw'>else</span>
|
|
1612
|
+
<span class='lbrace'>{</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_hash'>hash</span><span class='op'>|</span>
|
|
1613
|
+
<span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_result'>result</span><span class='op'>|</span>
|
|
1614
|
+
<span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
|
1615
|
+
<span class='comment'>#Need to find the value of id with out the . and partition number
|
|
1616
|
+
</span> <span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_partition'>partition</span> <span class='op'>=</span> <span class='id identifier rubyid_get_original_id_and_partition'>get_original_id_and_partition</span> <span class='id identifier rubyid_result'>result</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span>
|
|
1617
|
+
|
|
1618
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>></span> <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
|
1619
|
+
<span class='id identifier rubyid_result'>result</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_id'>id</span>
|
|
1620
|
+
<span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_result'>result</span>
|
|
1621
|
+
<span class='kw'>end</span>
|
|
1622
|
+
<span class='kw'>end</span>
|
|
1623
|
+
<span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span>
|
|
1624
|
+
<span class='kw'>end</span>
|
|
1159
1625
|
<span class='kw'>end</span></pre>
|
|
1160
1626
|
</td>
|
|
1161
1627
|
</tr>
|
|
@@ -1163,13 +1629,15 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1163
1629
|
</div>
|
|
1164
1630
|
|
|
1165
1631
|
<div class="method_details ">
|
|
1166
|
-
<
|
|
1632
|
+
<h3 class="signature " id="scan-instance_method">
|
|
1167
1633
|
|
|
1168
1634
|
- (<tt>Object</tt>) <strong>scan</strong>(table, query, opts = {})
|
|
1169
1635
|
|
|
1170
1636
|
|
|
1171
1637
|
|
|
1172
|
-
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
</h3><div class="docstring">
|
|
1173
1641
|
<div class="discussion">
|
|
1174
1642
|
<p>Scans a table. Generally quite slow; try to avoid using scan if at all possible.</p>
|
|
1175
1643
|
|
|
@@ -1177,7 +1645,7 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1177
1645
|
</div>
|
|
1178
1646
|
</div>
|
|
1179
1647
|
<div class="tags">
|
|
1180
|
-
<
|
|
1648
|
+
<p class="tag_title">Parameters:</p>
|
|
1181
1649
|
<ul class="param">
|
|
1182
1650
|
|
|
1183
1651
|
<li>
|
|
@@ -1212,7 +1680,7 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1212
1680
|
|
|
1213
1681
|
</ul>
|
|
1214
1682
|
|
|
1215
|
-
<
|
|
1683
|
+
<p class="tag_title">Since:</p>
|
|
1216
1684
|
<ul class="since">
|
|
1217
1685
|
|
|
1218
1686
|
<li>
|
|
@@ -1234,24 +1702,24 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1234
1702
|
<pre class="lines">
|
|
1235
1703
|
|
|
1236
1704
|
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1705
|
+
132
|
|
1706
|
+
133
|
|
1707
|
+
134
|
|
1708
|
+
135
|
|
1709
|
+
136
|
|
1710
|
+
137
|
|
1711
|
+
138
|
|
1712
|
+
139</pre>
|
|
1245
1713
|
</td>
|
|
1246
1714
|
<td>
|
|
1247
|
-
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line
|
|
1715
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 132</span>
|
|
1248
1716
|
|
|
1249
1717
|
<span class='kw'>def</span> <span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</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='rparen'>)</span>
|
|
1250
1718
|
<span class='kw'>if</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partitioning?'>partitioning?</span>
|
|
1251
1719
|
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_benchmark'>benchmark</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Scan</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='id identifier rubyid_adapter'>adapter</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span><span class='rbrace'>}</span>
|
|
1252
|
-
<span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='rparen'>)</span>
|
|
1720
|
+
<span class='id identifier rubyid_result_for_partition'>result_for_partition</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='comma'>,</span><span class='id identifier rubyid_table'>table</span><span class='rparen'>)</span>
|
|
1253
1721
|
<span class='kw'>else</span>
|
|
1254
|
-
<span class='id identifier rubyid_adapter'>adapter</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
|
|
1722
|
+
<span class='id identifier rubyid_benchmark'>benchmark</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Scan</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='id identifier rubyid_adapter'>adapter</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span><span class='rbrace'>}</span>
|
|
1255
1723
|
<span class='kw'>end</span>
|
|
1256
1724
|
<span class='kw'>end</span></pre>
|
|
1257
1725
|
</td>
|
|
@@ -1260,13 +1728,15 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1260
1728
|
</div>
|
|
1261
1729
|
|
|
1262
1730
|
<div class="method_details ">
|
|
1263
|
-
<
|
|
1731
|
+
<h3 class="signature " id="write-instance_method">
|
|
1264
1732
|
|
|
1265
|
-
- (<tt>Object</tt>) <strong>write</strong>(table, object)
|
|
1733
|
+
- (<tt>Object</tt>) <strong>write</strong>(table, object, options = nil)
|
|
1266
1734
|
|
|
1267
1735
|
|
|
1268
1736
|
|
|
1269
|
-
|
|
1737
|
+
|
|
1738
|
+
|
|
1739
|
+
</h3><div class="docstring">
|
|
1270
1740
|
<div class="discussion">
|
|
1271
1741
|
<p>Write an object to the adapter. Partition it to a randomly selected key first if necessary.</p>
|
|
1272
1742
|
|
|
@@ -1274,7 +1744,7 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1274
1744
|
</div>
|
|
1275
1745
|
</div>
|
|
1276
1746
|
<div class="tags">
|
|
1277
|
-
<
|
|
1747
|
+
<p class="tag_title">Parameters:</p>
|
|
1278
1748
|
<ul class="param">
|
|
1279
1749
|
|
|
1280
1750
|
<li>
|
|
@@ -1307,9 +1777,26 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1307
1777
|
|
|
1308
1778
|
</li>
|
|
1309
1779
|
|
|
1780
|
+
<li>
|
|
1781
|
+
|
|
1782
|
+
<span class='name'>options</span>
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
1786
|
+
|
|
1787
|
+
|
|
1788
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
|
1789
|
+
|
|
1790
|
+
|
|
1791
|
+
—
|
|
1792
|
+
<div class='inline'><p>Options that are passed to the put_item call</p>
|
|
1793
|
+
</div>
|
|
1794
|
+
|
|
1795
|
+
</li>
|
|
1796
|
+
|
|
1310
1797
|
</ul>
|
|
1311
1798
|
|
|
1312
|
-
<
|
|
1799
|
+
<p class="tag_title">Returns:</p>
|
|
1313
1800
|
<ul class="return">
|
|
1314
1801
|
|
|
1315
1802
|
<li>
|
|
@@ -1326,7 +1813,7 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1326
1813
|
</li>
|
|
1327
1814
|
|
|
1328
1815
|
</ul>
|
|
1329
|
-
<
|
|
1816
|
+
<p class="tag_title">Since:</p>
|
|
1330
1817
|
<ul class="since">
|
|
1331
1818
|
|
|
1332
1819
|
<li>
|
|
@@ -1348,23 +1835,23 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1348
1835
|
<pre class="lines">
|
|
1349
1836
|
|
|
1350
1837
|
|
|
1351
|
-
52
|
|
1352
1838
|
53
|
|
1353
1839
|
54
|
|
1354
1840
|
55
|
|
1355
1841
|
56
|
|
1356
1842
|
57
|
|
1357
|
-
58
|
|
1843
|
+
58
|
|
1844
|
+
59</pre>
|
|
1358
1845
|
</td>
|
|
1359
1846
|
<td>
|
|
1360
|
-
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line
|
|
1847
|
+
<pre class="code"><span class="info file"># File 'lib/dynamoid/adapter.rb', line 53</span>
|
|
1361
1848
|
|
|
1362
|
-
<span class='kw'>def</span> <span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
|
|
1849
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_object'>object</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
1363
1850
|
<span class='kw'>if</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partitioning?'>partitioning?</span> <span class='op'>&&</span> <span class='id identifier rubyid_object'>object</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span>
|
|
1364
1851
|
<span class='id identifier rubyid_object'>object</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_object'>object</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='const'>Random</span><span class='period'>.</span><span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_partition_size'>partition_size</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
|
1365
1852
|
<span class='id identifier rubyid_object'>object</span><span class='lbracket'>[</span><span class='symbol'>:updated_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
|
|
1366
1853
|
<span class='kw'>end</span>
|
|
1367
|
-
<span class='id identifier
|
|
1854
|
+
<span class='id identifier rubyid_put_item'>put_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='id identifier rubyid_object'>object</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
|
1368
1855
|
<span class='kw'>end</span></pre>
|
|
1369
1856
|
</td>
|
|
1370
1857
|
</tr>
|
|
@@ -1374,11 +1861,11 @@ their id and updated_at attributes; if the updated_at is the greatest, then it m
|
|
|
1374
1861
|
</div>
|
|
1375
1862
|
|
|
1376
1863
|
</div>
|
|
1377
|
-
|
|
1864
|
+
|
|
1378
1865
|
<div id="footer">
|
|
1379
|
-
Generated on Thu
|
|
1866
|
+
Generated on Thu Jun 27 21:59:10 2013 by
|
|
1380
1867
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1381
|
-
0.
|
|
1868
|
+
0.8.6.1 (ruby-1.9.3).
|
|
1382
1869
|
</div>
|
|
1383
1870
|
|
|
1384
1871
|
</body>
|