dynamoid 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. data/.travis.yml +4 -0
  2. data/Gemfile +3 -2
  3. data/Gemfile.lock +40 -45
  4. data/README.markdown +55 -25
  5. data/Rakefile +31 -0
  6. data/VERSION +1 -1
  7. data/doc/Dynamoid.html +58 -42
  8. data/doc/Dynamoid/Adapter.html +666 -179
  9. data/doc/Dynamoid/Adapter/AwsSdk.html +752 -236
  10. data/doc/Dynamoid/Associations.html +28 -21
  11. data/doc/Dynamoid/Associations/Association.html +102 -49
  12. data/doc/Dynamoid/Associations/BelongsTo.html +28 -25
  13. data/doc/Dynamoid/Associations/ClassMethods.html +95 -52
  14. data/doc/Dynamoid/Associations/HasAndBelongsToMany.html +28 -25
  15. data/doc/Dynamoid/Associations/HasMany.html +28 -25
  16. data/doc/Dynamoid/Associations/HasOne.html +28 -25
  17. data/doc/Dynamoid/Associations/ManyAssociation.html +138 -94
  18. data/doc/Dynamoid/Associations/SingleAssociation.html +67 -38
  19. data/doc/Dynamoid/Components.html +60 -22
  20. data/doc/Dynamoid/Config.html +61 -44
  21. data/doc/Dynamoid/Config/Options.html +90 -61
  22. data/doc/Dynamoid/Criteria.html +28 -21
  23. data/doc/Dynamoid/Criteria/Chain.html +508 -100
  24. data/doc/Dynamoid/Criteria/ClassMethods.html +26 -19
  25. data/doc/Dynamoid/Dirty.html +424 -0
  26. data/doc/Dynamoid/Dirty/ClassMethods.html +174 -0
  27. data/doc/Dynamoid/Document.html +451 -84
  28. data/doc/Dynamoid/Document/ClassMethods.html +281 -102
  29. data/doc/Dynamoid/Errors.html +29 -22
  30. data/doc/Dynamoid/Errors/ConditionalCheckFailedException.html +141 -0
  31. data/doc/Dynamoid/Errors/DocumentNotValid.html +36 -25
  32. data/doc/Dynamoid/Errors/Error.html +27 -20
  33. data/doc/Dynamoid/Errors/InvalidField.html +27 -19
  34. data/doc/Dynamoid/Errors/InvalidQuery.html +131 -0
  35. data/doc/Dynamoid/Errors/MissingRangeKey.html +27 -19
  36. data/doc/Dynamoid/Fields.html +94 -77
  37. data/doc/Dynamoid/Fields/ClassMethods.html +166 -37
  38. data/doc/Dynamoid/Finders.html +28 -21
  39. data/doc/Dynamoid/Finders/ClassMethods.html +505 -78
  40. data/doc/Dynamoid/IdentityMap.html +492 -0
  41. data/doc/Dynamoid/IdentityMap/ClassMethods.html +534 -0
  42. data/doc/Dynamoid/Indexes.html +41 -28
  43. data/doc/Dynamoid/Indexes/ClassMethods.html +45 -29
  44. data/doc/Dynamoid/Indexes/Index.html +100 -62
  45. data/doc/Dynamoid/Middleware.html +115 -0
  46. data/doc/Dynamoid/Middleware/IdentityMap.html +264 -0
  47. data/doc/Dynamoid/Persistence.html +326 -85
  48. data/doc/Dynamoid/Persistence/ClassMethods.html +275 -109
  49. data/doc/Dynamoid/Validations.html +47 -31
  50. data/doc/_index.html +116 -71
  51. data/doc/class_list.html +13 -7
  52. data/doc/css/full_list.css +4 -2
  53. data/doc/css/style.css +60 -44
  54. data/doc/file.LICENSE.html +26 -19
  55. data/doc/file.README.html +152 -48
  56. data/doc/file_list.html +14 -8
  57. data/doc/frames.html +20 -5
  58. data/doc/index.html +152 -48
  59. data/doc/js/app.js +52 -43
  60. data/doc/js/full_list.js +14 -9
  61. data/doc/js/jquery.js +4 -16
  62. data/doc/method_list.html +446 -540
  63. data/doc/top-level-namespace.html +27 -20
  64. data/{Dynamoid.gemspec → dynamoid.gemspec} +21 -8
  65. data/lib/dynamoid/adapter.rb +11 -10
  66. data/lib/dynamoid/adapter/aws_sdk.rb +40 -19
  67. data/lib/dynamoid/components.rb +2 -1
  68. data/lib/dynamoid/criteria/chain.rb +29 -11
  69. data/lib/dynamoid/dirty.rb +6 -0
  70. data/lib/dynamoid/document.rb +34 -19
  71. data/lib/dynamoid/fields.rb +36 -30
  72. data/lib/dynamoid/finders.rb +7 -5
  73. data/lib/dynamoid/persistence.rb +37 -10
  74. data/spec/app/models/address.rb +2 -0
  75. data/spec/app/models/camel_case.rb +10 -0
  76. data/spec/app/models/car.rb +6 -0
  77. data/spec/app/models/nuclear_submarine.rb +5 -0
  78. data/spec/app/models/subscription.rb +2 -2
  79. data/spec/app/models/vehicle.rb +7 -0
  80. data/spec/dynamoid/adapter/aws_sdk_spec.rb +20 -11
  81. data/spec/dynamoid/adapter_spec.rb +67 -82
  82. data/spec/dynamoid/associations/association_spec.rb +30 -30
  83. data/spec/dynamoid/criteria/chain_spec.rb +56 -9
  84. data/spec/dynamoid/criteria_spec.rb +3 -0
  85. data/spec/dynamoid/dirty_spec.rb +8 -0
  86. data/spec/dynamoid/document_spec.rb +109 -47
  87. data/spec/dynamoid/fields_spec.rb +32 -3
  88. data/spec/dynamoid/finders_spec.rb +12 -0
  89. data/spec/dynamoid/persistence_spec.rb +73 -8
  90. data/spec/spec_helper.rb +1 -0
  91. data/spec/support/with_partitioning.rb +15 -0
  92. metadata +22 -9
@@ -6,19 +6,21 @@
6
6
  <title>
7
7
  Module: Dynamoid::Persistence::ClassMethods
8
8
 
9
- &mdash; Documentation by YARD 0.7.5
9
+ &mdash; Documentation by YARD 0.8.6.1
10
10
 
11
11
  </title>
12
12
 
13
- <link rel="stylesheet" href="../../css/style.css" type="text/css" media="screen" charset="utf-8" />
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
14
 
15
- <link rel="stylesheet" href="../../css/common.css" type="text/css" media="screen" charset="utf-8" />
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" charset="utf-8" />
16
16
 
17
17
  <script type="text/javascript" charset="utf-8">
18
- relpath = '../..';
19
- if (relpath != '') relpath += '/';
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../../';
20
+ framesUrl = "../../frames.html#!" + escape(window.location.href);
20
21
  </script>
21
22
 
23
+
22
24
  <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
23
25
 
24
26
  <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
@@ -26,36 +28,41 @@
26
28
 
27
29
  </head>
28
30
  <body>
29
- <script type="text/javascript" charset="utf-8">
30
- if (window.top.frames.main) document.body.className = 'frames';
31
- </script>
32
-
33
31
  <div id="header">
34
32
  <div id="menu">
35
33
 
36
- <a href="../../_index.html">Index (C)</a> &raquo;
34
+ <a href="../../_index.html">Index (C)</a> &raquo;
37
35
  <span class='title'><span class='object_link'><a href="../../Dynamoid.html" title="Dynamoid (module)">Dynamoid</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Persistence.html" title="Dynamoid::Persistence (module)">Persistence</a></span></span>
38
36
  &raquo;
39
37
  <span class="title">ClassMethods</span>
40
38
 
41
-
39
+
42
40
  <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
41
  </div>
44
42
 
45
43
  <div id="search">
46
44
 
47
- <a id="class_list_link" href="#">Class List</a>
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../../class_list.html">
47
+ Class List
48
+ </a>
48
49
 
49
- <a id="method_list_link" href="#">Method List</a>
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../../method_list.html">
52
+ Method List
53
+ </a>
50
54
 
51
- <a id="file_list_link" href="#">File List</a>
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../../file_list.html">
57
+ File List
58
+ </a>
52
59
 
53
60
  </div>
54
61
  <div class="clear"></div>
55
62
  </div>
56
-
63
+
57
64
  <iframe id="search_frame"></iframe>
58
-
65
+
59
66
  <div id="content"><h1>Module: Dynamoid::Persistence::ClassMethods
60
67
 
61
68
 
@@ -106,11 +113,56 @@
106
113
 
107
114
 
108
115
 
116
+
109
117
 
110
118
 
111
119
  <span class="summary_desc"><div class='inline'><p>Creates a table.</p>
112
120
  </div></span>
113
121
 
122
+ </li>
123
+
124
+
125
+ <li class="public ">
126
+ <span class="summary_signature">
127
+
128
+ <a href="#dynamo_type-instance_method" title="#dynamo_type (instance method)">- (Object) <strong>dynamo_type</strong>(type) </a>
129
+
130
+
131
+
132
+ </span>
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+ <span class="summary_desc"><div class='inline'></div></span>
143
+
144
+ </li>
145
+
146
+
147
+ <li class="public ">
148
+ <span class="summary_signature">
149
+
150
+ <a href="#from_database-instance_method" title="#from_database (instance method)">- (Object) <strong>from_database</strong>(attrs = {}) </a>
151
+
152
+
153
+
154
+ </span>
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <span class="summary_desc"><div class='inline'></div></span>
165
+
114
166
  </li>
115
167
 
116
168
 
@@ -128,6 +180,7 @@
128
180
 
129
181
 
130
182
 
183
+
131
184
 
132
185
 
133
186
  <span class="summary_desc"><div class='inline'><p>Does a table with this name exist?.</p>
@@ -150,10 +203,10 @@
150
203
 
151
204
 
152
205
 
206
+
153
207
 
154
208
 
155
- <span class="summary_desc"><div class='inline'><p>Returns the name of the table the class is for.</p>
156
- </div></span>
209
+ <span class="summary_desc"><div class='inline'></div></span>
157
210
 
158
211
  </li>
159
212
 
@@ -172,6 +225,7 @@
172
225
 
173
226
 
174
227
 
228
+
175
229
 
176
230
 
177
231
  <span class="summary_desc"><div class='inline'><p>Undump an object into a hash, converting each type from a string representation of itself into the type specified by the field.</p>
@@ -183,7 +237,7 @@
183
237
  <li class="public ">
184
238
  <span class="summary_signature">
185
239
 
186
- <a href="#undump_field-instance_method" title="#undump_field (instance method)">- (Object) <strong>undump_field</strong>(value, type) </a>
240
+ <a href="#undump_field-instance_method" title="#undump_field (instance method)">- (Object) <strong>undump_field</strong>(value, options) </a>
187
241
 
188
242
 
189
243
 
@@ -194,6 +248,7 @@
194
248
 
195
249
 
196
250
 
251
+
197
252
 
198
253
 
199
254
  <span class="summary_desc"><div class='inline'><p>Undump a value for a given type.</p>
@@ -209,16 +264,18 @@
209
264
 
210
265
  <div id="instance_method_details" class="method_details_list">
211
266
  <h2>Instance Method Details</h2>
212
-
267
+
213
268
 
214
269
  <div class="method_details first">
215
- <p class="signature first" id="create_table-instance_method">
270
+ <h3 class="signature first" id="create_table-instance_method">
216
271
 
217
272
  - (<tt>Object</tt>) <strong>create_table</strong>(options = {})
218
273
 
219
274
 
220
275
 
221
- </p><div class="docstring">
276
+
277
+
278
+ </h3><div class="docstring">
222
279
  <div class="discussion">
223
280
  <p>Creates a table.</p>
224
281
 
@@ -226,7 +283,7 @@
226
283
  </div>
227
284
  </div>
228
285
  <div class="tags">
229
- <h3>Parameters:</h3>
286
+ <p class="tag_title">Parameters:</p>
230
287
  <ul class="param">
231
288
 
232
289
  <li>
@@ -251,7 +308,7 @@
251
308
 
252
309
 
253
310
 
254
- <h3>Options Hash (<tt>options</tt>):</h3>
311
+ <p class="tag_title">Options Hash (<tt>options</tt>):</p>
255
312
  <ul class="option">
256
313
 
257
314
  <li>
@@ -260,8 +317,10 @@
260
317
  <span class="default">
261
318
 
262
319
  </span>
263
- &mdash; <div class='inline'><p>the id field for the table</p>
320
+
321
+ &mdash; <div class='inline'><p>the id field for the table</p>
264
322
  </div>
323
+
265
324
  </li>
266
325
 
267
326
  <li>
@@ -270,8 +329,10 @@
270
329
  <span class="default">
271
330
 
272
331
  </span>
273
- &mdash; <div class='inline'><p>the actual name for the table</p>
332
+
333
+ &mdash; <div class='inline'><p>the actual name for the table</p>
274
334
  </div>
335
+
275
336
  </li>
276
337
 
277
338
  <li>
@@ -280,8 +341,10 @@
280
341
  <span class="default">
281
342
 
282
343
  </span>
283
- &mdash; <div class='inline'><p>set the read capacity for the table; does not work on existing tables</p>
344
+
345
+ &mdash; <div class='inline'><p>set the read capacity for the table; does not work on existing tables</p>
284
346
  </div>
347
+
285
348
  </li>
286
349
 
287
350
  <li>
@@ -290,8 +353,10 @@
290
353
  <span class="default">
291
354
 
292
355
  </span>
293
- &mdash; <div class='inline'><p>set the write capacity for the table; does not work on existing tables</p>
356
+
357
+ &mdash; <div class='inline'><p>set the write capacity for the table; does not work on existing tables</p>
294
358
  </div>
359
+
295
360
  </li>
296
361
 
297
362
  <li>
@@ -300,14 +365,16 @@
300
365
  <span class="default">
301
366
 
302
367
  </span>
303
- &mdash; <div class='inline'><p>=&gt; :type} a hash of the name of the range key and a symbol of its type</p>
368
+
369
+ &mdash; <div class='inline'><p>=&gt; :type} a hash of the name of the range key and a symbol of its type</p>
304
370
  </div>
371
+
305
372
  </li>
306
373
 
307
374
  </ul>
308
375
 
309
376
 
310
- <h3>Since:</h3>
377
+ <p class="tag_title">Since:</p>
311
378
  <ul class="since">
312
379
 
313
380
  <li>
@@ -329,6 +396,9 @@
329
396
  <pre class="lines">
330
397
 
331
398
 
399
+ 30
400
+ 31
401
+ 32
332
402
  33
333
403
  34
334
404
  35
@@ -341,22 +411,29 @@
341
411
  42
342
412
  43
343
413
  44
344
- 45</pre>
414
+ 45
415
+ 46
416
+ 47</pre>
345
417
  </td>
346
418
  <td>
347
- <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 33</span>
419
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 30</span>
348
420
 
349
421
  <span class='kw'>def</span> <span class='id identifier rubyid_create_table'>create_table</span><span class='lparen'>(</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>
422
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_range_key'>range_key</span>
423
+ <span class='id identifier rubyid_range_key_hash'>range_key_hash</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_dynamo_type'>dynamo_type</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
424
+ <span class='kw'>else</span>
425
+ <span class='id identifier rubyid_range_key_hash'>range_key_hash</span> <span class='op'>=</span> <span class='kw'>nil</span>
426
+ <span class='kw'>end</span>
350
427
  <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span>
351
428
  <span class='symbol'>:id</span> <span class='op'>=&gt;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='comma'>,</span>
352
429
  <span class='symbol'>:table_name</span> <span class='op'>=&gt;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span>
353
430
  <span class='symbol'>:write_capacity</span> <span class='op'>=&gt;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_write_capacity'>write_capacity</span><span class='comma'>,</span>
354
431
  <span class='symbol'>:read_capacity</span> <span class='op'>=&gt;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_read_capacity'>read_capacity</span><span class='comma'>,</span>
355
- <span class='symbol'>:range_key</span> <span class='op'>=&gt;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>?</span> <span class='lbrace'>{</span><span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='rbrace'>}</span> <span class='op'>:</span> <span class='kw'>nil</span>
432
+ <span class='symbol'>:range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_range_key_hash'>range_key_hash</span>
356
433
  <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
357
-
434
+
358
435
  <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_table_exists?'>table_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:table_name</span><span class='rbracket'>]</span><span class='rparen'>)</span>
359
-
436
+
360
437
  <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:table_name</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_create_table'>create_table</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:table_name</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
361
438
  <span class='kw'>end</span></pre>
362
439
  </td>
@@ -365,13 +442,91 @@
365
442
  </div>
366
443
 
367
444
  <div class="method_details ">
368
- <p class="signature " id="table_exists?-instance_method">
445
+ <h3 class="signature " id="dynamo_type-instance_method">
446
+
447
+ - (<tt>Object</tt>) <strong>dynamo_type</strong>(type)
448
+
449
+
450
+
451
+
452
+
453
+ </h3><table class="source_code">
454
+ <tr>
455
+ <td>
456
+ <pre class="lines">
457
+
458
+
459
+ 124
460
+ 125
461
+ 126
462
+ 127
463
+ 128
464
+ 129
465
+ 130
466
+ 131
467
+ 132
468
+ 133</pre>
469
+ </td>
470
+ <td>
471
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 124</span>
472
+
473
+ <span class='kw'>def</span> <span class='id identifier rubyid_dynamo_type'>dynamo_type</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
474
+ <span class='kw'>case</span> <span class='id identifier rubyid_type'>type</span>
475
+ <span class='kw'>when</span> <span class='symbol'>:integer</span><span class='comma'>,</span> <span class='symbol'>:float</span><span class='comma'>,</span> <span class='symbol'>:datetime</span>
476
+ <span class='symbol'>:number</span>
477
+ <span class='kw'>when</span> <span class='symbol'>:string</span><span class='comma'>,</span> <span class='symbol'>:serialized</span>
478
+ <span class='symbol'>:string</span>
479
+ <span class='kw'>else</span>
480
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>unknown type</span><span class='tstring_end'>'</span></span>
481
+ <span class='kw'>end</span>
482
+ <span class='kw'>end</span></pre>
483
+ </td>
484
+ </tr>
485
+ </table>
486
+ </div>
487
+
488
+ <div class="method_details ">
489
+ <h3 class="signature " id="from_database-instance_method">
490
+
491
+ - (<tt>Object</tt>) <strong>from_database</strong>(attrs = {})
492
+
493
+
494
+
495
+
496
+
497
+ </h3><table class="source_code">
498
+ <tr>
499
+ <td>
500
+ <pre class="lines">
501
+
502
+
503
+ 56
504
+ 57
505
+ 58
506
+ 59</pre>
507
+ </td>
508
+ <td>
509
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 56</span>
510
+
511
+ <span class='kw'>def</span> <span class='id identifier rubyid_from_database'>from_database</span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
512
+ <span class='id identifier rubyid_clazz'>clazz</span> <span class='op'>=</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='id identifier rubyid_obj'>obj</span> <span class='op'>=</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_constantize'>constantize</span> <span class='op'>:</span> <span class='kw'>self</span>
513
+ <span class='id identifier rubyid_clazz'>clazz</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_r'>r</span><span class='op'>|</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_new_record'>new_record</span> <span class='op'>=</span> <span class='kw'>false</span> <span class='rbrace'>}</span>
514
+ <span class='kw'>end</span></pre>
515
+ </td>
516
+ </tr>
517
+ </table>
518
+ </div>
519
+
520
+ <div class="method_details ">
521
+ <h3 class="signature " id="table_exists?-instance_method">
369
522
 
370
523
  - (<tt>Boolean</tt>) <strong>table_exists?</strong>(table_name)
371
524
 
372
525
 
373
526
 
374
- </p><div class="docstring">
527
+
528
+
529
+ </h3><div class="docstring">
375
530
  <div class="discussion">
376
531
  <p>Does a table with this name exist?</p>
377
532
 
@@ -380,7 +535,7 @@
380
535
  </div>
381
536
  <div class="tags">
382
537
 
383
- <h3>Returns:</h3>
538
+ <p class="tag_title">Returns:</p>
384
539
  <ul class="return">
385
540
 
386
541
  <li>
@@ -393,7 +548,7 @@
393
548
  </li>
394
549
 
395
550
  </ul>
396
- <h3>Since:</h3>
551
+ <p class="tag_title">Since:</p>
397
552
  <ul class="since">
398
553
 
399
554
  <li>
@@ -415,15 +570,15 @@
415
570
  <pre class="lines">
416
571
 
417
572
 
418
- 50
419
- 51
420
- 52</pre>
573
+ 52
574
+ 53
575
+ 54</pre>
421
576
  </td>
422
577
  <td>
423
- <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 50</span>
578
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 52</span>
424
579
 
425
580
  <span class='kw'>def</span> <span class='id identifier rubyid_table_exists?'>table_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
426
- <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
581
+ <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span> <span class='op'>?</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_tables'>tables</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>false</span>
427
582
  <span class='kw'>end</span></pre>
428
583
  </td>
429
584
  </tr>
@@ -431,52 +586,29 @@
431
586
  </div>
432
587
 
433
588
  <div class="method_details ">
434
- <p class="signature " id="table_name-instance_method">
589
+ <h3 class="signature " id="table_name-instance_method">
435
590
 
436
591
  - (<tt>Object</tt>) <strong>table_name</strong>
437
592
 
438
593
 
439
594
 
440
- </p><div class="docstring">
441
- <div class="discussion">
442
- <p>Returns the name of the table the class is for.</p>
443
-
444
595
 
445
- </div>
446
- </div>
447
- <div class="tags">
448
-
449
- <h3>Since:</h3>
450
- <ul class="since">
451
-
452
- <li>
453
-
454
-
455
-
456
-
457
-
458
- <div class='inline'><p>0.2.0</p>
459
- </div>
460
-
461
- </li>
462
596
 
463
- </ul>
464
-
465
- </div><table class="source_code">
597
+ </h3><table class="source_code">
466
598
  <tr>
467
599
  <td>
468
600
  <pre class="lines">
469
601
 
470
602
 
471
- 19
472
- 20
473
- 21</pre>
603
+ 16
604
+ 17
605
+ 18</pre>
474
606
  </td>
475
607
  <td>
476
- <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 19</span>
608
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 16</span>
477
609
 
478
610
  <span class='kw'>def</span> <span class='id identifier rubyid_table_name'>table_name</span>
479
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_namespace'>namespace</span><span class='rbrace'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='period'>.</span><span class='id identifier rubyid_pluralize'>pluralize</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
611
+ <span class='ivar'>@table_name</span> <span class='op'>||=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_namespace'>namespace</span><span class='rbrace'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_base_class'>base_class</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>::</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='period'>.</span><span class='id identifier rubyid_pluralize'>pluralize</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
480
612
  <span class='kw'>end</span></pre>
481
613
  </td>
482
614
  </tr>
@@ -484,13 +616,15 @@
484
616
  </div>
485
617
 
486
618
  <div class="method_details ">
487
- <p class="signature " id="undump-instance_method">
619
+ <h3 class="signature " id="undump-instance_method">
488
620
 
489
621
  - (<tt>Object</tt>) <strong>undump</strong>(incoming = nil)
490
622
 
491
623
 
492
624
 
493
- </p><div class="docstring">
625
+
626
+
627
+ </h3><div class="docstring">
494
628
  <div class="discussion">
495
629
  <p>Undump an object into a hash, converting each type from a string representation of itself into the type specified by the field.</p>
496
630
 
@@ -499,7 +633,7 @@
499
633
  </div>
500
634
  <div class="tags">
501
635
 
502
- <h3>Since:</h3>
636
+ <p class="tag_title">Since:</p>
503
637
  <ul class="since">
504
638
 
505
639
  <li>
@@ -521,26 +655,26 @@
521
655
  <pre class="lines">
522
656
 
523
657
 
524
- 57
525
- 58
526
- 59
527
- 60
528
- 61
529
- 62
530
- 63
531
658
  64
532
- 65</pre>
659
+ 65
660
+ 66
661
+ 67
662
+ 68
663
+ 69
664
+ 70
665
+ 71
666
+ 72</pre>
533
667
  </td>
534
668
  <td>
535
- <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 57</span>
669
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 64</span>
536
670
 
537
671
  <span class='kw'>def</span> <span class='id identifier rubyid_undump'>undump</span><span class='lparen'>(</span><span class='id identifier rubyid_incoming'>incoming</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
538
672
  <span class='id identifier rubyid_incoming'>incoming</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_incoming'>incoming</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys'>symbolize_keys</span>
539
673
  <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_hash'>hash</span><span class='op'>|</span>
540
674
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</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_attribute'>attribute</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='op'>|</span>
541
- <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_attribute'>attribute</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_undump_field'>undump_field</span><span class='lparen'>(</span><span class='id identifier rubyid_incoming'>incoming</span><span class='lbracket'>[</span><span class='id identifier rubyid_attribute'>attribute</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='rparen'>)</span>
675
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_attribute'>attribute</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_undump_field'>undump_field</span><span class='lparen'>(</span><span class='id identifier rubyid_incoming'>incoming</span><span class='lbracket'>[</span><span class='id identifier rubyid_attribute'>attribute</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
542
676
  <span class='kw'>end</span>
543
- <span class='id identifier rubyid_incoming'>incoming</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_attribute'>attribute</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span> <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_attribute'>attribute</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='id identifier rubyid_value'>value</span> <span class='rbrace'>}</span>
677
+ <span class='id identifier rubyid_incoming'>incoming</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_attribute'>attribute</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span> <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_attribute'>attribute</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>unless</span> <span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span> <span class='id identifier rubyid_attribute'>attribute</span> <span class='rbrace'>}</span>
544
678
  <span class='kw'>end</span>
545
679
  <span class='kw'>end</span></pre>
546
680
  </td>
@@ -549,15 +683,17 @@
549
683
  </div>
550
684
 
551
685
  <div class="method_details ">
552
- <p class="signature " id="undump_field-instance_method">
686
+ <h3 class="signature " id="undump_field-instance_method">
553
687
 
554
- - (<tt>Object</tt>) <strong>undump_field</strong>(value, type)
688
+ - (<tt>Object</tt>) <strong>undump_field</strong>(value, options)
555
689
 
556
690
 
557
691
 
558
- </p><div class="docstring">
692
+
693
+
694
+ </h3><div class="docstring">
559
695
  <div class="discussion">
560
- <p>Undump a value for a given type. Given a string, it'll determine (based on the type provided) whether to turn it into a
696
+ <p>Undump a value for a given type. Given a string, it'll determine (based on the type provided) whether to turn it into a
561
697
  string, integer, float, set, array, datetime, or serialized return value.</p>
562
698
 
563
699
 
@@ -565,7 +701,7 @@ string, integer, float, set, array, datetime, or serialized return value.</p>
565
701
  </div>
566
702
  <div class="tags">
567
703
 
568
- <h3>Since:</h3>
704
+ <p class="tag_title">Since:</p>
569
705
  <ul class="since">
570
706
 
571
707
  <li>
@@ -587,13 +723,6 @@ string, integer, float, set, array, datetime, or serialized return value.</p>
587
723
  <pre class="lines">
588
724
 
589
725
 
590
- 71
591
- 72
592
- 73
593
- 74
594
- 75
595
- 76
596
- 77
597
726
  78
598
727
  79
599
728
  80
@@ -616,15 +745,41 @@ string, integer, float, set, array, datetime, or serialized return value.</p>
616
745
  97
617
746
  98
618
747
  99
619
- 100</pre>
748
+ 100
749
+ 101
750
+ 102
751
+ 103
752
+ 104
753
+ 105
754
+ 106
755
+ 107
756
+ 108
757
+ 109
758
+ 110
759
+ 111
760
+ 112
761
+ 113
762
+ 114
763
+ 115
764
+ 116
765
+ 117
766
+ 118
767
+ 119
768
+ 120
769
+ 121
770
+ 122</pre>
620
771
  </td>
621
772
  <td>
622
- <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 71</span>
773
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/persistence.rb', line 78</span>
623
774
 
624
- <span class='kw'>def</span> <span class='id identifier rubyid_undump_field'>undump_field</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
625
- <span class='kw'>return</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</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_value'>value</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_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span>
775
+ <span class='kw'>def</span> <span class='id identifier rubyid_undump_field'>undump_field</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
776
+ <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='lparen'>(</span><span class='id identifier rubyid_default_value'>default_value</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:default</span><span class='rbracket'>]</span><span class='rparen'>)</span>
777
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_default_value'>default_value</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:call</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_default_value'>default_value</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span> <span class='op'>:</span> <span class='id identifier rubyid_default_value'>default_value</span>
778
+ <span class='kw'>else</span>
779
+ <span class='kw'>return</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</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_value'>value</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_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span>
780
+ <span class='kw'>end</span>
626
781
 
627
- <span class='kw'>case</span> <span class='id identifier rubyid_type'>type</span>
782
+ <span class='kw'>case</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span>
628
783
  <span class='kw'>when</span> <span class='symbol'>:string</span>
629
784
  <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
630
785
  <span class='kw'>when</span> <span class='symbol'>:integer</span>
@@ -645,10 +800,21 @@ string, integer, float, set, array, datetime, or serialized return value.</p>
645
800
  <span class='kw'>end</span>
646
801
  <span class='kw'>when</span> <span class='symbol'>:serialized</span>
647
802
  <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span>
648
- <span class='const'>YAML</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
803
+ <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:serializer</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:serializer</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>YAML</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
649
804
  <span class='kw'>else</span>
650
805
  <span class='id identifier rubyid_value'>value</span>
651
806
  <span class='kw'>end</span>
807
+ <span class='kw'>when</span> <span class='symbol'>:boolean</span>
808
+ <span class='comment'># persisted as 't', but because undump is called during initialize it can come in as true
809
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>t</span><span class='tstring_end'>'</span></span> <span class='op'>||</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>==</span> <span class='kw'>true</span>
810
+ <span class='kw'>true</span>
811
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>f</span><span class='tstring_end'>'</span></span> <span class='op'>||</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>==</span> <span class='kw'>false</span>
812
+ <span class='kw'>false</span>
813
+ <span class='kw'>else</span>
814
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Boolean column neither true nor false</span><span class='tstring_end'>&quot;</span></span>
815
+ <span class='kw'>end</span>
816
+ <span class='kw'>else</span>
817
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unknown type </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
652
818
  <span class='kw'>end</span>
653
819
  <span class='kw'>end</span></pre>
654
820
  </td>
@@ -659,11 +825,11 @@ string, integer, float, set, array, datetime, or serialized return value.</p>
659
825
  </div>
660
826
 
661
827
  </div>
662
-
828
+
663
829
  <div id="footer">
664
- Generated on Thu Apr 26 01:26:25 2012 by
830
+ Generated on Thu Jun 27 21:59:13 2013 by
665
831
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
666
- 0.7.5 (ruby-1.9.3).
832
+ 0.8.6.1 (ruby-1.9.3).
667
833
  </div>
668
834
 
669
835
  </body>