dynamoid 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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>