dynamoid 0.7.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +2 -24
  3. data/README.markdown +89 -73
  4. data/Rakefile +10 -36
  5. data/dynamoid.gemspec +56 -191
  6. data/lib/dynamoid.rb +6 -4
  7. data/lib/dynamoid/adapter.rb +64 -150
  8. data/lib/dynamoid/adapter_plugin/aws_sdk_v2.rb +579 -0
  9. data/lib/dynamoid/components.rb +0 -1
  10. data/lib/dynamoid/config.rb +2 -5
  11. data/lib/dynamoid/criteria.rb +1 -1
  12. data/lib/dynamoid/criteria/chain.rb +27 -140
  13. data/lib/dynamoid/document.rb +2 -2
  14. data/lib/dynamoid/errors.rb +30 -9
  15. data/lib/dynamoid/fields.rb +15 -3
  16. data/lib/dynamoid/finders.rb +7 -6
  17. data/lib/dynamoid/identity_map.rb +1 -5
  18. data/lib/dynamoid/persistence.rb +108 -93
  19. metadata +56 -229
  20. data/.document +0 -5
  21. data/.rspec +0 -1
  22. data/.travis.yml +0 -7
  23. data/Gemfile.lock +0 -81
  24. data/Gemfile_activemodel4 +0 -24
  25. data/Gemfile_activemodel4.lock +0 -88
  26. data/VERSION +0 -1
  27. data/doc/.nojekyll +0 -0
  28. data/doc/Dynamoid.html +0 -328
  29. data/doc/Dynamoid/Adapter.html +0 -1872
  30. data/doc/Dynamoid/Adapter/AwsSdk.html +0 -2101
  31. data/doc/Dynamoid/Adapter/Local.html +0 -1574
  32. data/doc/Dynamoid/Associations.html +0 -138
  33. data/doc/Dynamoid/Associations/Association.html +0 -847
  34. data/doc/Dynamoid/Associations/BelongsTo.html +0 -161
  35. data/doc/Dynamoid/Associations/ClassMethods.html +0 -766
  36. data/doc/Dynamoid/Associations/HasAndBelongsToMany.html +0 -167
  37. data/doc/Dynamoid/Associations/HasMany.html +0 -167
  38. data/doc/Dynamoid/Associations/HasOne.html +0 -161
  39. data/doc/Dynamoid/Associations/ManyAssociation.html +0 -1684
  40. data/doc/Dynamoid/Associations/SingleAssociation.html +0 -627
  41. data/doc/Dynamoid/Components.html +0 -242
  42. data/doc/Dynamoid/Config.html +0 -412
  43. data/doc/Dynamoid/Config/Options.html +0 -638
  44. data/doc/Dynamoid/Criteria.html +0 -138
  45. data/doc/Dynamoid/Criteria/Chain.html +0 -1471
  46. data/doc/Dynamoid/Criteria/ClassMethods.html +0 -105
  47. data/doc/Dynamoid/Dirty.html +0 -424
  48. data/doc/Dynamoid/Dirty/ClassMethods.html +0 -174
  49. data/doc/Dynamoid/Document.html +0 -1033
  50. data/doc/Dynamoid/Document/ClassMethods.html +0 -1116
  51. data/doc/Dynamoid/Errors.html +0 -125
  52. data/doc/Dynamoid/Errors/ConditionalCheckFailedException.html +0 -141
  53. data/doc/Dynamoid/Errors/DocumentNotValid.html +0 -221
  54. data/doc/Dynamoid/Errors/Error.html +0 -137
  55. data/doc/Dynamoid/Errors/InvalidField.html +0 -141
  56. data/doc/Dynamoid/Errors/InvalidQuery.html +0 -131
  57. data/doc/Dynamoid/Errors/MissingRangeKey.html +0 -141
  58. data/doc/Dynamoid/Fields.html +0 -686
  59. data/doc/Dynamoid/Fields/ClassMethods.html +0 -438
  60. data/doc/Dynamoid/Finders.html +0 -135
  61. data/doc/Dynamoid/Finders/ClassMethods.html +0 -943
  62. data/doc/Dynamoid/IdentityMap.html +0 -492
  63. data/doc/Dynamoid/IdentityMap/ClassMethods.html +0 -534
  64. data/doc/Dynamoid/Indexes.html +0 -321
  65. data/doc/Dynamoid/Indexes/ClassMethods.html +0 -369
  66. data/doc/Dynamoid/Indexes/Index.html +0 -1142
  67. data/doc/Dynamoid/Middleware.html +0 -115
  68. data/doc/Dynamoid/Middleware/IdentityMap.html +0 -264
  69. data/doc/Dynamoid/Persistence.html +0 -892
  70. data/doc/Dynamoid/Persistence/ClassMethods.html +0 -836
  71. data/doc/Dynamoid/Validations.html +0 -415
  72. data/doc/_index.html +0 -506
  73. data/doc/class_list.html +0 -53
  74. data/doc/css/common.css +0 -1
  75. data/doc/css/full_list.css +0 -57
  76. data/doc/css/style.css +0 -338
  77. data/doc/file.LICENSE.html +0 -73
  78. data/doc/file.README.html +0 -416
  79. data/doc/file_list.html +0 -58
  80. data/doc/frames.html +0 -28
  81. data/doc/index.html +0 -416
  82. data/doc/js/app.js +0 -214
  83. data/doc/js/full_list.js +0 -178
  84. data/doc/js/jquery.js +0 -4
  85. data/doc/method_list.html +0 -1144
  86. data/doc/top-level-namespace.html +0 -112
  87. data/lib/dynamoid/adapter/aws_sdk.rb +0 -287
  88. data/lib/dynamoid/indexes.rb +0 -69
  89. data/lib/dynamoid/indexes/index.rb +0 -103
  90. data/spec/app/models/address.rb +0 -13
  91. data/spec/app/models/camel_case.rb +0 -34
  92. data/spec/app/models/car.rb +0 -6
  93. data/spec/app/models/magazine.rb +0 -11
  94. data/spec/app/models/message.rb +0 -9
  95. data/spec/app/models/nuclear_submarine.rb +0 -5
  96. data/spec/app/models/sponsor.rb +0 -8
  97. data/spec/app/models/subscription.rb +0 -12
  98. data/spec/app/models/tweet.rb +0 -12
  99. data/spec/app/models/user.rb +0 -26
  100. data/spec/app/models/vehicle.rb +0 -7
  101. data/spec/dynamoid/adapter/aws_sdk_spec.rb +0 -376
  102. data/spec/dynamoid/adapter_spec.rb +0 -155
  103. data/spec/dynamoid/associations/association_spec.rb +0 -194
  104. data/spec/dynamoid/associations/belongs_to_spec.rb +0 -71
  105. data/spec/dynamoid/associations/has_and_belongs_to_many_spec.rb +0 -47
  106. data/spec/dynamoid/associations/has_many_spec.rb +0 -42
  107. data/spec/dynamoid/associations/has_one_spec.rb +0 -45
  108. data/spec/dynamoid/associations_spec.rb +0 -16
  109. data/spec/dynamoid/config_spec.rb +0 -27
  110. data/spec/dynamoid/criteria/chain_spec.rb +0 -210
  111. data/spec/dynamoid/criteria_spec.rb +0 -75
  112. data/spec/dynamoid/dirty_spec.rb +0 -57
  113. data/spec/dynamoid/document_spec.rb +0 -180
  114. data/spec/dynamoid/fields_spec.rb +0 -156
  115. data/spec/dynamoid/finders_spec.rb +0 -147
  116. data/spec/dynamoid/identity_map_spec.rb +0 -45
  117. data/spec/dynamoid/indexes/index_spec.rb +0 -104
  118. data/spec/dynamoid/indexes_spec.rb +0 -25
  119. data/spec/dynamoid/persistence_spec.rb +0 -301
  120. data/spec/dynamoid/validations_spec.rb +0 -36
  121. data/spec/dynamoid_spec.rb +0 -9
  122. data/spec/spec_helper.rb +0 -55
  123. data/spec/support/with_partitioning.rb +0 -15
@@ -1,943 +0,0 @@
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::Finders::ClassMethods
8
-
9
- &mdash; Documentation by YARD 0.8.6.1
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="../../css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- hasFrames = window.top.frames.main ? true : false;
19
- relpath = '../../';
20
- framesUrl = "../../frames.html#!" + escape(window.location.href);
21
- </script>
22
-
23
-
24
- <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
25
-
26
- <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
27
-
28
-
29
- </head>
30
- <body>
31
- <div id="header">
32
- <div id="menu">
33
-
34
- <a href="../../_index.html">Index (C)</a> &raquo;
35
- <span class='title'><span class='object_link'><a href="../../Dynamoid.html" title="Dynamoid (module)">Dynamoid</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Finders.html" title="Dynamoid::Finders (module)">Finders</a></span></span>
36
- &raquo;
37
- <span class="title">ClassMethods</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a class="full_list_link" id="class_list_link"
46
- href="../../class_list.html">
47
- Class List
48
- </a>
49
-
50
- <a class="full_list_link" id="method_list_link"
51
- href="../../method_list.html">
52
- Method List
53
- </a>
54
-
55
- <a class="full_list_link" id="file_list_link"
56
- href="../../file_list.html">
57
- File List
58
- </a>
59
-
60
- </div>
61
- <div class="clear"></div>
62
- </div>
63
-
64
- <iframe id="search_frame"></iframe>
65
-
66
- <div id="content"><h1>Module: Dynamoid::Finders::ClassMethods
67
-
68
-
69
-
70
- </h1>
71
-
72
- <dl class="box">
73
-
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
- <dt class="r1 last">Defined in:</dt>
82
- <dd class="r1 last">lib/dynamoid/finders.rb</dd>
83
-
84
- </dl>
85
- <div class="clear"></div>
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- <h2>
96
- Instance Method Summary
97
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
98
- </h2>
99
-
100
- <ul class="summary">
101
-
102
- <li class="public ">
103
- <span class="summary_signature">
104
-
105
- <a href="#find-instance_method" title="#find (instance method)">- (Dynamoid::Document) <strong>find</strong>(*ids) </a>
106
-
107
-
108
-
109
- </span>
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
- <span class="summary_desc"><div class='inline'><p>Find one or many objects, specified by one id or an array of ids.</p>
120
- </div></span>
121
-
122
- </li>
123
-
124
-
125
- <li class="public ">
126
- <span class="summary_signature">
127
-
128
- <a href="#find_all-instance_method" title="#find_all (instance method)">- (Object) <strong>find_all</strong>(ids, options = {}) </a>
129
-
130
-
131
-
132
- </span>
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
- <span class="summary_desc"><div class='inline'><p>Return objects found by the given array of ids, either hash keys, or hash/range key combinations using BatchGet.</p>
143
- </div></span>
144
-
145
- </li>
146
-
147
-
148
- <li class="public ">
149
- <span class="summary_signature">
150
-
151
- <a href="#find_all_by_composite_key-instance_method" title="#find_all_by_composite_key (instance method)">- (Array) <strong>find_all_by_composite_key</strong>(hash_key, options = {}) </a>
152
-
153
-
154
-
155
- </span>
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
- <span class="summary_desc"><div class='inline'><p>Find all objects by hash and range keys.</p>
166
- </div></span>
167
-
168
- </li>
169
-
170
-
171
- <li class="public ">
172
- <span class="summary_signature">
173
-
174
- <a href="#find_by_composite_key-instance_method" title="#find_by_composite_key (instance method)">- (Object) <strong>find_by_composite_key</strong>(hash_key, range_key, options = {}) </a>
175
-
176
-
177
-
178
- </span>
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
- <span class="summary_desc"><div class='inline'><p>Find one object directly by hash and range keys.</p>
189
- </div></span>
190
-
191
- </li>
192
-
193
-
194
- <li class="public ">
195
- <span class="summary_signature">
196
-
197
- <a href="#find_by_id-instance_method" title="#find_by_id (instance method)">- (Dynamoid::Document) <strong>find_by_id</strong>(id, options = {}) </a>
198
-
199
-
200
-
201
- </span>
202
-
203
-
204
-
205
-
206
-
207
-
208
-
209
-
210
-
211
- <span class="summary_desc"><div class='inline'><p>Find one object directly by id.</p>
212
- </div></span>
213
-
214
- </li>
215
-
216
-
217
- <li class="public ">
218
- <span class="summary_signature">
219
-
220
- <a href="#method_missing-instance_method" title="#method_missing (instance method)">- (Dynamoid::Document/Array) <strong>method_missing</strong>(method, *args) </a>
221
-
222
-
223
-
224
- </span>
225
-
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
- <span class="summary_desc"><div class='inline'><p>Find using exciting method_missing finders attributes.</p>
235
- </div></span>
236
-
237
- </li>
238
-
239
-
240
- </ul>
241
-
242
-
243
- <div id="method_missing_details" class="method_details_list">
244
- <h2>Dynamic Method Handling</h2>
245
- <p class="notice this">
246
- This class handles dynamic methods through the <tt>method_missing</tt> method
247
-
248
- </p>
249
-
250
- <div class="method_details first">
251
- <h3 class="signature first" id="method_missing-instance_method">
252
-
253
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span>/Array</tt>) <strong>method_missing</strong>(method, *args)
254
-
255
-
256
-
257
-
258
-
259
- </h3><div class="docstring">
260
- <div class="discussion">
261
- <p>Find using exciting method_missing finders attributes. Uses criteria chains under the hood to accomplish this neatness.</p>
262
-
263
-
264
- </div>
265
- </div>
266
- <div class="tags">
267
-
268
- <div class="examples">
269
- <p class="tag_title">Examples:</p>
270
-
271
-
272
- <p class="example_title"><div class='inline'><p>find a user by a first name</p>
273
- </div></p>
274
-
275
- <pre class="example code"><code><span class='const'>User</span><span class='period'>.</span><span class='id identifier rubyid_find_by_first_name'>find_by_first_name</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Josh</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
276
-
277
-
278
- <p class="example_title"><div class='inline'><p>find all users by first and last name</p>
279
- </div></p>
280
-
281
- <pre class="example code"><code><span class='const'>User</span><span class='period'>.</span><span class='id identifier rubyid_find_all_by_first_name_and_last_name'>find_all_by_first_name_and_last_name</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Josh</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Symonds</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
282
-
283
- </div>
284
-
285
- <p class="tag_title">Returns:</p>
286
- <ul class="return">
287
-
288
- <li>
289
-
290
-
291
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span>/Array</tt>)</span>
292
-
293
-
294
-
295
- &mdash;
296
- <div class='inline'><p>the found object, or an array of found objects if all was somewhere in the method</p>
297
- </div>
298
-
299
- </li>
300
-
301
- </ul>
302
- <p class="tag_title">Since:</p>
303
- <ul class="since">
304
-
305
- <li>
306
-
307
-
308
-
309
-
310
-
311
- <div class='inline'><p>0.2.0</p>
312
- </div>
313
-
314
- </li>
315
-
316
- </ul>
317
-
318
- </div><table class="source_code">
319
- <tr>
320
- <td>
321
- <pre class="lines">
322
-
323
-
324
- 113
325
- 114
326
- 115
327
- 116
328
- 117
329
- 118
330
- 119
331
- 120
332
- 121
333
- 122
334
- 123
335
- 124
336
- 125
337
- 126
338
- 127
339
- 128
340
- 129</pre>
341
- </td>
342
- <td>
343
- <pre class="code"><span class="info file"># File 'lib/dynamoid/finders.rb', line 113</span>
344
-
345
- <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
346
- <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>find</span><span class='regexp_end'>/</span></span>
347
- <span class='id identifier rubyid_finder'>finder</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</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'>_by_</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
348
- <span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</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'>_by_</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_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>_and_</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
349
-
350
- <span class='id identifier rubyid_chain'>chain</span> <span class='op'>=</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Criteria</span><span class='op'>::</span><span class='const'>Chain</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
351
- <span class='id identifier rubyid_chain'>chain</span><span class='period'>.</span><span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <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='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_h'>h</span><span class='op'>|</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_attr'>attr</span><span class='comma'>,</span> <span class='id identifier rubyid_index'>index</span><span class='op'>|</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='id identifier rubyid_attr'>attr</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span><span class='lbracket'>[</span><span class='id identifier rubyid_index'>index</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='rbrace'>}</span>
352
-
353
- <span class='kw'>if</span> <span class='id identifier rubyid_finder'>finder</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>all</span><span class='regexp_end'>/</span></span>
354
- <span class='kw'>return</span> <span class='id identifier rubyid_chain'>chain</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span>
355
- <span class='kw'>else</span>
356
- <span class='kw'>return</span> <span class='id identifier rubyid_chain'>chain</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
357
- <span class='kw'>end</span>
358
- <span class='kw'>else</span>
359
- <span class='kw'>super</span>
360
- <span class='kw'>end</span>
361
- <span class='kw'>end</span></pre>
362
- </td>
363
- </tr>
364
- </table>
365
- </div>
366
-
367
- </div>
368
-
369
-
370
- <div id="instance_method_details" class="method_details_list">
371
- <h2>Instance Method Details</h2>
372
-
373
-
374
- <div class="method_details first">
375
- <h3 class="signature first" id="find-instance_method">
376
-
377
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>find</strong>(*ids)
378
-
379
-
380
-
381
-
382
-
383
- </h3><div class="docstring">
384
- <div class="discussion">
385
- <p>Find one or many objects, specified by one id or an array of ids.</p>
386
-
387
-
388
- </div>
389
- </div>
390
- <div class="tags">
391
- <p class="tag_title">Parameters:</p>
392
- <ul class="param">
393
-
394
- <li>
395
-
396
- <span class='name'>*id</span>
397
-
398
-
399
- <span class='type'>(<tt>Array/String</tt>)</span>
400
-
401
-
402
-
403
- &mdash;
404
- <div class='inline'><p>an array of ids or one single id</p>
405
- </div>
406
-
407
- </li>
408
-
409
- </ul>
410
-
411
- <p class="tag_title">Returns:</p>
412
- <ul class="return">
413
-
414
- <li>
415
-
416
-
417
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
418
-
419
-
420
-
421
- &mdash;
422
- <div class='inline'><p>one object or an array of objects, depending on whether the input was an array or not</p>
423
- </div>
424
-
425
- </li>
426
-
427
- </ul>
428
- <p class="tag_title">Since:</p>
429
- <ul class="since">
430
-
431
- <li>
432
-
433
-
434
-
435
-
436
-
437
- <div class='inline'><p>0.2.0</p>
438
- </div>
439
-
440
- </li>
441
-
442
- </ul>
443
-
444
- </div><table class="source_code">
445
- <tr>
446
- <td>
447
- <pre class="lines">
448
-
449
-
450
- 18
451
- 19
452
- 20
453
- 21
454
- 22
455
- 23
456
- 24
457
- 25
458
- 26
459
- 27
460
- 28
461
- 29
462
- 30
463
- 31
464
- 32</pre>
465
- </td>
466
- <td>
467
- <pre class="code"><span class="info file"># File 'lib/dynamoid/finders.rb', line 18</span>
468
-
469
- <span class='kw'>def</span> <span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span>
470
-
471
- <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Hash</span>
472
- <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_slice!'>slice!</span><span class='lparen'>(</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span>
473
- <span class='kw'>else</span>
474
- <span class='lbrace'>{</span><span class='rbrace'>}</span>
475
- <span class='kw'>end</span>
476
-
477
- <span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='rparen'>)</span>
478
- <span class='kw'>if</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='op'>==</span> <span class='int'>1</span>
479
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_find_by_id'>find_by_id</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
480
- <span class='kw'>else</span>
481
- <span class='id identifier rubyid_find_all'>find_all</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span>
482
- <span class='kw'>end</span>
483
- <span class='kw'>end</span></pre>
484
- </td>
485
- </tr>
486
- </table>
487
- </div>
488
-
489
- <div class="method_details ">
490
- <h3 class="signature " id="find_all-instance_method">
491
-
492
- - (<tt>Object</tt>) <strong>find_all</strong>(ids, options = {})
493
-
494
-
495
-
496
-
497
-
498
- </h3><div class="docstring">
499
- <div class="discussion">
500
- <p>Return objects found by the given array of ids, either hash keys, or hash/range key combinations using BatchGet.
501
- Returns empty array if no results found.</p>
502
-
503
-
504
- </div>
505
- </div>
506
- <div class="tags">
507
-
508
- <div class="examples">
509
- <p class="tag_title">Examples:</p>
510
-
511
-
512
- <pre class="example code"><code><span class='id identifier rubyid_find'>find</span> <span class='id identifier rubyid_all'>all</span> <span class='id identifier rubyid_the'>the</span> <span class='id identifier rubyid_user'>user</span> <span class='id identifier rubyid_with'>with</span> <span class='id identifier rubyid_hash'>hash</span> <span class='id identifier rubyid_key'>key</span>
513
- <span class='const'>User</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>3</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
514
-
515
- <span class='id identifier rubyid_find'>find</span> <span class='id identifier rubyid_all'>all</span> <span class='id identifier rubyid_the'>the</span> <span class='id identifier rubyid_tweets'>tweets</span> <span class='id identifier rubyid_using'>using</span> <span class='id identifier rubyid_hash'>hash</span> <span class='id identifier rubyid_key'>key</span> <span class='kw'>and</span> <span class='id identifier rubyid_range'>range</span> <span class='id identifier rubyid_key'>key</span> <span class='id identifier rubyid_with'>with</span> <span class='id identifier rubyid_consistent'>consistent</span> <span class='id identifier rubyid_read'>read</span>
516
- <span class='const'>Tweet</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>red</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</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'>green</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:consistent_read</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span></code></pre>
517
-
518
- </div>
519
- <p class="tag_title">Parameters:</p>
520
- <ul class="param">
521
-
522
- <li>
523
-
524
- <span class='name'>ids</span>
525
-
526
-
527
- <span class='type'>(<tt>Array&lt;ID&gt;</tt>)</span>
528
-
529
-
530
-
531
- </li>
532
-
533
- <li>
534
-
535
- <span class='name'>options:</span>
536
-
537
-
538
- <span class='type'>(<tt>Hash</tt>)</span>
539
-
540
-
541
-
542
- &mdash;
543
- <div class='inline'><p>Passed to the underlying query.</p>
544
- </div>
545
-
546
- </li>
547
-
548
- </ul>
549
-
550
-
551
- </div><table class="source_code">
552
- <tr>
553
- <td>
554
- <pre class="lines">
555
-
556
-
557
- 46
558
- 47
559
- 48
560
- 49</pre>
561
- </td>
562
- <td>
563
- <pre class="code"><span class="info file"># File 'lib/dynamoid/finders.rb', line 46</span>
564
-
565
- <span class='kw'>def</span> <span class='id identifier rubyid_find_all'>find_all</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
566
- <span class='id identifier rubyid_items'>items</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_read'>read</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
567
- <span class='id identifier rubyid_items'>items</span> <span class='op'>?</span> <span class='id identifier rubyid_items'>items</span><span class='lbracket'>[</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_from_database'>from_database</span><span class='lparen'>(</span><span class='id identifier rubyid_i'>i</span><span class='rparen'>)</span><span class='rbrace'>}</span> <span class='op'>:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
568
- <span class='kw'>end</span></pre>
569
- </td>
570
- </tr>
571
- </table>
572
- </div>
573
-
574
- <div class="method_details ">
575
- <h3 class="signature " id="find_all_by_composite_key-instance_method">
576
-
577
- - (<tt>Array</tt>) <strong>find_all_by_composite_key</strong>(hash_key, options = {})
578
-
579
-
580
-
581
-
582
-
583
- </h3><div class="docstring">
584
- <div class="discussion">
585
- <p>Find all objects by hash and range keys.</p>
586
-
587
-
588
- </div>
589
- </div>
590
- <div class="tags">
591
-
592
- <div class="examples">
593
- <p class="tag_title">Examples:</p>
594
-
595
-
596
- <p class="example_title"><div class='inline'><p>find all ChamberTypes whose level is greater than 1</p>
597
- </div></p>
598
-
599
- <pre class="example code"><code><span class='kw'>class</span> <span class='const'>ChamberType</span>
600
- <span class='id identifier rubyid_include'>include</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Document</span>
601
- <span class='id identifier rubyid_field'>field</span> <span class='symbol'>:chamber_type</span><span class='comma'>,</span> <span class='symbol'>:string</span>
602
- <span class='id identifier rubyid_range'>range</span> <span class='symbol'>:level</span><span class='comma'>,</span> <span class='symbol'>:integer</span>
603
- <span class='id identifier rubyid_table'>table</span> <span class='symbol'>:key</span> <span class='op'>=&gt;</span> <span class='symbol'>:chamber_type</span>
604
- <span class='kw'>end</span>
605
- <span class='const'>ChamberType</span><span class='period'>.</span><span class='id identifier rubyid_find_all_by_composite_key'>find_all_by_composite_key</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>DustVault</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>range_greater_than:</span> <span class='int'>1</span><span class='rparen'>)</span></code></pre>
606
-
607
- </div>
608
- <p class="tag_title">Parameters:</p>
609
- <ul class="param">
610
-
611
- <li>
612
-
613
- <span class='name'>hash_key</span>
614
-
615
-
616
- <span class='type'>(<tt>String</tt>)</span>
617
-
618
-
619
-
620
- &mdash;
621
- <div class='inline'><p>of the objects to find</p>
622
- </div>
623
-
624
- </li>
625
-
626
- <li>
627
-
628
- <span class='name'>options</span>
629
-
630
-
631
- <span class='type'>(<tt>Hash</tt>)</span>
632
-
633
-
634
- <em class="default">(defaults to: <tt>{}</tt>)</em>
635
-
636
-
637
- &mdash;
638
- <div class='inline'><p>the options for the range key</p>
639
- </div>
640
-
641
- </li>
642
-
643
- </ul>
644
-
645
-
646
-
647
-
648
-
649
-
650
- <p class="tag_title">Options Hash (<tt>options</tt>):</p>
651
- <ul class="option">
652
-
653
- <li>
654
- <span class="name">:range_value</span>
655
- <span class="type">(<tt>Range</tt>)</span>
656
- <span class="default">
657
-
658
- </span>
659
-
660
- &mdash; <div class='inline'><p>find the range key within this range</p>
661
- </div>
662
-
663
- </li>
664
-
665
- <li>
666
- <span class="name">:range_greater_than</span>
667
- <span class="type">(<tt>Number</tt>)</span>
668
- <span class="default">
669
-
670
- </span>
671
-
672
- &mdash; <div class='inline'><p>find range keys greater than this</p>
673
- </div>
674
-
675
- </li>
676
-
677
- <li>
678
- <span class="name">:range_less_than</span>
679
- <span class="type">(<tt>Number</tt>)</span>
680
- <span class="default">
681
-
682
- </span>
683
-
684
- &mdash; <div class='inline'><p>find range keys less than this</p>
685
- </div>
686
-
687
- </li>
688
-
689
- <li>
690
- <span class="name">:range_gte</span>
691
- <span class="type">(<tt>Number</tt>)</span>
692
- <span class="default">
693
-
694
- </span>
695
-
696
- &mdash; <div class='inline'><p>find range keys greater than or equal to this</p>
697
- </div>
698
-
699
- </li>
700
-
701
- <li>
702
- <span class="name">:range_lte</span>
703
- <span class="type">(<tt>Number</tt>)</span>
704
- <span class="default">
705
-
706
- </span>
707
-
708
- &mdash; <div class='inline'><p>find range keys less than or equal to this</p>
709
- </div>
710
-
711
- </li>
712
-
713
- </ul>
714
-
715
-
716
- <p class="tag_title">Returns:</p>
717
- <ul class="return">
718
-
719
- <li>
720
-
721
-
722
- <span class='type'>(<tt>Array</tt>)</span>
723
-
724
-
725
-
726
- &mdash;
727
- <div class='inline'><p>an array of all matching items</p>
728
- </div>
729
-
730
- </li>
731
-
732
- </ul>
733
-
734
- </div><table class="source_code">
735
- <tr>
736
- <td>
737
- <pre class="lines">
738
-
739
-
740
- 96
741
- 97
742
- 98
743
- 99
744
- 100</pre>
745
- </td>
746
- <td>
747
- <pre class="code"><span class="info file"># File 'lib/dynamoid/finders.rb', line 96</span>
748
-
749
- <span class='kw'>def</span> <span class='id identifier rubyid_find_all_by_composite_key'>find_all_by_composite_key</span><span class='lparen'>(</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
750
- <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_query'>query</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>hash_value:</span> <span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbrace'>}</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_item'>item</span><span class='op'>|</span>
751
- <span class='id identifier rubyid_from_database'>from_database</span><span class='lparen'>(</span><span class='id identifier rubyid_item'>item</span><span class='rparen'>)</span>
752
- <span class='kw'>end</span>
753
- <span class='kw'>end</span></pre>
754
- </td>
755
- </tr>
756
- </table>
757
- </div>
758
-
759
- <div class="method_details ">
760
- <h3 class="signature " id="find_by_composite_key-instance_method">
761
-
762
- - (<tt>Object</tt>) <strong>find_by_composite_key</strong>(hash_key, range_key, options = {})
763
-
764
-
765
-
766
-
767
-
768
- </h3><div class="docstring">
769
- <div class="discussion">
770
- <p>Find one object directly by hash and range keys</p>
771
-
772
-
773
- </div>
774
- </div>
775
- <div class="tags">
776
- <p class="tag_title">Parameters:</p>
777
- <ul class="param">
778
-
779
- <li>
780
-
781
- <span class='name'>hash_key</span>
782
-
783
-
784
- <span class='type'>(<tt>String</tt>)</span>
785
-
786
-
787
-
788
- &mdash;
789
- <div class='inline'><p>of the object to find</p>
790
- </div>
791
-
792
- </li>
793
-
794
- <li>
795
-
796
- <span class='name'>range_key</span>
797
-
798
-
799
- <span class='type'>(<tt>String/Integer/Float</tt>)</span>
800
-
801
-
802
-
803
- &mdash;
804
- <div class='inline'><p>of the object to find</p>
805
- </div>
806
-
807
- </li>
808
-
809
- </ul>
810
-
811
-
812
- </div><table class="source_code">
813
- <tr>
814
- <td>
815
- <pre class="lines">
816
-
817
-
818
- 71
819
- 72
820
- 73</pre>
821
- </td>
822
- <td>
823
- <pre class="code"><span class="info file"># File 'lib/dynamoid/finders.rb', line 71</span>
824
-
825
- <span class='kw'>def</span> <span class='id identifier rubyid_find_by_composite_key'>find_by_composite_key</span><span class='lparen'>(</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
826
- <span class='id identifier rubyid_find_by_id'>find_by_id</span><span class='lparen'>(</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='symbol'>:range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rbrace'>}</span><span class='rparen'>)</span><span class='rparen'>)</span>
827
- <span class='kw'>end</span></pre>
828
- </td>
829
- </tr>
830
- </table>
831
- </div>
832
-
833
- <div class="method_details ">
834
- <h3 class="signature " id="find_by_id-instance_method">
835
-
836
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>find_by_id</strong>(id, options = {})
837
-
838
-
839
-
840
-
841
-
842
- </h3><div class="docstring">
843
- <div class="discussion">
844
- <p>Find one object directly by id.</p>
845
-
846
-
847
- </div>
848
- </div>
849
- <div class="tags">
850
- <p class="tag_title">Parameters:</p>
851
- <ul class="param">
852
-
853
- <li>
854
-
855
- <span class='name'>id</span>
856
-
857
-
858
- <span class='type'>(<tt>String</tt>)</span>
859
-
860
-
861
-
862
- &mdash;
863
- <div class='inline'><p>the id of the object to find</p>
864
- </div>
865
-
866
- </li>
867
-
868
- </ul>
869
-
870
- <p class="tag_title">Returns:</p>
871
- <ul class="return">
872
-
873
- <li>
874
-
875
-
876
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
877
-
878
-
879
-
880
- &mdash;
881
- <div class='inline'><p>the found object, or nil if nothing was found</p>
882
- </div>
883
-
884
- </li>
885
-
886
- </ul>
887
- <p class="tag_title">Since:</p>
888
- <ul class="since">
889
-
890
- <li>
891
-
892
-
893
-
894
-
895
-
896
- <div class='inline'><p>0.2.0</p>
897
- </div>
898
-
899
- </li>
900
-
901
- </ul>
902
-
903
- </div><table class="source_code">
904
- <tr>
905
- <td>
906
- <pre class="lines">
907
-
908
-
909
- 58
910
- 59
911
- 60
912
- 61
913
- 62
914
- 63
915
- 64</pre>
916
- </td>
917
- <td>
918
- <pre class="code"><span class="info file"># File 'lib/dynamoid/finders.rb', line 58</span>
919
-
920
- <span class='kw'>def</span> <span class='id identifier rubyid_find_by_id'>find_by_id</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>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>
921
- <span class='kw'>if</span> <span class='id identifier rubyid_item'>item</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_read'>read</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
922
- <span class='id identifier rubyid_from_database'>from_database</span><span class='lparen'>(</span><span class='id identifier rubyid_item'>item</span><span class='rparen'>)</span>
923
- <span class='kw'>else</span>
924
- <span class='kw'>nil</span>
925
- <span class='kw'>end</span>
926
- <span class='kw'>end</span></pre>
927
- </td>
928
- </tr>
929
- </table>
930
- </div>
931
-
932
- </div>
933
-
934
- </div>
935
-
936
- <div id="footer">
937
- Generated on Thu Jun 27 21:59:10 2013 by
938
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
939
- 0.8.6.1 (ruby-1.9.3).
940
- </div>
941
-
942
- </body>
943
- </html>