dynamoid-moda 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. checksums.yaml +15 -0
  2. data/.document +5 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +7 -0
  5. data/Gemfile +24 -0
  6. data/Gemfile.lock +118 -0
  7. data/Gemfile_activemodel4 +24 -0
  8. data/Gemfile_activemodel4.lock +88 -0
  9. data/LICENSE.txt +20 -0
  10. data/README.markdown +360 -0
  11. data/Rakefile +93 -0
  12. data/VERSION +1 -0
  13. data/doc/.nojekyll +0 -0
  14. data/doc/Dynamoid.html +328 -0
  15. data/doc/Dynamoid/Adapter.html +1872 -0
  16. data/doc/Dynamoid/Adapter/AwsSdk.html +2101 -0
  17. data/doc/Dynamoid/Adapter/Local.html +1574 -0
  18. data/doc/Dynamoid/Associations.html +138 -0
  19. data/doc/Dynamoid/Associations/Association.html +847 -0
  20. data/doc/Dynamoid/Associations/BelongsTo.html +161 -0
  21. data/doc/Dynamoid/Associations/ClassMethods.html +766 -0
  22. data/doc/Dynamoid/Associations/HasAndBelongsToMany.html +167 -0
  23. data/doc/Dynamoid/Associations/HasMany.html +167 -0
  24. data/doc/Dynamoid/Associations/HasOne.html +161 -0
  25. data/doc/Dynamoid/Associations/ManyAssociation.html +1684 -0
  26. data/doc/Dynamoid/Associations/SingleAssociation.html +627 -0
  27. data/doc/Dynamoid/Components.html +242 -0
  28. data/doc/Dynamoid/Config.html +412 -0
  29. data/doc/Dynamoid/Config/Options.html +638 -0
  30. data/doc/Dynamoid/Criteria.html +138 -0
  31. data/doc/Dynamoid/Criteria/Chain.html +1471 -0
  32. data/doc/Dynamoid/Criteria/ClassMethods.html +105 -0
  33. data/doc/Dynamoid/Dirty.html +424 -0
  34. data/doc/Dynamoid/Dirty/ClassMethods.html +174 -0
  35. data/doc/Dynamoid/Document.html +1033 -0
  36. data/doc/Dynamoid/Document/ClassMethods.html +1116 -0
  37. data/doc/Dynamoid/Errors.html +125 -0
  38. data/doc/Dynamoid/Errors/ConditionalCheckFailedException.html +141 -0
  39. data/doc/Dynamoid/Errors/DocumentNotValid.html +221 -0
  40. data/doc/Dynamoid/Errors/Error.html +137 -0
  41. data/doc/Dynamoid/Errors/InvalidField.html +141 -0
  42. data/doc/Dynamoid/Errors/InvalidQuery.html +131 -0
  43. data/doc/Dynamoid/Errors/MissingRangeKey.html +141 -0
  44. data/doc/Dynamoid/Fields.html +686 -0
  45. data/doc/Dynamoid/Fields/ClassMethods.html +438 -0
  46. data/doc/Dynamoid/Finders.html +135 -0
  47. data/doc/Dynamoid/Finders/ClassMethods.html +943 -0
  48. data/doc/Dynamoid/IdentityMap.html +492 -0
  49. data/doc/Dynamoid/IdentityMap/ClassMethods.html +534 -0
  50. data/doc/Dynamoid/Indexes.html +321 -0
  51. data/doc/Dynamoid/Indexes/ClassMethods.html +369 -0
  52. data/doc/Dynamoid/Indexes/Index.html +1142 -0
  53. data/doc/Dynamoid/Middleware.html +115 -0
  54. data/doc/Dynamoid/Middleware/IdentityMap.html +264 -0
  55. data/doc/Dynamoid/Persistence.html +892 -0
  56. data/doc/Dynamoid/Persistence/ClassMethods.html +836 -0
  57. data/doc/Dynamoid/Validations.html +415 -0
  58. data/doc/_index.html +506 -0
  59. data/doc/class_list.html +53 -0
  60. data/doc/css/common.css +1 -0
  61. data/doc/css/full_list.css +57 -0
  62. data/doc/css/style.css +338 -0
  63. data/doc/file.LICENSE.html +73 -0
  64. data/doc/file.README.html +416 -0
  65. data/doc/file_list.html +58 -0
  66. data/doc/frames.html +28 -0
  67. data/doc/index.html +416 -0
  68. data/doc/js/app.js +214 -0
  69. data/doc/js/full_list.js +178 -0
  70. data/doc/js/jquery.js +4 -0
  71. data/doc/method_list.html +1144 -0
  72. data/doc/top-level-namespace.html +112 -0
  73. data/dynamoid-moda.gemspec +210 -0
  74. data/dynamoid.gemspec +208 -0
  75. data/lib/dynamoid.rb +46 -0
  76. data/lib/dynamoid/adapter.rb +267 -0
  77. data/lib/dynamoid/adapter/aws_sdk.rb +309 -0
  78. data/lib/dynamoid/associations.rb +106 -0
  79. data/lib/dynamoid/associations/association.rb +105 -0
  80. data/lib/dynamoid/associations/belongs_to.rb +44 -0
  81. data/lib/dynamoid/associations/has_and_belongs_to_many.rb +40 -0
  82. data/lib/dynamoid/associations/has_many.rb +39 -0
  83. data/lib/dynamoid/associations/has_one.rb +39 -0
  84. data/lib/dynamoid/associations/many_association.rb +191 -0
  85. data/lib/dynamoid/associations/single_association.rb +69 -0
  86. data/lib/dynamoid/components.rb +37 -0
  87. data/lib/dynamoid/config.rb +57 -0
  88. data/lib/dynamoid/config/options.rb +78 -0
  89. data/lib/dynamoid/criteria.rb +29 -0
  90. data/lib/dynamoid/criteria/chain.rb +326 -0
  91. data/lib/dynamoid/dirty.rb +47 -0
  92. data/lib/dynamoid/document.rb +199 -0
  93. data/lib/dynamoid/errors.rb +28 -0
  94. data/lib/dynamoid/fields.rb +138 -0
  95. data/lib/dynamoid/finders.rb +133 -0
  96. data/lib/dynamoid/identity_map.rb +96 -0
  97. data/lib/dynamoid/indexes.rb +69 -0
  98. data/lib/dynamoid/indexes/index.rb +103 -0
  99. data/lib/dynamoid/middleware/identity_map.rb +16 -0
  100. data/lib/dynamoid/persistence.rb +292 -0
  101. data/lib/dynamoid/validations.rb +36 -0
  102. data/spec/app/models/address.rb +13 -0
  103. data/spec/app/models/camel_case.rb +34 -0
  104. data/spec/app/models/car.rb +6 -0
  105. data/spec/app/models/magazine.rb +11 -0
  106. data/spec/app/models/message.rb +9 -0
  107. data/spec/app/models/nuclear_submarine.rb +5 -0
  108. data/spec/app/models/sponsor.rb +8 -0
  109. data/spec/app/models/subscription.rb +12 -0
  110. data/spec/app/models/tweet.rb +12 -0
  111. data/spec/app/models/user.rb +26 -0
  112. data/spec/app/models/vehicle.rb +7 -0
  113. data/spec/dynamoid/adapter/aws_sdk_spec.rb +376 -0
  114. data/spec/dynamoid/adapter_spec.rb +155 -0
  115. data/spec/dynamoid/associations/association_spec.rb +194 -0
  116. data/spec/dynamoid/associations/belongs_to_spec.rb +71 -0
  117. data/spec/dynamoid/associations/has_and_belongs_to_many_spec.rb +47 -0
  118. data/spec/dynamoid/associations/has_many_spec.rb +42 -0
  119. data/spec/dynamoid/associations/has_one_spec.rb +45 -0
  120. data/spec/dynamoid/associations_spec.rb +16 -0
  121. data/spec/dynamoid/config_spec.rb +27 -0
  122. data/spec/dynamoid/criteria/chain_spec.rb +210 -0
  123. data/spec/dynamoid/criteria_spec.rb +75 -0
  124. data/spec/dynamoid/dirty_spec.rb +57 -0
  125. data/spec/dynamoid/document_spec.rb +180 -0
  126. data/spec/dynamoid/fields_spec.rb +156 -0
  127. data/spec/dynamoid/finders_spec.rb +147 -0
  128. data/spec/dynamoid/identity_map_spec.rb +45 -0
  129. data/spec/dynamoid/indexes/index_spec.rb +104 -0
  130. data/spec/dynamoid/indexes_spec.rb +25 -0
  131. data/spec/dynamoid/persistence_spec.rb +301 -0
  132. data/spec/dynamoid/validations_spec.rb +36 -0
  133. data/spec/dynamoid_spec.rb +14 -0
  134. data/spec/spec_helper.rb +55 -0
  135. data/spec/support/with_partitioning.rb +15 -0
  136. metadata +363 -0
@@ -0,0 +1,2101 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Dynamoid::Adapter::AwsSdk
8
+
9
+ &mdash; Documentation by YARD 0.8.6.1
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../../';
20
+ framesUrl = "../../frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../../_index.html">Index (A)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../../Dynamoid.html" title="Dynamoid (module)">Dynamoid</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Adapter.html" title="Dynamoid::Adapter (module)">Adapter</a></span></span>
36
+ &raquo;
37
+ <span class="title">AwsSdk</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: Dynamoid::Adapter::AwsSdk
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+ <dt class="r1">Extended by:</dt>
77
+ <dd class="r1"><span class='object_link'><a href="" title="Dynamoid::Adapter::AwsSdk (module)">AwsSdk</a></span></dd>
78
+
79
+
80
+
81
+
82
+
83
+
84
+ <dt class="r2">Included in:</dt>
85
+ <dd class="r2"><span class='object_link'><a href="" title="Dynamoid::Adapter::AwsSdk (module)">AwsSdk</a></span></dd>
86
+
87
+
88
+
89
+ <dt class="r1 last">Defined in:</dt>
90
+ <dd class="r1 last">lib/dynamoid/adapter/aws_sdk.rb</dd>
91
+
92
+ </dl>
93
+ <div class="clear"></div>
94
+
95
+ <h2>Overview</h2><div class="docstring">
96
+ <div class="discussion">
97
+ <p>The AwsSdk adapter provides support for the AWS-SDK for Ruby gem.
98
+ More information is available at that Gem's Github page:
99
+ <a href="https://github.com/amazonwebservices/aws-sdk-for-ruby">https://github.com/amazonwebservices/aws-sdk-for-ruby</a></p>
100
+
101
+
102
+ </div>
103
+ </div>
104
+ <div class="tags">
105
+
106
+
107
+ </div>
108
+ <h2>Constant Summary</h2>
109
+
110
+ <dl class="constants">
111
+
112
+ <dt id="connection-classvariable" class="">@@connection =
113
+
114
+ </dt>
115
+ <dd><pre class="code"><span class='kw'>nil</span></pre></dd>
116
+
117
+ </dl>
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ <h2>
128
+ Instance Method Summary
129
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
130
+ </h2>
131
+
132
+ <ul class="summary">
133
+
134
+ <li class="public ">
135
+ <span class="summary_signature">
136
+
137
+ <a href="#batch_delete_item-instance_method" title="#batch_delete_item (instance method)">- (Object) <strong>batch_delete_item</strong>(options) </a>
138
+
139
+
140
+
141
+ </span>
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+ <span class="summary_desc"><div class='inline'><p>Delete many items at once from DynamoDB.</p>
152
+ </div></span>
153
+
154
+ </li>
155
+
156
+
157
+ <li class="public ">
158
+ <span class="summary_signature">
159
+
160
+ <a href="#batch_get_item-instance_method" title="#batch_get_item (instance method)">- (Hash) <strong>batch_get_item</strong>(table_ids, options = {}) </a>
161
+
162
+
163
+
164
+ </span>
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+ <span class="summary_desc"><div class='inline'><p>Get many items at once from DynamoDB.</p>
175
+ </div></span>
176
+
177
+ </li>
178
+
179
+
180
+ <li class="public ">
181
+ <span class="summary_signature">
182
+
183
+ <a href="#connect%21-instance_method" title="#connect! (instance method)">- (AWS::DynamoDB::Connection) <strong>connect!</strong> </a>
184
+
185
+
186
+
187
+ </span>
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+ <span class="summary_desc"><div class='inline'><p>Establish the connection to DynamoDB.</p>
198
+ </div></span>
199
+
200
+ </li>
201
+
202
+
203
+ <li class="public ">
204
+ <span class="summary_signature">
205
+
206
+ <a href="#connection-instance_method" title="#connection (instance method)">- (AWS::DynamoDB::Connection) <strong>connection</strong> </a>
207
+
208
+
209
+
210
+ </span>
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+ <span class="summary_desc"><div class='inline'><p>Return the established connection.</p>
221
+ </div></span>
222
+
223
+ </li>
224
+
225
+
226
+ <li class="public ">
227
+ <span class="summary_signature">
228
+
229
+ <a href="#count-instance_method" title="#count (instance method)">- (Integer) <strong>count</strong>(table_name) </a>
230
+
231
+
232
+
233
+ </span>
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+ <span class="summary_desc"><div class='inline'><p>Number of items from a table.</p>
244
+ </div></span>
245
+
246
+ </li>
247
+
248
+
249
+ <li class="public ">
250
+ <span class="summary_signature">
251
+
252
+ <a href="#create_table-instance_method" title="#create_table (instance method)">- (Object) <strong>create_table</strong>(table_name, key = :id, options = {}) </a>
253
+
254
+
255
+
256
+ </span>
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+ <span class="summary_desc"><div class='inline'><p>Create a table on DynamoDB.</p>
267
+ </div></span>
268
+
269
+ </li>
270
+
271
+
272
+ <li class="public ">
273
+ <span class="summary_signature">
274
+
275
+ <a href="#delete_item-instance_method" title="#delete_item (instance method)">- (Object) <strong>delete_item</strong>(table_name, key, options = {}) </a>
276
+
277
+
278
+
279
+ </span>
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+ <span class="summary_desc"><div class='inline'><p>Removes an item from DynamoDB.</p>
290
+ </div></span>
291
+
292
+ </li>
293
+
294
+
295
+ <li class="public ">
296
+ <span class="summary_signature">
297
+
298
+ <a href="#delete_table-instance_method" title="#delete_table (instance method)">- (Object) <strong>delete_table</strong>(table_name) </a>
299
+
300
+
301
+
302
+ </span>
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+ <span class="summary_desc"><div class='inline'><p>Deletes an entire table from DynamoDB.</p>
313
+ </div></span>
314
+
315
+ </li>
316
+
317
+
318
+ <li class="public ">
319
+ <span class="summary_signature">
320
+
321
+ <a href="#get_item-instance_method" title="#get_item (instance method)">- (Hash) <strong>get_item</strong>(table_name, key, options = {}) </a>
322
+
323
+
324
+
325
+ </span>
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+ <span class="summary_desc"><div class='inline'><p>Fetches an item from DynamoDB.</p>
336
+ </div></span>
337
+
338
+ </li>
339
+
340
+
341
+ <li class="public ">
342
+ <span class="summary_signature">
343
+
344
+ <a href="#get_table-instance_method" title="#get_table (instance method)">- (Object) <strong>get_table</strong>(table_name) </a>
345
+
346
+
347
+
348
+ </span>
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+ <span class="summary_desc"><div class='inline'></div></span>
359
+
360
+ </li>
361
+
362
+
363
+ <li class="public ">
364
+ <span class="summary_signature">
365
+
366
+ <a href="#list_tables-instance_method" title="#list_tables (instance method)">- (Object) <strong>list_tables</strong> </a>
367
+
368
+
369
+
370
+ </span>
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+ <span class="summary_desc"><div class='inline'><p>List all tables on DynamoDB.</p>
381
+ </div></span>
382
+
383
+ </li>
384
+
385
+
386
+ <li class="public ">
387
+ <span class="summary_signature">
388
+
389
+ <a href="#put_item-instance_method" title="#put_item (instance method)">- (Object) <strong>put_item</strong>(table_name, object, options = nil) </a>
390
+
391
+
392
+
393
+ </span>
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+ <span class="summary_desc"><div class='inline'><p>Persists an item on DynamoDB.</p>
404
+ </div></span>
405
+
406
+ </li>
407
+
408
+
409
+ <li class="public ">
410
+ <span class="summary_signature">
411
+
412
+ <a href="#query-instance_method" title="#query (instance method)">- (Enumerator) <strong>query</strong>(table_name, opts = {}) </a>
413
+
414
+
415
+
416
+ </span>
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+ <span class="summary_desc"><div class='inline'><p>Query the DynamoDB table.</p>
427
+ </div></span>
428
+
429
+ </li>
430
+
431
+
432
+ <li class="public ">
433
+ <span class="summary_signature">
434
+
435
+ <a href="#scan-instance_method" title="#scan (instance method)">- (Enumerator) <strong>scan</strong>(table_name, scan_hash, select_opts) </a>
436
+
437
+
438
+
439
+ </span>
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+ <span class="summary_desc"><div class='inline'><p>Scan the DynamoDB table.</p>
450
+ </div></span>
451
+
452
+ </li>
453
+
454
+
455
+ <li class="public ">
456
+ <span class="summary_signature">
457
+
458
+ <a href="#table_cache-instance_method" title="#table_cache (instance method)">- (Object) <strong>table_cache</strong> </a>
459
+
460
+
461
+
462
+ </span>
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+ <span class="summary_desc"><div class='inline'></div></span>
473
+
474
+ </li>
475
+
476
+
477
+ <li class="public ">
478
+ <span class="summary_signature">
479
+
480
+ <a href="#update_item-instance_method" title="#update_item (instance method)">- (Object) <strong>update_item</strong>(table_name, key, options = {}, &amp;block) </a>
481
+
482
+
483
+
484
+ </span>
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+ <span class="summary_desc"><div class='inline'></div></span>
495
+
496
+ </li>
497
+
498
+
499
+ </ul>
500
+
501
+
502
+
503
+
504
+ <div id="instance_method_details" class="method_details_list">
505
+ <h2>Instance Method Details</h2>
506
+
507
+
508
+ <div class="method_details first">
509
+ <h3 class="signature first" id="batch_delete_item-instance_method">
510
+
511
+ - (<tt>Object</tt>) <strong>batch_delete_item</strong>(options)
512
+
513
+
514
+
515
+
516
+
517
+ </h3><div class="docstring">
518
+ <div class="discussion">
519
+ <p>Delete many items at once from DynamoDB. More efficient than delete each item individually.</p>
520
+
521
+ <p>or
522
+ Dynamoid::Adapter::AwsSdk.batch_delete_item('table1' =&gt; [['hk1', 'rk2'], ['hk1', 'rk2']]]))</p>
523
+
524
+
525
+ </div>
526
+ </div>
527
+ <div class="tags">
528
+
529
+ <div class="examples">
530
+ <p class="tag_title">Examples:</p>
531
+
532
+
533
+ <p class="example_title"><div class='inline'><p>Delete IDs 1 and 2 from the table testtable</p>
534
+ </div></p>
535
+
536
+ <pre class="example code"><code><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_batch_delete_item'>batch_delete_item</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>table1</span><span class='tstring_end'>'</span></span> <span class='op'>=&gt;</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='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span></code></pre>
537
+
538
+ </div>
539
+ <p class="tag_title">Parameters:</p>
540
+ <ul class="param">
541
+
542
+ <li>
543
+
544
+ <span class='name'>options</span>
545
+
546
+
547
+ <span class='type'>(<tt>Hash</tt>)</span>
548
+
549
+
550
+
551
+ &mdash;
552
+ <div class='inline'><p>the hash of tables and IDs to delete</p>
553
+ </div>
554
+
555
+ </li>
556
+
557
+ </ul>
558
+
559
+ <p class="tag_title">Returns:</p>
560
+ <ul class="return">
561
+
562
+ <li>
563
+
564
+
565
+ <span class='type'></span>
566
+
567
+
568
+
569
+
570
+ <div class='inline'><p>nil</p>
571
+ </div>
572
+
573
+ </li>
574
+
575
+ </ul>
576
+
577
+ </div><table class="source_code">
578
+ <tr>
579
+ <td>
580
+ <pre class="lines">
581
+
582
+
583
+ 90
584
+ 91
585
+ 92
586
+ 93
587
+ 94
588
+ 95
589
+ 96
590
+ 97
591
+ 98
592
+ 99
593
+ 100</pre>
594
+ </td>
595
+ <td>
596
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 90</span>
597
+
598
+ <span class='kw'>def</span> <span class='id identifier rubyid_batch_delete_item'>batch_delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
599
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rbrace'>}</span>
600
+ <span class='id identifier rubyid_options'>options</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_t'>t</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='op'>|</span>
601
+ <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_in_groups_of'>in_groups_of</span><span class='lparen'>(</span><span class='int'>25</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_group'>group</span><span class='op'>|</span>
602
+ <span class='id identifier rubyid_batch'>batch</span> <span class='op'>=</span> <span class='const'>AWS</span><span class='op'>::</span><span class='const'>DynamoDB</span><span class='op'>::</span><span class='const'>BatchWrite</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:config</span> <span class='op'>=&gt;</span> <span class='cvar'>@@connection</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='rparen'>)</span>
603
+ <span class='id identifier rubyid_batch'>batch</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_t'>t</span><span class='comma'>,</span><span class='id identifier rubyid_group'>group</span><span class='rparen'>)</span>
604
+ <span class='id identifier rubyid_batch'>batch</span><span class='period'>.</span><span class='id identifier rubyid_process!'>process!</span>
605
+ <span class='kw'>end</span>
606
+ <span class='kw'>end</span>
607
+ <span class='kw'>nil</span>
608
+ <span class='kw'>end</span></pre>
609
+ </td>
610
+ </tr>
611
+ </table>
612
+ </div>
613
+
614
+ <div class="method_details ">
615
+ <h3 class="signature " id="batch_get_item-instance_method">
616
+
617
+ - (<tt>Hash</tt>) <strong>batch_get_item</strong>(table_ids, options = {})
618
+
619
+
620
+
621
+
622
+
623
+ </h3><div class="docstring">
624
+ <div class="discussion">
625
+ <p>Get many items at once from DynamoDB. More efficient than getting each item individually.</p>
626
+
627
+
628
+ </div>
629
+ </div>
630
+ <div class="tags">
631
+
632
+ <div class="examples">
633
+ <p class="tag_title">Examples:</p>
634
+
635
+
636
+ <p class="example_title"><div class='inline'><p>Retrieve IDs 1 and 2 from the table testtable</p>
637
+ </div></p>
638
+
639
+ <pre class="example code"><code><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_batch_get_item'>batch_get_item</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>table1</span><span class='tstring_end'>'</span></span> <span class='op'>=&gt;</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='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='symbol'>:consistent_read</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span></code></pre>
640
+
641
+ </div>
642
+ <p class="tag_title">Parameters:</p>
643
+ <ul class="param">
644
+
645
+ <li>
646
+
647
+ <span class='name'>table_ids</span>
648
+
649
+
650
+ <span class='type'>(<tt>Hash</tt>)</span>
651
+
652
+
653
+
654
+ &mdash;
655
+ <div class='inline'><p>the hash of tables and IDs to retrieve</p>
656
+ </div>
657
+
658
+ </li>
659
+
660
+ <li>
661
+
662
+ <span class='name'>options</span>
663
+
664
+
665
+ <span class='type'>(<tt>Hash</tt>)</span>
666
+
667
+
668
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
669
+
670
+
671
+ &mdash;
672
+ <div class='inline'><p>to be passed to underlying BatchGet call</p>
673
+ </div>
674
+
675
+ </li>
676
+
677
+ </ul>
678
+
679
+ <p class="tag_title">Returns:</p>
680
+ <ul class="return">
681
+
682
+ <li>
683
+
684
+
685
+ <span class='type'>(<tt>Hash</tt>)</span>
686
+
687
+
688
+
689
+ &mdash;
690
+ <div class='inline'><p>a hash where keys are the table names and the values are the retrieved items</p>
691
+ </div>
692
+
693
+ </li>
694
+
695
+ </ul>
696
+ <p class="tag_title">Since:</p>
697
+ <ul class="since">
698
+
699
+ <li>
700
+
701
+
702
+
703
+
704
+
705
+ <div class='inline'><p>0.2.0</p>
706
+ </div>
707
+
708
+ </li>
709
+
710
+ </ul>
711
+
712
+ </div><table class="source_code">
713
+ <tr>
714
+ <td>
715
+ <pre class="lines">
716
+
717
+
718
+ 64
719
+ 65
720
+ 66
721
+ 67
722
+ 68
723
+ 69
724
+ 70
725
+ 71
726
+ 72
727
+ 73
728
+ 74
729
+ 75
730
+ 76
731
+ 77</pre>
732
+ </td>
733
+ <td>
734
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 64</span>
735
+
736
+ <span class='kw'>def</span> <span class='id identifier rubyid_batch_get_item'>batch_get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_ids'>table_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>
737
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_h'>h</span><span class='comma'>,</span> <span class='id identifier rubyid_k'>k</span><span class='op'>|</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
738
+ <span class='kw'>return</span> <span class='id identifier rubyid_hash'>hash</span> <span class='kw'>if</span> <span class='id identifier rubyid_table_ids'>table_ids</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rbrace'>}</span>
739
+ <span class='id identifier rubyid_table_ids'>table_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_t'>t</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='op'>|</span>
740
+ <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_in_groups_of'>in_groups_of</span><span class='lparen'>(</span><span class='int'>100</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_group'>group</span><span class='op'>|</span>
741
+ <span class='id identifier rubyid_batch'>batch</span> <span class='op'>=</span> <span class='const'>AWS</span><span class='op'>::</span><span class='const'>DynamoDB</span><span class='op'>::</span><span class='const'>BatchGet</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:config</span> <span class='op'>=&gt;</span> <span class='cvar'>@@connection</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='rparen'>)</span>
742
+ <span class='id identifier rubyid_batch'>batch</span><span class='period'>.</span><span class='id identifier rubyid_table'>table</span><span class='lparen'>(</span><span class='id identifier rubyid_t'>t</span><span class='comma'>,</span> <span class='symbol'>:all</span><span class='comma'>,</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_group'>group</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_group'>group</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_group'>group</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
743
+ <span class='id identifier rubyid_batch'>batch</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_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='op'>|</span>
744
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys!'>symbolize_keys!</span>
745
+ <span class='kw'>end</span>
746
+ <span class='kw'>end</span>
747
+ <span class='kw'>end</span>
748
+ <span class='id identifier rubyid_hash'>hash</span>
749
+ <span class='kw'>end</span></pre>
750
+ </td>
751
+ </tr>
752
+ </table>
753
+ </div>
754
+
755
+ <div class="method_details ">
756
+ <h3 class="signature " id="connect!-instance_method">
757
+
758
+ - (<tt>AWS::DynamoDB::Connection</tt>) <strong>connect!</strong>
759
+
760
+
761
+
762
+
763
+
764
+ </h3><div class="docstring">
765
+ <div class="discussion">
766
+ <p>Establish the connection to DynamoDB.</p>
767
+
768
+ <p>Call DynamoDB new, with no parameters.
769
+ Make sure the aws.yml file or aws.rb file, refer the link for more details.
770
+ <a href="https://github.com/amazonwebservices/aws-sdk-for-ruby">https://github.com/amazonwebservices/aws-sdk-for-ruby</a>
771
+ 1. Create config/aws.yml as follows:
772
+ Fill in your AWS Access Key ID and Secret Access Key
773
+ <a href="http://aws.amazon.com/security-credentials">http://aws.amazon.com/security-credentials</a>
774
+ access_key_id: REPLACE_WITH_ACCESS_KEY_ID
775
+ secret_access_key: REPLACE_WITH_SECRET_ACCESS_KEY
776
+ (or)
777
+ 2, Create config/initializers/aws.rb as follows:
778
+ load the libraries
779
+ require 'aws'
780
+ log requests using the default rails logger
781
+ AWS.config(:logger =&gt; Rails.logger)
782
+ load credentials from a file
783
+ config_path = File.expand_path(File.dirname(<strong>FILE</strong>)+&quot;/../aws.yml&quot;)
784
+ AWS.config(YAML.load(File.read(config_path)))
785
+ Additionally include any of the dynamodb paramters as needed
786
+ (eg: if you would like to change the dynamodb endpoint, then add the parameter in
787
+ the following paramter in the file aws.yml or aws.rb
788
+ dynamo_db_endpoint : dynamodb.ap-southeast-1.amazonaws.com)</p>
789
+
790
+
791
+ </div>
792
+ </div>
793
+ <div class="tags">
794
+
795
+ <p class="tag_title">Returns:</p>
796
+ <ul class="return">
797
+
798
+ <li>
799
+
800
+
801
+ <span class='type'>(<tt>AWS::DynamoDB::Connection</tt>)</span>
802
+
803
+
804
+
805
+ &mdash;
806
+ <div class='inline'><p>the raw DynamoDB connection</p>
807
+ </div>
808
+
809
+ </li>
810
+
811
+ </ul>
812
+ <p class="tag_title">Since:</p>
813
+ <ul class="since">
814
+
815
+ <li>
816
+
817
+
818
+
819
+
820
+
821
+ <div class='inline'><p>0.2.0</p>
822
+ </div>
823
+
824
+ </li>
825
+
826
+ </ul>
827
+
828
+ </div><table class="source_code">
829
+ <tr>
830
+ <td>
831
+ <pre class="lines">
832
+
833
+
834
+ 40
835
+ 41
836
+ 42</pre>
837
+ </td>
838
+ <td>
839
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 40</span>
840
+
841
+ <span class='kw'>def</span> <span class='id identifier rubyid_connect!'>connect!</span>
842
+ <span class='cvar'>@@connection</span> <span class='op'>=</span> <span class='const'>AWS</span><span class='op'>::</span><span class='const'>DynamoDB</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
843
+ <span class='kw'>end</span></pre>
844
+ </td>
845
+ </tr>
846
+ </table>
847
+ </div>
848
+
849
+ <div class="method_details ">
850
+ <h3 class="signature " id="connection-instance_method">
851
+
852
+ - (<tt>AWS::DynamoDB::Connection</tt>) <strong>connection</strong>
853
+
854
+
855
+
856
+
857
+
858
+ </h3><div class="docstring">
859
+ <div class="discussion">
860
+ <p>Return the established connection.</p>
861
+
862
+
863
+ </div>
864
+ </div>
865
+ <div class="tags">
866
+
867
+ <p class="tag_title">Returns:</p>
868
+ <ul class="return">
869
+
870
+ <li>
871
+
872
+
873
+ <span class='type'>(<tt>AWS::DynamoDB::Connection</tt>)</span>
874
+
875
+
876
+
877
+ &mdash;
878
+ <div class='inline'><p>the raw DynamoDB connection</p>
879
+ </div>
880
+
881
+ </li>
882
+
883
+ </ul>
884
+ <p class="tag_title">Since:</p>
885
+ <ul class="since">
886
+
887
+ <li>
888
+
889
+
890
+
891
+
892
+
893
+ <div class='inline'><p>0.2.0</p>
894
+ </div>
895
+
896
+ </li>
897
+
898
+ </ul>
899
+
900
+ </div><table class="source_code">
901
+ <tr>
902
+ <td>
903
+ <pre class="lines">
904
+
905
+
906
+ 49
907
+ 50
908
+ 51</pre>
909
+ </td>
910
+ <td>
911
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 49</span>
912
+
913
+ <span class='kw'>def</span> <span class='id identifier rubyid_connection'>connection</span>
914
+ <span class='cvar'>@@connection</span>
915
+ <span class='kw'>end</span></pre>
916
+ </td>
917
+ </tr>
918
+ </table>
919
+ </div>
920
+
921
+ <div class="method_details ">
922
+ <h3 class="signature " id="count-instance_method">
923
+
924
+ - (<tt>Integer</tt>) <strong>count</strong>(table_name)
925
+
926
+
927
+
928
+
929
+
930
+ </h3><div class="docstring">
931
+ <div class="discussion">
932
+ <p>Number of items from a table</p>
933
+
934
+
935
+ </div>
936
+ </div>
937
+ <div class="tags">
938
+ <p class="tag_title">Parameters:</p>
939
+ <ul class="param">
940
+
941
+ <li>
942
+
943
+ <span class='name'>table_name</span>
944
+
945
+
946
+ <span class='type'>(<tt>String</tt>)</span>
947
+
948
+
949
+
950
+ &mdash;
951
+ <div class='inline'><p>the name of the table</p>
952
+ </div>
953
+
954
+ </li>
955
+
956
+ </ul>
957
+
958
+ <p class="tag_title">Returns:</p>
959
+ <ul class="return">
960
+
961
+ <li>
962
+
963
+
964
+ <span class='type'>(<tt>Integer</tt>)</span>
965
+
966
+
967
+
968
+ &mdash;
969
+ <div class='inline'><p>the number of items from a table</p>
970
+ </div>
971
+
972
+ </li>
973
+
974
+ </ul>
975
+ <p class="tag_title">Since:</p>
976
+ <ul class="since">
977
+
978
+ <li>
979
+
980
+
981
+
982
+
983
+
984
+ <div class='inline'><p>0.6.1</p>
985
+ </div>
986
+
987
+ </li>
988
+
989
+ </ul>
990
+
991
+ </div><table class="source_code">
992
+ <tr>
993
+ <td>
994
+ <pre class="lines">
995
+
996
+
997
+ 281
998
+ 282
999
+ 283
1000
+ 284</pre>
1001
+ </td>
1002
+ <td>
1003
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 281</span>
1004
+
1005
+ <span class='kw'>def</span> <span class='id identifier rubyid_count'>count</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
1006
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</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>
1007
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span>
1008
+ <span class='kw'>end</span></pre>
1009
+ </td>
1010
+ </tr>
1011
+ </table>
1012
+ </div>
1013
+
1014
+ <div class="method_details ">
1015
+ <h3 class="signature " id="create_table-instance_method">
1016
+
1017
+ - (<tt>Object</tt>) <strong>create_table</strong>(table_name, key = :id, options = {})
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+ </h3><div class="docstring">
1024
+ <div class="discussion">
1025
+ <p>Create a table on DynamoDB. This usually takes a long time to complete.</p>
1026
+
1027
+
1028
+ </div>
1029
+ </div>
1030
+ <div class="tags">
1031
+ <p class="tag_title">Parameters:</p>
1032
+ <ul class="param">
1033
+
1034
+ <li>
1035
+
1036
+ <span class='name'>table_name</span>
1037
+
1038
+
1039
+ <span class='type'>(<tt>String</tt>)</span>
1040
+
1041
+
1042
+
1043
+ &mdash;
1044
+ <div class='inline'><p>the name of the table to create</p>
1045
+ </div>
1046
+
1047
+ </li>
1048
+
1049
+ <li>
1050
+
1051
+ <span class='name'>key</span>
1052
+
1053
+
1054
+ <span class='type'>(<tt>Symbol</tt>)</span>
1055
+
1056
+
1057
+ <em class="default">(defaults to: <tt>:id</tt>)</em>
1058
+
1059
+
1060
+ &mdash;
1061
+ <div class='inline'><p>the table's primary key (defaults to :id)</p>
1062
+ </div>
1063
+
1064
+ </li>
1065
+
1066
+ <li>
1067
+
1068
+ <span class='name'>options</span>
1069
+
1070
+
1071
+ <span class='type'>(<tt>Hash</tt>)</span>
1072
+
1073
+
1074
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1075
+
1076
+
1077
+ &mdash;
1078
+ <div class='inline'><p>provide a range_key here if you want one for the table</p>
1079
+ </div>
1080
+
1081
+ </li>
1082
+
1083
+ </ul>
1084
+
1085
+ <p class="tag_title">Since:</p>
1086
+ <ul class="since">
1087
+
1088
+ <li>
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+ <div class='inline'><p>0.2.0</p>
1095
+ </div>
1096
+
1097
+ </li>
1098
+
1099
+ </ul>
1100
+
1101
+ </div><table class="source_code">
1102
+ <tr>
1103
+ <td>
1104
+ <pre class="lines">
1105
+
1106
+
1107
+ 109
1108
+ 110
1109
+ 111
1110
+ 112
1111
+ 113
1112
+ 114
1113
+ 115
1114
+ 116
1115
+ 117</pre>
1116
+ </td>
1117
+ <td>
1118
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 109</span>
1119
+
1120
+ <span class='kw'>def</span> <span class='id identifier rubyid_create_table'>create_table</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='symbol'>:id</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>
1121
+ <span class='const'>Dynamoid</span><span class='period'>.</span><span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Creating </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbrace'>}</span><span class='tstring_content'> table. This could take a while.</span><span class='tstring_end'>&quot;</span></span>
1122
+ <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:hash_key</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='lbrace'>{</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>=&gt;</span> <span class='symbol'>:string</span><span class='rbrace'>}</span>
1123
+ <span class='id identifier rubyid_read_capacity'>read_capacity</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:read_capacity</span><span class='rbracket'>]</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_read_capacity'>read_capacity</span>
1124
+ <span class='id identifier rubyid_write_capacity'>write_capacity</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:write_capacity</span><span class='rbracket'>]</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_write_capacity'>write_capacity</span>
1125
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='cvar'>@@connection</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_read_capacity'>read_capacity</span><span class='comma'>,</span> <span class='id identifier rubyid_write_capacity'>write_capacity</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
1126
+ <span class='id identifier rubyid_sleep'>sleep</span> <span class='float'>0.5</span> <span class='kw'>while</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_status'>status</span> <span class='op'>==</span> <span class='symbol'>:creating</span>
1127
+ <span class='kw'>return</span> <span class='id identifier rubyid_table'>table</span>
1128
+ <span class='kw'>end</span></pre>
1129
+ </td>
1130
+ </tr>
1131
+ </table>
1132
+ </div>
1133
+
1134
+ <div class="method_details ">
1135
+ <h3 class="signature " id="delete_item-instance_method">
1136
+
1137
+ - (<tt>Object</tt>) <strong>delete_item</strong>(table_name, key, options = {})
1138
+
1139
+
1140
+
1141
+
1142
+
1143
+ </h3><div class="docstring">
1144
+ <div class="discussion">
1145
+ <p>Removes an item from DynamoDB.</p>
1146
+
1147
+
1148
+ </div>
1149
+ </div>
1150
+ <div class="tags">
1151
+ <p class="tag_title">Parameters:</p>
1152
+ <ul class="param">
1153
+
1154
+ <li>
1155
+
1156
+ <span class='name'>table_name</span>
1157
+
1158
+
1159
+ <span class='type'>(<tt>String</tt>)</span>
1160
+
1161
+
1162
+
1163
+ &mdash;
1164
+ <div class='inline'><p>the name of the table</p>
1165
+ </div>
1166
+
1167
+ </li>
1168
+
1169
+ <li>
1170
+
1171
+ <span class='name'>key</span>
1172
+
1173
+
1174
+ <span class='type'>(<tt>String</tt>)</span>
1175
+
1176
+
1177
+
1178
+ &mdash;
1179
+ <div class='inline'><p>the hash key of the item to delete</p>
1180
+ </div>
1181
+
1182
+ </li>
1183
+
1184
+ <li>
1185
+
1186
+ <span class='name'>range_key</span>
1187
+
1188
+
1189
+ <span class='type'>(<tt>Number</tt>)</span>
1190
+
1191
+
1192
+
1193
+ &mdash;
1194
+ <div class='inline'><p>the range key of the item to delete, required if the table has a composite key</p>
1195
+ </div>
1196
+
1197
+ </li>
1198
+
1199
+ </ul>
1200
+
1201
+ <p class="tag_title">Since:</p>
1202
+ <ul class="since">
1203
+
1204
+ <li>
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+ <div class='inline'><p>0.2.0</p>
1211
+ </div>
1212
+
1213
+ </li>
1214
+
1215
+ </ul>
1216
+
1217
+ </div><table class="source_code">
1218
+ <tr>
1219
+ <td>
1220
+ <pre class="lines">
1221
+
1222
+
1223
+ 126
1224
+ 127
1225
+ 128
1226
+ 129
1227
+ 130
1228
+ 131
1229
+ 132</pre>
1230
+ </td>
1231
+ <td>
1232
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 126</span>
1233
+
1234
+ <span class='kw'>def</span> <span class='id identifier rubyid_delete_item'>delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</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>
1235
+ <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>
1236
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</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>
1237
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rparen'>)</span>
1238
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='kw'>unless</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1239
+ <span class='kw'>true</span>
1240
+ <span class='kw'>end</span></pre>
1241
+ </td>
1242
+ </tr>
1243
+ </table>
1244
+ </div>
1245
+
1246
+ <div class="method_details ">
1247
+ <h3 class="signature " id="delete_table-instance_method">
1248
+
1249
+ - (<tt>Object</tt>) <strong>delete_table</strong>(table_name)
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+ </h3><div class="docstring">
1256
+ <div class="discussion">
1257
+ <p>Deletes an entire table from DynamoDB. Only 10 tables can be in the deleting state at once,
1258
+ so if you have more this method may raise an exception.</p>
1259
+
1260
+
1261
+ </div>
1262
+ </div>
1263
+ <div class="tags">
1264
+ <p class="tag_title">Parameters:</p>
1265
+ <ul class="param">
1266
+
1267
+ <li>
1268
+
1269
+ <span class='name'>table_name</span>
1270
+
1271
+
1272
+ <span class='type'>(<tt>String</tt>)</span>
1273
+
1274
+
1275
+
1276
+ &mdash;
1277
+ <div class='inline'><p>the name of the table to destroy</p>
1278
+ </div>
1279
+
1280
+ </li>
1281
+
1282
+ </ul>
1283
+
1284
+ <p class="tag_title">Since:</p>
1285
+ <ul class="since">
1286
+
1287
+ <li>
1288
+
1289
+
1290
+
1291
+
1292
+
1293
+ <div class='inline'><p>0.2.0</p>
1294
+ </div>
1295
+
1296
+ </li>
1297
+
1298
+ </ul>
1299
+
1300
+ </div><table class="source_code">
1301
+ <tr>
1302
+ <td>
1303
+ <pre class="lines">
1304
+
1305
+
1306
+ 140
1307
+ 141
1308
+ 142
1309
+ 143
1310
+ 144
1311
+ 145</pre>
1312
+ </td>
1313
+ <td>
1314
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 140</span>
1315
+
1316
+ <span class='kw'>def</span> <span class='id identifier rubyid_delete_table'>delete_table</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
1317
+ <span class='const'>Dynamoid</span><span class='period'>.</span><span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Deleting </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbrace'>}</span><span class='tstring_content'> table. This could take a while.</span><span class='tstring_end'>&quot;</span></span>
1318
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='cvar'>@@connection</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span>
1319
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span>
1320
+ <span class='id identifier rubyid_sleep'>sleep</span> <span class='float'>0.5</span> <span class='kw'>while</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span> <span class='op'>==</span> <span class='kw'>true</span>
1321
+ <span class='kw'>end</span></pre>
1322
+ </td>
1323
+ </tr>
1324
+ </table>
1325
+ </div>
1326
+
1327
+ <div class="method_details ">
1328
+ <h3 class="signature " id="get_item-instance_method">
1329
+
1330
+ - (<tt>Hash</tt>) <strong>get_item</strong>(table_name, key, options = {})
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+ </h3><div class="docstring">
1337
+ <div class="discussion">
1338
+ <p>Fetches an item from DynamoDB.</p>
1339
+
1340
+
1341
+ </div>
1342
+ </div>
1343
+ <div class="tags">
1344
+ <p class="tag_title">Parameters:</p>
1345
+ <ul class="param">
1346
+
1347
+ <li>
1348
+
1349
+ <span class='name'>table_name</span>
1350
+
1351
+
1352
+ <span class='type'>(<tt>String</tt>)</span>
1353
+
1354
+
1355
+
1356
+ &mdash;
1357
+ <div class='inline'><p>the name of the table</p>
1358
+ </div>
1359
+
1360
+ </li>
1361
+
1362
+ <li>
1363
+
1364
+ <span class='name'>key</span>
1365
+
1366
+
1367
+ <span class='type'>(<tt>String</tt>)</span>
1368
+
1369
+
1370
+
1371
+ &mdash;
1372
+ <div class='inline'><p>the hash key of the item to find</p>
1373
+ </div>
1374
+
1375
+ </li>
1376
+
1377
+ <li>
1378
+
1379
+ <span class='name'>range_key</span>
1380
+
1381
+
1382
+ <span class='type'>(<tt>Number</tt>)</span>
1383
+
1384
+
1385
+
1386
+ &mdash;
1387
+ <div class='inline'><p>the range key of the item to find, required if the table has a composite key</p>
1388
+ </div>
1389
+
1390
+ </li>
1391
+
1392
+ </ul>
1393
+
1394
+ <p class="tag_title">Returns:</p>
1395
+ <ul class="return">
1396
+
1397
+ <li>
1398
+
1399
+
1400
+ <span class='type'>(<tt>Hash</tt>)</span>
1401
+
1402
+
1403
+
1404
+ &mdash;
1405
+ <div class='inline'><p>a hash representing the raw item in DynamoDB</p>
1406
+ </div>
1407
+
1408
+ </li>
1409
+
1410
+ </ul>
1411
+ <p class="tag_title">Since:</p>
1412
+ <ul class="since">
1413
+
1414
+ <li>
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+ <div class='inline'><p>0.2.0</p>
1421
+ </div>
1422
+
1423
+ </li>
1424
+
1425
+ </ul>
1426
+
1427
+ </div><table class="source_code">
1428
+ <tr>
1429
+ <td>
1430
+ <pre class="lines">
1431
+
1432
+
1433
+ 158
1434
+ 159
1435
+ 160
1436
+ 161
1437
+ 162
1438
+ 163
1439
+ 164
1440
+ 165
1441
+ 166
1442
+ 167
1443
+ 168
1444
+ 169</pre>
1445
+ </td>
1446
+ <td>
1447
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 158</span>
1448
+
1449
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_item'>get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</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>
1450
+ <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>
1451
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</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>
1452
+
1453
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
1454
+
1455
+ <span class='kw'>if</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1456
+ <span class='kw'>nil</span>
1457
+ <span class='kw'>else</span>
1458
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys!'>symbolize_keys!</span>
1459
+ <span class='kw'>end</span>
1460
+ <span class='kw'>end</span></pre>
1461
+ </td>
1462
+ </tr>
1463
+ </table>
1464
+ </div>
1465
+
1466
+ <div class="method_details ">
1467
+ <h3 class="signature " id="get_table-instance_method">
1468
+
1469
+ - (<tt>Object</tt>) <strong>get_table</strong>(table_name)
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+ </h3><div class="docstring">
1476
+ <div class="discussion">
1477
+
1478
+ <div class="note todo">
1479
+ <strong>TODO:</strong>
1480
+ <div class='inline'><p>Add an UpdateTable method.</p>
1481
+ </div>
1482
+ </div>
1483
+
1484
+
1485
+
1486
+ </div>
1487
+ </div>
1488
+ <div class="tags">
1489
+
1490
+
1491
+ </div><table class="source_code">
1492
+ <tr>
1493
+ <td>
1494
+ <pre class="lines">
1495
+
1496
+
1497
+ 261
1498
+ 262
1499
+ 263
1500
+ 264
1501
+ 265
1502
+ 266
1503
+ 267
1504
+ 268</pre>
1505
+ </td>
1506
+ <td>
1507
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 261</span>
1508
+
1509
+ <span class='kw'>def</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>
1510
+ <span class='kw'>unless</span> <span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='id identifier rubyid_table_cache'>table_cache</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span>
1511
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='cvar'>@@connection</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span>
1512
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_load_schema'>load_schema</span>
1513
+ <span class='id identifier rubyid_table_cache'>table_cache</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span>
1514
+ <span class='kw'>end</span>
1515
+ <span class='id identifier rubyid_table'>table</span>
1516
+ <span class='kw'>end</span></pre>
1517
+ </td>
1518
+ </tr>
1519
+ </table>
1520
+ </div>
1521
+
1522
+ <div class="method_details ">
1523
+ <h3 class="signature " id="list_tables-instance_method">
1524
+
1525
+ - (<tt>Object</tt>) <strong>list_tables</strong>
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+ </h3><div class="docstring">
1532
+ <div class="discussion">
1533
+ <p>List all tables on DynamoDB.</p>
1534
+
1535
+
1536
+ </div>
1537
+ </div>
1538
+ <div class="tags">
1539
+
1540
+ <p class="tag_title">Since:</p>
1541
+ <ul class="since">
1542
+
1543
+ <li>
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+ <div class='inline'><p>0.2.0</p>
1550
+ </div>
1551
+
1552
+ </li>
1553
+
1554
+ </ul>
1555
+
1556
+ </div><table class="source_code">
1557
+ <tr>
1558
+ <td>
1559
+ <pre class="lines">
1560
+
1561
+
1562
+ 184
1563
+ 185
1564
+ 186</pre>
1565
+ </td>
1566
+ <td>
1567
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 184</span>
1568
+
1569
+ <span class='kw'>def</span> <span class='id identifier rubyid_list_tables'>list_tables</span>
1570
+ <span class='cvar'>@@connection</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:name</span><span class='rparen'>)</span>
1571
+ <span class='kw'>end</span></pre>
1572
+ </td>
1573
+ </tr>
1574
+ </table>
1575
+ </div>
1576
+
1577
+ <div class="method_details ">
1578
+ <h3 class="signature " id="put_item-instance_method">
1579
+
1580
+ - (<tt>Object</tt>) <strong>put_item</strong>(table_name, object, options = nil)
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+ </h3><div class="docstring">
1587
+ <div class="discussion">
1588
+ <p>Persists an item on DynamoDB.</p>
1589
+
1590
+
1591
+ </div>
1592
+ </div>
1593
+ <div class="tags">
1594
+ <p class="tag_title">Parameters:</p>
1595
+ <ul class="param">
1596
+
1597
+ <li>
1598
+
1599
+ <span class='name'>table_name</span>
1600
+
1601
+
1602
+ <span class='type'>(<tt>String</tt>)</span>
1603
+
1604
+
1605
+
1606
+ &mdash;
1607
+ <div class='inline'><p>the name of the table</p>
1608
+ </div>
1609
+
1610
+ </li>
1611
+
1612
+ <li>
1613
+
1614
+ <span class='name'>object</span>
1615
+
1616
+
1617
+ <span class='type'>(<tt>Object</tt>)</span>
1618
+
1619
+
1620
+
1621
+ &mdash;
1622
+ <div class='inline'><p>a hash or Dynamoid object to persist</p>
1623
+ </div>
1624
+
1625
+ </li>
1626
+
1627
+ </ul>
1628
+
1629
+ <p class="tag_title">Since:</p>
1630
+ <ul class="since">
1631
+
1632
+ <li>
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+ <div class='inline'><p>0.2.0</p>
1639
+ </div>
1640
+
1641
+ </li>
1642
+
1643
+ </ul>
1644
+
1645
+ </div><table class="source_code">
1646
+ <tr>
1647
+ <td>
1648
+ <pre class="lines">
1649
+
1650
+
1651
+ 194
1652
+ 195
1653
+ 196
1654
+ 197
1655
+ 198
1656
+ 199
1657
+ 200
1658
+ 201
1659
+ 202</pre>
1660
+ </td>
1661
+ <td>
1662
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 194</span>
1663
+
1664
+ <span class='kw'>def</span> <span class='id identifier rubyid_put_item'>put_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</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>
1665
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</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>
1666
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span>
1667
+ <span class='id identifier rubyid_object'>object</span><span class='period'>.</span><span class='id identifier rubyid_delete_if'>delete_if</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:empty?</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span>
1668
+ <span class='id identifier rubyid_options'>options</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1669
+ <span class='rparen'>)</span>
1670
+ <span class='kw'>rescue</span> <span class='const'>AWS</span><span class='op'>::</span><span class='const'>DynamoDB</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>ConditionalCheckFailedException</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1671
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>ConditionalCheckFailedException</span>
1672
+ <span class='kw'>end</span></pre>
1673
+ </td>
1674
+ </tr>
1675
+ </table>
1676
+ </div>
1677
+
1678
+ <div class="method_details ">
1679
+ <h3 class="signature " id="query-instance_method">
1680
+
1681
+ - (<tt>Enumerator</tt>) <strong>query</strong>(table_name, opts = {})
1682
+
1683
+
1684
+
1685
+
1686
+
1687
+ </h3><div class="docstring">
1688
+ <div class="discussion">
1689
+ <p>Query the DynamoDB table. This employs DynamoDB's indexes so is generally faster than scanning, but is
1690
+ only really useful for range queries, since it can only find by one hash key at once. Only provide
1691
+ one range key to the hash.</p>
1692
+
1693
+
1694
+ </div>
1695
+ </div>
1696
+ <div class="tags">
1697
+ <p class="tag_title">Parameters:</p>
1698
+ <ul class="param">
1699
+
1700
+ <li>
1701
+
1702
+ <span class='name'>table_name</span>
1703
+
1704
+
1705
+ <span class='type'>(<tt>String</tt>)</span>
1706
+
1707
+
1708
+
1709
+ &mdash;
1710
+ <div class='inline'><p>the name of the table</p>
1711
+ </div>
1712
+
1713
+ </li>
1714
+
1715
+ <li>
1716
+
1717
+ <span class='name'>opts</span>
1718
+
1719
+
1720
+ <span class='type'>(<tt>Hash</tt>)</span>
1721
+
1722
+
1723
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1724
+
1725
+
1726
+ &mdash;
1727
+ <div class='inline'><p>the options to query the table with</p>
1728
+ </div>
1729
+
1730
+ </li>
1731
+
1732
+ </ul>
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+
1739
+ <p class="tag_title">Options Hash (<tt>opts</tt>):</p>
1740
+ <ul class="option">
1741
+
1742
+ <li>
1743
+ <span class="name">:hash_value</span>
1744
+ <span class="type">(<tt>String</tt>)</span>
1745
+ <span class="default">
1746
+
1747
+ </span>
1748
+
1749
+ &mdash; <div class='inline'><p>the value of the hash key to find</p>
1750
+ </div>
1751
+
1752
+ </li>
1753
+
1754
+ <li>
1755
+ <span class="name">:range_value</span>
1756
+ <span class="type">(<tt>Range</tt>)</span>
1757
+ <span class="default">
1758
+
1759
+ </span>
1760
+
1761
+ &mdash; <div class='inline'><p>find the range key within this range</p>
1762
+ </div>
1763
+
1764
+ </li>
1765
+
1766
+ <li>
1767
+ <span class="name">:range_greater_than</span>
1768
+ <span class="type">(<tt>Number</tt>)</span>
1769
+ <span class="default">
1770
+
1771
+ </span>
1772
+
1773
+ &mdash; <div class='inline'><p>find range keys greater than this</p>
1774
+ </div>
1775
+
1776
+ </li>
1777
+
1778
+ <li>
1779
+ <span class="name">:range_less_than</span>
1780
+ <span class="type">(<tt>Number</tt>)</span>
1781
+ <span class="default">
1782
+
1783
+ </span>
1784
+
1785
+ &mdash; <div class='inline'><p>find range keys less than this</p>
1786
+ </div>
1787
+
1788
+ </li>
1789
+
1790
+ <li>
1791
+ <span class="name">:range_gte</span>
1792
+ <span class="type">(<tt>Number</tt>)</span>
1793
+ <span class="default">
1794
+
1795
+ </span>
1796
+
1797
+ &mdash; <div class='inline'><p>find range keys greater than or equal to this</p>
1798
+ </div>
1799
+
1800
+ </li>
1801
+
1802
+ <li>
1803
+ <span class="name">:range_lte</span>
1804
+ <span class="type">(<tt>Number</tt>)</span>
1805
+ <span class="default">
1806
+
1807
+ </span>
1808
+
1809
+ &mdash; <div class='inline'><p>find range keys less than or equal to this</p>
1810
+ </div>
1811
+
1812
+ </li>
1813
+
1814
+ </ul>
1815
+
1816
+
1817
+ <p class="tag_title">Returns:</p>
1818
+ <ul class="return">
1819
+
1820
+ <li>
1821
+
1822
+
1823
+ <span class='type'>(<tt>Enumerator</tt>)</span>
1824
+
1825
+
1826
+
1827
+ &mdash;
1828
+ <div class='inline'><p>an iterator of all matching items</p>
1829
+ </div>
1830
+
1831
+ </li>
1832
+
1833
+ </ul>
1834
+ <p class="tag_title">Since:</p>
1835
+ <ul class="since">
1836
+
1837
+ <li>
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+ <div class='inline'><p>0.2.0</p>
1844
+ </div>
1845
+
1846
+ </li>
1847
+
1848
+ </ul>
1849
+
1850
+ </div><table class="source_code">
1851
+ <tr>
1852
+ <td>
1853
+ <pre class="lines">
1854
+
1855
+
1856
+ 220
1857
+ 221
1858
+ 222
1859
+ 223
1860
+ 224
1861
+ 225
1862
+ 226
1863
+ 227
1864
+ 228
1865
+ 229
1866
+ 230
1867
+ 231
1868
+ 232
1869
+ 233
1870
+ 234
1871
+ 235
1872
+ 236
1873
+ 237</pre>
1874
+ </td>
1875
+ <td>
1876
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 220</span>
1877
+
1878
+ <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>
1879
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</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>
1880
+
1881
+ <span class='const'>Enumerator</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_yielder'>yielder</span><span class='op'>|</span>
1882
+ <span class='id identifier rubyid_consistent_opts'>consistent_opts</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:consistent_read</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:consistent_read</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='kw'>false</span> <span class='rbrace'>}</span>
1883
+ <span class='kw'>if</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_composite_key?'>composite_key?</span>
1884
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_query'>query</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</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_data'>data</span><span class='op'>|</span>
1885
+ <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span> <span class='symbol'>:select</span>
1886
+ <span class='id identifier rubyid_yielder'>yielder</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys!'>symbolize_keys!</span>
1887
+ <span class='kw'>else</span>
1888
+ <span class='id identifier rubyid_yielder'>yielder</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span><span class='lparen'>(</span><span class='id identifier rubyid_consistent_opts'>consistent_opts</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys!'>symbolize_keys!</span>
1889
+ <span class='kw'>end</span>
1890
+ <span class='kw'>end</span>
1891
+ <span class='kw'>else</span>
1892
+ <span class='id identifier rubyid_yielder'>yielder</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='id identifier rubyid_get_item'>get_item</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='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1893
+ <span class='kw'>end</span>
1894
+ <span class='kw'>end</span>
1895
+ <span class='kw'>end</span></pre>
1896
+ </td>
1897
+ </tr>
1898
+ </table>
1899
+ </div>
1900
+
1901
+ <div class="method_details ">
1902
+ <h3 class="signature " id="scan-instance_method">
1903
+
1904
+ - (<tt>Enumerator</tt>) <strong>scan</strong>(table_name, scan_hash, select_opts)
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+ </h3><div class="docstring">
1911
+ <div class="discussion">
1912
+ <p>Scan the DynamoDB table. This is usually a very slow operation as it naively filters all data on
1913
+ the DynamoDB servers.</p>
1914
+
1915
+
1916
+ </div>
1917
+ </div>
1918
+ <div class="tags">
1919
+ <p class="tag_title">Parameters:</p>
1920
+ <ul class="param">
1921
+
1922
+ <li>
1923
+
1924
+ <span class='name'>table_name</span>
1925
+
1926
+
1927
+ <span class='type'>(<tt>String</tt>)</span>
1928
+
1929
+
1930
+
1931
+ &mdash;
1932
+ <div class='inline'><p>the name of the table</p>
1933
+ </div>
1934
+
1935
+ </li>
1936
+
1937
+ <li>
1938
+
1939
+ <span class='name'>scan_hash</span>
1940
+
1941
+
1942
+ <span class='type'>(<tt>Hash</tt>)</span>
1943
+
1944
+
1945
+
1946
+ &mdash;
1947
+ <div class='inline'><p>a hash of attributes: matching records will be returned by the scan</p>
1948
+ </div>
1949
+
1950
+ </li>
1951
+
1952
+ </ul>
1953
+
1954
+ <p class="tag_title">Returns:</p>
1955
+ <ul class="return">
1956
+
1957
+ <li>
1958
+
1959
+
1960
+ <span class='type'>(<tt>Enumerator</tt>)</span>
1961
+
1962
+
1963
+
1964
+ &mdash;
1965
+ <div class='inline'><p>an iterator of all matching items</p>
1966
+ </div>
1967
+
1968
+ </li>
1969
+
1970
+ </ul>
1971
+ <p class="tag_title">Since:</p>
1972
+ <ul class="since">
1973
+
1974
+ <li>
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+ <div class='inline'><p>0.2.0</p>
1981
+ </div>
1982
+
1983
+ </li>
1984
+
1985
+ </ul>
1986
+
1987
+ </div><table class="source_code">
1988
+ <tr>
1989
+ <td>
1990
+ <pre class="lines">
1991
+
1992
+
1993
+ 248
1994
+ 249
1995
+ 250
1996
+ 251
1997
+ 252
1998
+ 253
1999
+ 254
2000
+ 255</pre>
2001
+ </td>
2002
+ <td>
2003
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 248</span>
2004
+
2005
+ <span class='kw'>def</span> <span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_scan_hash'>scan_hash</span><span class='comma'>,</span> <span class='id identifier rubyid_select_opts'>select_opts</span><span class='rparen'>)</span>
2006
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</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>
2007
+ <span class='const'>Enumerator</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_yielder'>yielder</span><span class='op'>|</span>
2008
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_scan_hash'>scan_hash</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='id identifier rubyid_select_opts'>select_opts</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_data'>data</span><span class='op'>|</span>
2009
+ <span class='id identifier rubyid_yielder'>yielder</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys!'>symbolize_keys!</span>
2010
+ <span class='kw'>end</span>
2011
+ <span class='kw'>end</span>
2012
+ <span class='kw'>end</span></pre>
2013
+ </td>
2014
+ </tr>
2015
+ </table>
2016
+ </div>
2017
+
2018
+ <div class="method_details ">
2019
+ <h3 class="signature " id="table_cache-instance_method">
2020
+
2021
+ - (<tt>Object</tt>) <strong>table_cache</strong>
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+ </h3><table class="source_code">
2028
+ <tr>
2029
+ <td>
2030
+ <pre class="lines">
2031
+
2032
+
2033
+ 270
2034
+ 271
2035
+ 272</pre>
2036
+ </td>
2037
+ <td>
2038
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 270</span>
2039
+
2040
+ <span class='kw'>def</span> <span class='id identifier rubyid_table_cache'>table_cache</span>
2041
+ <span class='ivar'>@table_cache</span> <span class='op'>||=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
2042
+ <span class='kw'>end</span></pre>
2043
+ </td>
2044
+ </tr>
2045
+ </table>
2046
+ </div>
2047
+
2048
+ <div class="method_details ">
2049
+ <h3 class="signature " id="update_item-instance_method">
2050
+
2051
+ - (<tt>Object</tt>) <strong>update_item</strong>(table_name, key, options = {}, &amp;block)
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+ </h3><table class="source_code">
2058
+ <tr>
2059
+ <td>
2060
+ <pre class="lines">
2061
+
2062
+
2063
+ 171
2064
+ 172
2065
+ 173
2066
+ 174
2067
+ 175
2068
+ 176
2069
+ 177
2070
+ 178
2071
+ 179</pre>
2072
+ </td>
2073
+ <td>
2074
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 171</span>
2075
+
2076
+ <span class='kw'>def</span> <span class='id identifier rubyid_update_item'>update_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</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='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2077
+ <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>
2078
+ <span class='id identifier rubyid_conditions'>conditions</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'>:conditions</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
2079
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</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>
2080
+ <span class='id identifier rubyid_item'>item</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rparen'>)</span>
2081
+ <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='id identifier rubyid_conditions'>conditions</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='symbol'>:return</span> <span class='op'>=&gt;</span> <span class='symbol'>:all_new</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2082
+ <span class='kw'>rescue</span> <span class='const'>AWS</span><span class='op'>::</span><span class='const'>DynamoDB</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>ConditionalCheckFailedException</span>
2083
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>ConditionalCheckFailedException</span>
2084
+ <span class='kw'>end</span></pre>
2085
+ </td>
2086
+ </tr>
2087
+ </table>
2088
+ </div>
2089
+
2090
+ </div>
2091
+
2092
+ </div>
2093
+
2094
+ <div id="footer">
2095
+ Generated on Thu Jun 27 21:59:13 2013 by
2096
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2097
+ 0.8.6.1 (ruby-1.9.3).
2098
+ </div>
2099
+
2100
+ </body>
2101
+ </html>