dynamoid 0.2.0 → 0.3.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.
Files changed (97) hide show
  1. data/Dynamoid.gemspec +65 -3
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +6 -0
  4. data/README.markdown +117 -22
  5. data/Rakefile +22 -9
  6. data/VERSION +1 -1
  7. data/doc/.nojekyll +0 -0
  8. data/doc/Dynamoid.html +300 -0
  9. data/doc/Dynamoid/Adapter.html +1387 -0
  10. data/doc/Dynamoid/Adapter/AwsSdk.html +1561 -0
  11. data/doc/Dynamoid/Adapter/Local.html +1487 -0
  12. data/doc/Dynamoid/Associations.html +131 -0
  13. data/doc/Dynamoid/Associations/Association.html +1706 -0
  14. data/doc/Dynamoid/Associations/BelongsTo.html +339 -0
  15. data/doc/Dynamoid/Associations/ClassMethods.html +723 -0
  16. data/doc/Dynamoid/Associations/HasAndBelongsToMany.html +339 -0
  17. data/doc/Dynamoid/Associations/HasMany.html +339 -0
  18. data/doc/Dynamoid/Associations/HasOne.html +339 -0
  19. data/doc/Dynamoid/Components.html +202 -0
  20. data/doc/Dynamoid/Config.html +395 -0
  21. data/doc/Dynamoid/Config/Options.html +609 -0
  22. data/doc/Dynamoid/Criteria.html +131 -0
  23. data/doc/Dynamoid/Criteria/Chain.html +759 -0
  24. data/doc/Dynamoid/Criteria/ClassMethods.html +98 -0
  25. data/doc/Dynamoid/Document.html +512 -0
  26. data/doc/Dynamoid/Document/ClassMethods.html +581 -0
  27. data/doc/Dynamoid/Errors.html +118 -0
  28. data/doc/Dynamoid/Errors/DocumentNotValid.html +210 -0
  29. data/doc/Dynamoid/Errors/Error.html +130 -0
  30. data/doc/Dynamoid/Errors/InvalidField.html +133 -0
  31. data/doc/Dynamoid/Errors/MissingRangeKey.html +133 -0
  32. data/doc/Dynamoid/Fields.html +649 -0
  33. data/doc/Dynamoid/Fields/ClassMethods.html +264 -0
  34. data/doc/Dynamoid/Finders.html +128 -0
  35. data/doc/Dynamoid/Finders/ClassMethods.html +502 -0
  36. data/doc/Dynamoid/Indexes.html +308 -0
  37. data/doc/Dynamoid/Indexes/ClassMethods.html +351 -0
  38. data/doc/Dynamoid/Indexes/Index.html +1089 -0
  39. data/doc/Dynamoid/Persistence.html +653 -0
  40. data/doc/Dynamoid/Persistence/ClassMethods.html +568 -0
  41. data/doc/Dynamoid/Validations.html +399 -0
  42. data/doc/_index.html +439 -0
  43. data/doc/class_list.html +47 -0
  44. data/doc/css/common.css +1 -0
  45. data/doc/css/full_list.css +55 -0
  46. data/doc/css/style.css +322 -0
  47. data/doc/file.LICENSE.html +66 -0
  48. data/doc/file.README.html +279 -0
  49. data/doc/file_list.html +52 -0
  50. data/doc/frames.html +13 -0
  51. data/doc/index.html +279 -0
  52. data/doc/js/app.js +205 -0
  53. data/doc/js/full_list.js +173 -0
  54. data/doc/js/jquery.js +16 -0
  55. data/doc/method_list.html +1054 -0
  56. data/doc/top-level-namespace.html +105 -0
  57. data/lib/dynamoid.rb +2 -1
  58. data/lib/dynamoid/adapter.rb +77 -6
  59. data/lib/dynamoid/adapter/aws_sdk.rb +96 -16
  60. data/lib/dynamoid/adapter/local.rb +84 -15
  61. data/lib/dynamoid/associations.rb +53 -4
  62. data/lib/dynamoid/associations/association.rb +154 -26
  63. data/lib/dynamoid/associations/belongs_to.rb +32 -6
  64. data/lib/dynamoid/associations/has_and_belongs_to_many.rb +29 -3
  65. data/lib/dynamoid/associations/has_many.rb +30 -4
  66. data/lib/dynamoid/associations/has_one.rb +26 -3
  67. data/lib/dynamoid/components.rb +7 -5
  68. data/lib/dynamoid/config.rb +15 -2
  69. data/lib/dynamoid/config/options.rb +8 -0
  70. data/lib/dynamoid/criteria.rb +7 -2
  71. data/lib/dynamoid/criteria/chain.rb +55 -8
  72. data/lib/dynamoid/document.rb +68 -7
  73. data/lib/dynamoid/errors.rb +17 -2
  74. data/lib/dynamoid/fields.rb +44 -1
  75. data/lib/dynamoid/finders.rb +32 -6
  76. data/lib/dynamoid/indexes.rb +22 -2
  77. data/lib/dynamoid/indexes/index.rb +48 -7
  78. data/lib/dynamoid/persistence.rb +111 -51
  79. data/lib/dynamoid/validations.rb +36 -0
  80. data/spec/app/models/address.rb +2 -1
  81. data/spec/app/models/camel_case.rb +11 -0
  82. data/spec/app/models/magazine.rb +4 -1
  83. data/spec/app/models/sponsor.rb +3 -1
  84. data/spec/app/models/subscription.rb +5 -1
  85. data/spec/app/models/user.rb +10 -1
  86. data/spec/dynamoid/associations/association_spec.rb +67 -1
  87. data/spec/dynamoid/associations/belongs_to_spec.rb +16 -1
  88. data/spec/dynamoid/associations/has_and_belongs_to_many_spec.rb +7 -0
  89. data/spec/dynamoid/associations/has_many_spec.rb +14 -0
  90. data/spec/dynamoid/associations/has_one_spec.rb +10 -1
  91. data/spec/dynamoid/criteria_spec.rb +5 -1
  92. data/spec/dynamoid/document_spec.rb +23 -3
  93. data/spec/dynamoid/fields_spec.rb +10 -1
  94. data/spec/dynamoid/indexes/index_spec.rb +19 -0
  95. data/spec/dynamoid/persistence_spec.rb +24 -0
  96. data/spec/dynamoid/validations_spec.rb +36 -0
  97. metadata +105 -4
@@ -0,0 +1,1561 @@
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.7.5
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '../..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../../_index.html">Index (A)</a> &raquo;
37
+ <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>
38
+ &raquo;
39
+ <span class="title">AwsSdk</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: Dynamoid::Adapter::AwsSdk
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+ <dt class="r1">Extended by:</dt>
70
+ <dd class="r1"><span class='object_link'><a href="" title="Dynamoid::Adapter::AwsSdk (module)">AwsSdk</a></span></dd>
71
+
72
+
73
+
74
+
75
+
76
+
77
+ <dt class="r2">Included in:</dt>
78
+ <dd class="r2"><span class='object_link'><a href="" title="Dynamoid::Adapter::AwsSdk (module)">AwsSdk</a></span></dd>
79
+
80
+
81
+
82
+ <dt class="r1 last">Defined in:</dt>
83
+ <dd class="r1 last">lib/dynamoid/adapter/aws_sdk.rb</dd>
84
+
85
+ </dl>
86
+ <div class="clear"></div>
87
+
88
+ <h2>Overview</h2><div class="docstring">
89
+ <div class="discussion">
90
+ <p>The AwsSdk adapter provides support for the AWS-SDK for Ruby gem.
91
+ More information is available at that Gem's Github page:
92
+ <a href="https://github.com/amazonwebservices/aws-sdk-for-ruby">https://github.com/amazonwebservices/aws-sdk-for-ruby</a></p>
93
+
94
+
95
+ </div>
96
+ </div>
97
+ <div class="tags">
98
+
99
+
100
+ </div>
101
+ <h2>Constant Summary</h2>
102
+
103
+ <dl class="constants">
104
+
105
+ <dt id="connection-classvariable" class="">@@connection =
106
+
107
+ </dt>
108
+ <dd><pre class="code"><span class='kw'>nil</span></pre></dd>
109
+
110
+ </dl>
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+ <h2>
121
+ Instance Method Summary
122
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
123
+ </h2>
124
+
125
+ <ul class="summary">
126
+
127
+ <li class="public ">
128
+ <span class="summary_signature">
129
+
130
+ <a href="#batch_get_item-instance_method" title="#batch_get_item (instance method)">- (Hash) <strong>batch_get_item</strong>(options) </a>
131
+
132
+
133
+
134
+ </span>
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+ <span class="summary_desc"><div class='inline'><p>Get many items at once from DynamoDB.</p>
144
+ </div></span>
145
+
146
+ </li>
147
+
148
+
149
+ <li class="public ">
150
+ <span class="summary_signature">
151
+
152
+ <a href="#connect%21-instance_method" title="#connect! (instance method)">- (AWS::DynamoDB::Connection) <strong>connect!</strong> </a>
153
+
154
+
155
+
156
+ </span>
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+ <span class="summary_desc"><div class='inline'><p>Establish the connection to DynamoDB.</p>
166
+ </div></span>
167
+
168
+ </li>
169
+
170
+
171
+ <li class="public ">
172
+ <span class="summary_signature">
173
+
174
+ <a href="#connection-instance_method" title="#connection (instance method)">- (AWS::DynamoDB::Connection) <strong>connection</strong> </a>
175
+
176
+
177
+
178
+ </span>
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+ <span class="summary_desc"><div class='inline'><p>Return the established connection.</p>
188
+ </div></span>
189
+
190
+ </li>
191
+
192
+
193
+ <li class="public ">
194
+ <span class="summary_signature">
195
+
196
+ <a href="#create_table-instance_method" title="#create_table (instance method)">- (Object) <strong>create_table</strong>(table_name, key = :id, options = {}) </a>
197
+
198
+
199
+
200
+ </span>
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+ <span class="summary_desc"><div class='inline'><p>Create a table on DynamoDB.</p>
210
+ </div></span>
211
+
212
+ </li>
213
+
214
+
215
+ <li class="public ">
216
+ <span class="summary_signature">
217
+
218
+ <a href="#delete_item-instance_method" title="#delete_item (instance method)">- (Object) <strong>delete_item</strong>(table_name, key, range_key = nil) </a>
219
+
220
+
221
+
222
+ </span>
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+ <span class="summary_desc"><div class='inline'><p>Removes an item from DynamoDB.</p>
232
+ </div></span>
233
+
234
+ </li>
235
+
236
+
237
+ <li class="public ">
238
+ <span class="summary_signature">
239
+
240
+ <a href="#delete_table-instance_method" title="#delete_table (instance method)">- (Object) <strong>delete_table</strong>(table_name) </a>
241
+
242
+
243
+
244
+ </span>
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+ <span class="summary_desc"><div class='inline'><p>Deletes an entire table from DynamoDB.</p>
254
+ </div></span>
255
+
256
+ </li>
257
+
258
+
259
+ <li class="public ">
260
+ <span class="summary_signature">
261
+
262
+ <a href="#get_item-instance_method" title="#get_item (instance method)">- (Hash) <strong>get_item</strong>(table_name, key, range_key = nil) </a>
263
+
264
+
265
+
266
+ </span>
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+ <span class="summary_desc"><div class='inline'><p>Fetches an item from DynamoDB.</p>
276
+ </div></span>
277
+
278
+ </li>
279
+
280
+
281
+ <li class="public ">
282
+ <span class="summary_signature">
283
+
284
+ <a href="#list_tables-instance_method" title="#list_tables (instance method)">- (Object) <strong>list_tables</strong> </a>
285
+
286
+
287
+
288
+ </span>
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+ <span class="summary_desc"><div class='inline'><p>List all tables on DynamoDB.</p>
298
+ </div></span>
299
+
300
+ </li>
301
+
302
+
303
+ <li class="public ">
304
+ <span class="summary_signature">
305
+
306
+ <a href="#put_item-instance_method" title="#put_item (instance method)">- (Object) <strong>put_item</strong>(table_name, object) </a>
307
+
308
+
309
+
310
+ </span>
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+ <span class="summary_desc"><div class='inline'><p>Persists an item on DynamoDB.</p>
320
+ </div></span>
321
+
322
+ </li>
323
+
324
+
325
+ <li class="public ">
326
+ <span class="summary_signature">
327
+
328
+ <a href="#query-instance_method" title="#query (instance method)">- (Array) <strong>query</strong>(table_name, opts = {}) </a>
329
+
330
+
331
+
332
+ </span>
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+ <span class="summary_desc"><div class='inline'><p>Query the DynamoDB table.</p>
342
+ </div></span>
343
+
344
+ </li>
345
+
346
+
347
+ <li class="public ">
348
+ <span class="summary_signature">
349
+
350
+ <a href="#scan-instance_method" title="#scan (instance method)">- (Array) <strong>scan</strong>(table_name, scan_hash) </a>
351
+
352
+
353
+
354
+ </span>
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+ <span class="summary_desc"><div class='inline'><p>Scan the DynamoDB table.</p>
364
+ </div></span>
365
+
366
+ </li>
367
+
368
+
369
+ </ul>
370
+
371
+
372
+
373
+
374
+ <div id="instance_method_details" class="method_details_list">
375
+ <h2>Instance Method Details</h2>
376
+
377
+
378
+ <div class="method_details first">
379
+ <p class="signature first" id="batch_get_item-instance_method">
380
+
381
+ - (<tt>Hash</tt>) <strong>batch_get_item</strong>(options)
382
+
383
+
384
+
385
+ </p><div class="docstring">
386
+ <div class="discussion">
387
+ <p>Get many items at once from DynamoDB. More efficient than getting each item individually.</p>
388
+
389
+
390
+ </div>
391
+ </div>
392
+ <div class="tags">
393
+
394
+ <div class="examples">
395
+ <h3>Examples:</h3>
396
+
397
+ <h4><div class='inline'><p>Retrieve IDs 1 and 2 from the table testtable</p>
398
+ </div></h4>
399
+ <pre class="example 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='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></pre>
400
+
401
+ </div>
402
+ <h3>Parameters:</h3>
403
+ <ul class="param">
404
+
405
+ <li>
406
+
407
+ <span class='name'>options</span>
408
+
409
+
410
+ <span class='type'>(<tt>Hash</tt>)</span>
411
+
412
+
413
+
414
+ &mdash;
415
+ <div class='inline'><p>the hash of tables and IDs to retrieve</p>
416
+ </div>
417
+
418
+ </li>
419
+
420
+ </ul>
421
+
422
+ <h3>Returns:</h3>
423
+ <ul class="return">
424
+
425
+ <li>
426
+
427
+
428
+ <span class='type'>(<tt>Hash</tt>)</span>
429
+
430
+
431
+
432
+ &mdash;
433
+ <div class='inline'><p>a hash where keys are the table names and the values are the retrieved items</p>
434
+ </div>
435
+
436
+ </li>
437
+
438
+ </ul>
439
+ <h3>Since:</h3>
440
+ <ul class="since">
441
+
442
+ <li>
443
+
444
+
445
+
446
+
447
+
448
+ <div class='inline'><p>0.2.0</p>
449
+ </div>
450
+
451
+ </li>
452
+
453
+ </ul>
454
+
455
+ </div><table class="source_code">
456
+ <tr>
457
+ <td>
458
+ <pre class="lines">
459
+
460
+
461
+ 43
462
+ 44
463
+ 45
464
+ 46
465
+ 47
466
+ 48
467
+ 49
468
+ 50
469
+ 51
470
+ 52
471
+ 53
472
+ 54
473
+ 55
474
+ 56</pre>
475
+ </td>
476
+ <td>
477
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 43</span>
478
+
479
+ <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_options'>options</span><span class='rparen'>)</span>
480
+ <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>
481
+ <span class='kw'>return</span> <span class='id identifier rubyid_hash'>hash</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>
482
+ <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>
483
+ <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>
484
+ <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>
485
+ <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='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>
486
+ <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>
487
+ <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>
488
+ <span class='kw'>end</span>
489
+ <span class='kw'>end</span>
490
+ <span class='kw'>end</span>
491
+ <span class='id identifier rubyid_hash'>hash</span>
492
+ <span class='kw'>end</span></pre>
493
+ </td>
494
+ </tr>
495
+ </table>
496
+ </div>
497
+
498
+ <div class="method_details ">
499
+ <p class="signature " id="connect!-instance_method">
500
+
501
+ - (<tt>AWS::DynamoDB::Connection</tt>) <strong>connect!</strong>
502
+
503
+
504
+
505
+ </p><div class="docstring">
506
+ <div class="discussion">
507
+ <p>Establish the connection to DynamoDB.</p>
508
+
509
+
510
+ </div>
511
+ </div>
512
+ <div class="tags">
513
+
514
+ <h3>Returns:</h3>
515
+ <ul class="return">
516
+
517
+ <li>
518
+
519
+
520
+ <span class='type'>(<tt>AWS::DynamoDB::Connection</tt>)</span>
521
+
522
+
523
+
524
+ &mdash;
525
+ <div class='inline'><p>the raw DynamoDB connection</p>
526
+ </div>
527
+
528
+ </li>
529
+
530
+ </ul>
531
+ <h3>Since:</h3>
532
+ <ul class="since">
533
+
534
+ <li>
535
+
536
+
537
+
538
+
539
+
540
+ <div class='inline'><p>0.2.0</p>
541
+ </div>
542
+
543
+ </li>
544
+
545
+ </ul>
546
+
547
+ </div><table class="source_code">
548
+ <tr>
549
+ <td>
550
+ <pre class="lines">
551
+
552
+
553
+ 20
554
+ 21
555
+ 22</pre>
556
+ </td>
557
+ <td>
558
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 20</span>
559
+
560
+ <span class='kw'>def</span> <span class='id identifier rubyid_connect!'>connect!</span>
561
+ <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><span class='lparen'>(</span><span class='symbol'>:access_key_id</span> <span class='op'>=&gt;</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_access_key'>access_key</span><span class='comma'>,</span> <span class='symbol'>:secret_access_key</span> <span class='op'>=&gt;</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_secret_key'>secret_key</span><span class='rparen'>)</span>
562
+ <span class='kw'>end</span></pre>
563
+ </td>
564
+ </tr>
565
+ </table>
566
+ </div>
567
+
568
+ <div class="method_details ">
569
+ <p class="signature " id="connection-instance_method">
570
+
571
+ - (<tt>AWS::DynamoDB::Connection</tt>) <strong>connection</strong>
572
+
573
+
574
+
575
+ </p><div class="docstring">
576
+ <div class="discussion">
577
+ <p>Return the established connection.</p>
578
+
579
+
580
+ </div>
581
+ </div>
582
+ <div class="tags">
583
+
584
+ <h3>Returns:</h3>
585
+ <ul class="return">
586
+
587
+ <li>
588
+
589
+
590
+ <span class='type'>(<tt>AWS::DynamoDB::Connection</tt>)</span>
591
+
592
+
593
+
594
+ &mdash;
595
+ <div class='inline'><p>the raw DynamoDB connection</p>
596
+ </div>
597
+
598
+ </li>
599
+
600
+ </ul>
601
+ <h3>Since:</h3>
602
+ <ul class="since">
603
+
604
+ <li>
605
+
606
+
607
+
608
+
609
+
610
+ <div class='inline'><p>0.2.0</p>
611
+ </div>
612
+
613
+ </li>
614
+
615
+ </ul>
616
+
617
+ </div><table class="source_code">
618
+ <tr>
619
+ <td>
620
+ <pre class="lines">
621
+
622
+
623
+ 29
624
+ 30
625
+ 31</pre>
626
+ </td>
627
+ <td>
628
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 29</span>
629
+
630
+ <span class='kw'>def</span> <span class='id identifier rubyid_connection'>connection</span>
631
+ <span class='cvar'>@@connection</span>
632
+ <span class='kw'>end</span></pre>
633
+ </td>
634
+ </tr>
635
+ </table>
636
+ </div>
637
+
638
+ <div class="method_details ">
639
+ <p class="signature " id="create_table-instance_method">
640
+
641
+ - (<tt>Object</tt>) <strong>create_table</strong>(table_name, key = :id, options = {})
642
+
643
+
644
+
645
+ </p><div class="docstring">
646
+ <div class="discussion">
647
+ <p>Create a table on DynamoDB. This usually takes a long time to complete.</p>
648
+
649
+
650
+ </div>
651
+ </div>
652
+ <div class="tags">
653
+ <h3>Parameters:</h3>
654
+ <ul class="param">
655
+
656
+ <li>
657
+
658
+ <span class='name'>table_name</span>
659
+
660
+
661
+ <span class='type'>(<tt>String</tt>)</span>
662
+
663
+
664
+
665
+ &mdash;
666
+ <div class='inline'><p>the name of the table to create</p>
667
+ </div>
668
+
669
+ </li>
670
+
671
+ <li>
672
+
673
+ <span class='name'>key</span>
674
+
675
+
676
+ <span class='type'>(<tt>Symbol</tt>)</span>
677
+
678
+
679
+ <em class="default">(defaults to: <tt>:id</tt>)</em>
680
+
681
+
682
+ &mdash;
683
+ <div class='inline'><p>the table's primary key (defaults to :id)</p>
684
+ </div>
685
+
686
+ </li>
687
+
688
+ <li>
689
+
690
+ <span class='name'>options</span>
691
+
692
+
693
+ <span class='type'>(<tt>Hash</tt>)</span>
694
+
695
+
696
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
697
+
698
+
699
+ &mdash;
700
+ <div class='inline'><p>provide a range_key here if you want one for the table</p>
701
+ </div>
702
+
703
+ </li>
704
+
705
+ </ul>
706
+
707
+ <h3>Since:</h3>
708
+ <ul class="since">
709
+
710
+ <li>
711
+
712
+
713
+
714
+
715
+
716
+ <div class='inline'><p>0.2.0</p>
717
+ </div>
718
+
719
+ </li>
720
+
721
+ </ul>
722
+
723
+ </div><table class="source_code">
724
+ <tr>
725
+ <td>
726
+ <pre class="lines">
727
+
728
+
729
+ 65
730
+ 66
731
+ 67
732
+ 68
733
+ 69
734
+ 70
735
+ 71
736
+ 72
737
+ 73</pre>
738
+ </td>
739
+ <td>
740
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 65</span>
741
+
742
+ <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>
743
+ <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>
744
+ <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='lbrace'>{</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='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>=&gt;</span> <span class='symbol'>:number</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span>
745
+ <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>
746
+ <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>
747
+ <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>
748
+ <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>
749
+ <span class='kw'>return</span> <span class='id identifier rubyid_table'>table</span>
750
+ <span class='kw'>end</span></pre>
751
+ </td>
752
+ </tr>
753
+ </table>
754
+ </div>
755
+
756
+ <div class="method_details ">
757
+ <p class="signature " id="delete_item-instance_method">
758
+
759
+ - (<tt>Object</tt>) <strong>delete_item</strong>(table_name, key, range_key = nil)
760
+
761
+
762
+
763
+ </p><div class="docstring">
764
+ <div class="discussion">
765
+ <p>Removes an item from DynamoDB.</p>
766
+
767
+
768
+ </div>
769
+ </div>
770
+ <div class="tags">
771
+ <h3>Parameters:</h3>
772
+ <ul class="param">
773
+
774
+ <li>
775
+
776
+ <span class='name'>table_name</span>
777
+
778
+
779
+ <span class='type'>(<tt>String</tt>)</span>
780
+
781
+
782
+
783
+ &mdash;
784
+ <div class='inline'><p>the name of the table</p>
785
+ </div>
786
+
787
+ </li>
788
+
789
+ <li>
790
+
791
+ <span class='name'>key</span>
792
+
793
+
794
+ <span class='type'>(<tt>String</tt>)</span>
795
+
796
+
797
+
798
+ &mdash;
799
+ <div class='inline'><p>the hash key of the item to delete</p>
800
+ </div>
801
+
802
+ </li>
803
+
804
+ <li>
805
+
806
+ <span class='name'>range_key</span>
807
+
808
+
809
+ <span class='type'>(<tt>Number</tt>)</span>
810
+
811
+
812
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
813
+
814
+
815
+ &mdash;
816
+ <div class='inline'><p>the range key of the item to delete, required if the table has a composite key</p>
817
+ </div>
818
+
819
+ </li>
820
+
821
+ </ul>
822
+
823
+ <h3>Since:</h3>
824
+ <ul class="since">
825
+
826
+ <li>
827
+
828
+
829
+
830
+
831
+
832
+ <div class='inline'><p>0.2.0</p>
833
+ </div>
834
+
835
+ </li>
836
+
837
+ </ul>
838
+
839
+ </div><table class="source_code">
840
+ <tr>
841
+ <td>
842
+ <pre class="lines">
843
+
844
+
845
+ 82
846
+ 83
847
+ 84
848
+ 85
849
+ 86
850
+ 87
851
+ 88
852
+ 89
853
+ 90
854
+ 91
855
+ 92</pre>
856
+ </td>
857
+ <td>
858
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 82</span>
859
+
860
+ <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_range_key'>range_key</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
861
+ <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>
862
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_load_schema'>load_schema</span>
863
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <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>
864
+ <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>
865
+ <span class='kw'>else</span>
866
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
867
+ <span class='kw'>end</span>
868
+ <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>
869
+ <span class='kw'>true</span>
870
+ <span class='kw'>end</span></pre>
871
+ </td>
872
+ </tr>
873
+ </table>
874
+ </div>
875
+
876
+ <div class="method_details ">
877
+ <p class="signature " id="delete_table-instance_method">
878
+
879
+ - (<tt>Object</tt>) <strong>delete_table</strong>(table_name)
880
+
881
+
882
+
883
+ </p><div class="docstring">
884
+ <div class="discussion">
885
+ <p>Deletes an entire table from DynamoDB. Only 10 tables can be in the deleting state at once,
886
+ so if you have more this method may raise an exception.</p>
887
+
888
+
889
+ </div>
890
+ </div>
891
+ <div class="tags">
892
+ <h3>Parameters:</h3>
893
+ <ul class="param">
894
+
895
+ <li>
896
+
897
+ <span class='name'>table_name</span>
898
+
899
+
900
+ <span class='type'>(<tt>String</tt>)</span>
901
+
902
+
903
+
904
+ &mdash;
905
+ <div class='inline'><p>the name of the table to destroy</p>
906
+ </div>
907
+
908
+ </li>
909
+
910
+ </ul>
911
+
912
+ <h3>Since:</h3>
913
+ <ul class="since">
914
+
915
+ <li>
916
+
917
+
918
+
919
+
920
+
921
+ <div class='inline'><p>0.2.0</p>
922
+ </div>
923
+
924
+ </li>
925
+
926
+ </ul>
927
+
928
+ </div><table class="source_code">
929
+ <tr>
930
+ <td>
931
+ <pre class="lines">
932
+
933
+
934
+ 100
935
+ 101
936
+ 102</pre>
937
+ </td>
938
+ <td>
939
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 100</span>
940
+
941
+ <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>
942
+ <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><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span>
943
+ <span class='kw'>end</span></pre>
944
+ </td>
945
+ </tr>
946
+ </table>
947
+ </div>
948
+
949
+ <div class="method_details ">
950
+ <p class="signature " id="get_item-instance_method">
951
+
952
+ - (<tt>Hash</tt>) <strong>get_item</strong>(table_name, key, range_key = nil)
953
+
954
+
955
+
956
+ </p><div class="docstring">
957
+ <div class="discussion">
958
+ <p>Fetches an item from DynamoDB.</p>
959
+
960
+
961
+ </div>
962
+ </div>
963
+ <div class="tags">
964
+ <h3>Parameters:</h3>
965
+ <ul class="param">
966
+
967
+ <li>
968
+
969
+ <span class='name'>table_name</span>
970
+
971
+
972
+ <span class='type'>(<tt>String</tt>)</span>
973
+
974
+
975
+
976
+ &mdash;
977
+ <div class='inline'><p>the name of the table</p>
978
+ </div>
979
+
980
+ </li>
981
+
982
+ <li>
983
+
984
+ <span class='name'>key</span>
985
+
986
+
987
+ <span class='type'>(<tt>String</tt>)</span>
988
+
989
+
990
+
991
+ &mdash;
992
+ <div class='inline'><p>the hash key of the item to find</p>
993
+ </div>
994
+
995
+ </li>
996
+
997
+ <li>
998
+
999
+ <span class='name'>range_key</span>
1000
+
1001
+
1002
+ <span class='type'>(<tt>Number</tt>)</span>
1003
+
1004
+
1005
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1006
+
1007
+
1008
+ &mdash;
1009
+ <div class='inline'><p>the range key of the item to find, required if the table has a composite key</p>
1010
+ </div>
1011
+
1012
+ </li>
1013
+
1014
+ </ul>
1015
+
1016
+ <h3>Returns:</h3>
1017
+ <ul class="return">
1018
+
1019
+ <li>
1020
+
1021
+
1022
+ <span class='type'>(<tt>Hash</tt>)</span>
1023
+
1024
+
1025
+
1026
+ &mdash;
1027
+ <div class='inline'><p>a hash representing the raw item in DynamoDB</p>
1028
+ </div>
1029
+
1030
+ </li>
1031
+
1032
+ </ul>
1033
+ <h3>Since:</h3>
1034
+ <ul class="since">
1035
+
1036
+ <li>
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+ <div class='inline'><p>0.2.0</p>
1043
+ </div>
1044
+
1045
+ </li>
1046
+
1047
+ </ul>
1048
+
1049
+ </div><table class="source_code">
1050
+ <tr>
1051
+ <td>
1052
+ <pre class="lines">
1053
+
1054
+
1055
+ 115
1056
+ 116
1057
+ 117
1058
+ 118
1059
+ 119
1060
+ 120
1061
+ 121
1062
+ 122
1063
+ 123
1064
+ 124
1065
+ 125
1066
+ 126
1067
+ 127
1068
+ 128</pre>
1069
+ </td>
1070
+ <td>
1071
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 115</span>
1072
+
1073
+ <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_range_key'>range_key</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1074
+ <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>
1075
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_load_schema'>load_schema</span>
1076
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <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>
1077
+ <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>
1078
+ <span class='kw'>else</span>
1079
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
1080
+ <span class='kw'>end</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>
1081
+ <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>
1082
+ <span class='kw'>nil</span>
1083
+ <span class='kw'>else</span>
1084
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys!'>symbolize_keys!</span>
1085
+ <span class='kw'>end</span>
1086
+ <span class='kw'>end</span></pre>
1087
+ </td>
1088
+ </tr>
1089
+ </table>
1090
+ </div>
1091
+
1092
+ <div class="method_details ">
1093
+ <p class="signature " id="list_tables-instance_method">
1094
+
1095
+ - (<tt>Object</tt>) <strong>list_tables</strong>
1096
+
1097
+
1098
+
1099
+ </p><div class="docstring">
1100
+ <div class="discussion">
1101
+ <p>List all tables on DynamoDB.</p>
1102
+
1103
+
1104
+ </div>
1105
+ </div>
1106
+ <div class="tags">
1107
+
1108
+ <h3>Since:</h3>
1109
+ <ul class="since">
1110
+
1111
+ <li>
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+ <div class='inline'><p>0.2.0</p>
1118
+ </div>
1119
+
1120
+ </li>
1121
+
1122
+ </ul>
1123
+
1124
+ </div><table class="source_code">
1125
+ <tr>
1126
+ <td>
1127
+ <pre class="lines">
1128
+
1129
+
1130
+ 133
1131
+ 134
1132
+ 135</pre>
1133
+ </td>
1134
+ <td>
1135
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 133</span>
1136
+
1137
+ <span class='kw'>def</span> <span class='id identifier rubyid_list_tables'>list_tables</span>
1138
+ <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>
1139
+ <span class='kw'>end</span></pre>
1140
+ </td>
1141
+ </tr>
1142
+ </table>
1143
+ </div>
1144
+
1145
+ <div class="method_details ">
1146
+ <p class="signature " id="put_item-instance_method">
1147
+
1148
+ - (<tt>Object</tt>) <strong>put_item</strong>(table_name, object)
1149
+
1150
+
1151
+
1152
+ </p><div class="docstring">
1153
+ <div class="discussion">
1154
+ <p>Persists an item on DynamoDB.</p>
1155
+
1156
+
1157
+ </div>
1158
+ </div>
1159
+ <div class="tags">
1160
+ <h3>Parameters:</h3>
1161
+ <ul class="param">
1162
+
1163
+ <li>
1164
+
1165
+ <span class='name'>table_name</span>
1166
+
1167
+
1168
+ <span class='type'>(<tt>String</tt>)</span>
1169
+
1170
+
1171
+
1172
+ &mdash;
1173
+ <div class='inline'><p>the name of the table</p>
1174
+ </div>
1175
+
1176
+ </li>
1177
+
1178
+ <li>
1179
+
1180
+ <span class='name'>object</span>
1181
+
1182
+
1183
+ <span class='type'>(<tt>Object</tt>)</span>
1184
+
1185
+
1186
+
1187
+ &mdash;
1188
+ <div class='inline'><p>a hash or Dynamoid object to persist</p>
1189
+ </div>
1190
+
1191
+ </li>
1192
+
1193
+ </ul>
1194
+
1195
+ <h3>Since:</h3>
1196
+ <ul class="since">
1197
+
1198
+ <li>
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+ <div class='inline'><p>0.2.0</p>
1205
+ </div>
1206
+
1207
+ </li>
1208
+
1209
+ </ul>
1210
+
1211
+ </div><table class="source_code">
1212
+ <tr>
1213
+ <td>
1214
+ <pre class="lines">
1215
+
1216
+
1217
+ 143
1218
+ 144
1219
+ 145
1220
+ 146
1221
+ 147</pre>
1222
+ </td>
1223
+ <td>
1224
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 143</span>
1225
+
1226
+ <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='rparen'>)</span>
1227
+ <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>
1228
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_load_schema'>load_schema</span>
1229
+ <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><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='rparen'>)</span>
1230
+ <span class='kw'>end</span></pre>
1231
+ </td>
1232
+ </tr>
1233
+ </table>
1234
+ </div>
1235
+
1236
+ <div class="method_details ">
1237
+ <p class="signature " id="query-instance_method">
1238
+
1239
+ - (<tt>Array</tt>) <strong>query</strong>(table_name, opts = {})
1240
+
1241
+
1242
+
1243
+ </p><div class="docstring">
1244
+ <div class="discussion">
1245
+ <p>Query the DynamoDB table. This employs DynamoDB's indexes so is generally faster than scanning, but is
1246
+ only really useful for range queries, since it can only find by one hash key at once. Only provide
1247
+ one range key to the hash.</p>
1248
+
1249
+
1250
+ </div>
1251
+ </div>
1252
+ <div class="tags">
1253
+ <h3>Parameters:</h3>
1254
+ <ul class="param">
1255
+
1256
+ <li>
1257
+
1258
+ <span class='name'>table_name</span>
1259
+
1260
+
1261
+ <span class='type'>(<tt>String</tt>)</span>
1262
+
1263
+
1264
+
1265
+ &mdash;
1266
+ <div class='inline'><p>the name of the table</p>
1267
+ </div>
1268
+
1269
+ </li>
1270
+
1271
+ <li>
1272
+
1273
+ <span class='name'>opts</span>
1274
+
1275
+
1276
+ <span class='type'>(<tt>Hash</tt>)</span>
1277
+
1278
+
1279
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1280
+
1281
+
1282
+ &mdash;
1283
+ <div class='inline'><p>the options to query the table with</p>
1284
+ </div>
1285
+
1286
+ </li>
1287
+
1288
+ </ul>
1289
+
1290
+
1291
+
1292
+
1293
+
1294
+
1295
+ <h3>Options Hash (<tt>opts</tt>):</h3>
1296
+ <ul class="option">
1297
+
1298
+ <li>
1299
+ <span class="name">:hash_value</span>
1300
+ <span class="type">(<tt>String</tt>)</span>
1301
+ <span class="default">
1302
+
1303
+ </span>
1304
+ &mdash; <div class='inline'><p>the value of the hash key to find</p>
1305
+ </div>
1306
+ </li>
1307
+
1308
+ <li>
1309
+ <span class="name">:range_value</span>
1310
+ <span class="type">(<tt>Range</tt>)</span>
1311
+ <span class="default">
1312
+
1313
+ </span>
1314
+ &mdash; <div class='inline'><p>find the range key within this range</p>
1315
+ </div>
1316
+ </li>
1317
+
1318
+ <li>
1319
+ <span class="name">:range_greater_than</span>
1320
+ <span class="type">(<tt>Number</tt>)</span>
1321
+ <span class="default">
1322
+
1323
+ </span>
1324
+ &mdash; <div class='inline'><p>find range keys greater than this</p>
1325
+ </div>
1326
+ </li>
1327
+
1328
+ <li>
1329
+ <span class="name">:range_less_than</span>
1330
+ <span class="type">(<tt>Number</tt>)</span>
1331
+ <span class="default">
1332
+
1333
+ </span>
1334
+ &mdash; <div class='inline'><p>find range keys less than this</p>
1335
+ </div>
1336
+ </li>
1337
+
1338
+ <li>
1339
+ <span class="name">:range_gte</span>
1340
+ <span class="type">(<tt>Number</tt>)</span>
1341
+ <span class="default">
1342
+
1343
+ </span>
1344
+ &mdash; <div class='inline'><p>find range keys greater than or equal to this</p>
1345
+ </div>
1346
+ </li>
1347
+
1348
+ <li>
1349
+ <span class="name">:range_lte</span>
1350
+ <span class="type">(<tt>Number</tt>)</span>
1351
+ <span class="default">
1352
+
1353
+ </span>
1354
+ &mdash; <div class='inline'><p>find range keys less than or equal to this</p>
1355
+ </div>
1356
+ </li>
1357
+
1358
+ </ul>
1359
+
1360
+
1361
+ <h3>Returns:</h3>
1362
+ <ul class="return">
1363
+
1364
+ <li>
1365
+
1366
+
1367
+ <span class='type'>(<tt>Array</tt>)</span>
1368
+
1369
+
1370
+
1371
+ &mdash;
1372
+ <div class='inline'><p>an array of all matching items</p>
1373
+ </div>
1374
+
1375
+ </li>
1376
+
1377
+ </ul>
1378
+ <h3>Since:</h3>
1379
+ <ul class="since">
1380
+
1381
+ <li>
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+ <div class='inline'><p>0.2.0</p>
1388
+ </div>
1389
+
1390
+ </li>
1391
+
1392
+ </ul>
1393
+
1394
+ </div><table class="source_code">
1395
+ <tr>
1396
+ <td>
1397
+ <pre class="lines">
1398
+
1399
+
1400
+ 165
1401
+ 166
1402
+ 167
1403
+ 168
1404
+ 169
1405
+ 170
1406
+ 171
1407
+ 172
1408
+ 173
1409
+ 174
1410
+ 175
1411
+ 176</pre>
1412
+ </td>
1413
+ <td>
1414
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 165</span>
1415
+
1416
+ <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>
1417
+ <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>
1418
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_load_schema'>load_schema</span>
1419
+
1420
+ <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>
1421
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1422
+ <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='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_data'>data</span><span class='op'>|</span> <span class='id identifier rubyid_results'>results</span> <span class='op'>&lt;&lt;</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='period'>.</span><span class='id identifier rubyid_symbolize_keys!'>symbolize_keys!</span><span class='rbrace'>}</span>
1423
+ <span class='id identifier rubyid_results'>results</span>
1424
+ <span class='kw'>else</span>
1425
+ <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>
1426
+ <span class='kw'>end</span>
1427
+ <span class='kw'>end</span></pre>
1428
+ </td>
1429
+ </tr>
1430
+ </table>
1431
+ </div>
1432
+
1433
+ <div class="method_details ">
1434
+ <p class="signature " id="scan-instance_method">
1435
+
1436
+ - (<tt>Array</tt>) <strong>scan</strong>(table_name, scan_hash)
1437
+
1438
+
1439
+
1440
+ </p><div class="docstring">
1441
+ <div class="discussion">
1442
+ <p>Scan the DynamoDB table. This is usually a very slow operation as it naively filters all data on
1443
+ the DynamoDB servers.</p>
1444
+
1445
+
1446
+ </div>
1447
+ </div>
1448
+ <div class="tags">
1449
+ <h3>Parameters:</h3>
1450
+ <ul class="param">
1451
+
1452
+ <li>
1453
+
1454
+ <span class='name'>table_name</span>
1455
+
1456
+
1457
+ <span class='type'>(<tt>String</tt>)</span>
1458
+
1459
+
1460
+
1461
+ &mdash;
1462
+ <div class='inline'><p>the name of the table</p>
1463
+ </div>
1464
+
1465
+ </li>
1466
+
1467
+ <li>
1468
+
1469
+ <span class='name'>scan_hash</span>
1470
+
1471
+
1472
+ <span class='type'>(<tt>Hash</tt>)</span>
1473
+
1474
+
1475
+
1476
+ &mdash;
1477
+ <div class='inline'><p>a hash of attributes: matching records will be returned by the scan</p>
1478
+ </div>
1479
+
1480
+ </li>
1481
+
1482
+ </ul>
1483
+
1484
+ <h3>Returns:</h3>
1485
+ <ul class="return">
1486
+
1487
+ <li>
1488
+
1489
+
1490
+ <span class='type'>(<tt>Array</tt>)</span>
1491
+
1492
+
1493
+
1494
+ &mdash;
1495
+ <div class='inline'><p>an array of all matching items</p>
1496
+ </div>
1497
+
1498
+ </li>
1499
+
1500
+ </ul>
1501
+ <h3>Since:</h3>
1502
+ <ul class="since">
1503
+
1504
+ <li>
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+ <div class='inline'><p>0.2.0</p>
1511
+ </div>
1512
+
1513
+ </li>
1514
+
1515
+ </ul>
1516
+
1517
+ </div><table class="source_code">
1518
+ <tr>
1519
+ <td>
1520
+ <pre class="lines">
1521
+
1522
+
1523
+ 187
1524
+ 188
1525
+ 189
1526
+ 190
1527
+ 191
1528
+ 192
1529
+ 193
1530
+ 194
1531
+ 195</pre>
1532
+ </td>
1533
+ <td>
1534
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/aws_sdk.rb', line 187</span>
1535
+
1536
+ <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='rparen'>)</span>
1537
+ <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>
1538
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_load_schema'>load_schema</span>
1539
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1540
+ <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='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_data'>data</span><span class='op'>|</span>
1541
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>&lt;&lt;</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>
1542
+ <span class='kw'>end</span>
1543
+ <span class='id identifier rubyid_results'>results</span>
1544
+ <span class='kw'>end</span></pre>
1545
+ </td>
1546
+ </tr>
1547
+ </table>
1548
+ </div>
1549
+
1550
+ </div>
1551
+
1552
+ </div>
1553
+
1554
+ <div id="footer">
1555
+ Generated on Tue Mar 27 17:53:07 2012 by
1556
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1557
+ 0.7.5 (ruby-1.9.3).
1558
+ </div>
1559
+
1560
+ </body>
1561
+ </html>