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,1142 +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
- Class: Dynamoid::Indexes::Index
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 (I)</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="../Indexes.html" title="Dynamoid::Indexes (module)">Indexes</a></span></span>
36
- &raquo;
37
- <span class="title">Index</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>Class: Dynamoid::Indexes::Index
67
-
68
-
69
-
70
- </h1>
71
-
72
- <dl class="box">
73
-
74
- <dt class="r1">Inherits:</dt>
75
- <dd class="r1">
76
- <span class="inheritName">Object</span>
77
-
78
- <ul class="fullTree">
79
- <li>Object</li>
80
-
81
- <li class="next">Dynamoid::Indexes::Index</li>
82
-
83
- </ul>
84
- <a href="#" class="inheritanceTree">show all</a>
85
-
86
- </dd>
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
- <dt class="r2 last">Defined in:</dt>
97
- <dd class="r2 last">lib/dynamoid/indexes/index.rb</dd>
98
-
99
- </dl>
100
- <div class="clear"></div>
101
-
102
- <h2>Overview</h2><div class="docstring">
103
- <div class="discussion">
104
- <p>The class contains all the information an index contains, including its keys and which attributes it covers.</p>
105
-
106
-
107
- </div>
108
- </div>
109
- <div class="tags">
110
-
111
-
112
- </div>
113
-
114
-
115
-
116
- <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
117
- <ul class="summary">
118
-
119
- <li class="public ">
120
- <span class="summary_signature">
121
-
122
- <a href="#hash_keys-instance_method" title="#hash_keys (instance method)">- (Object) <strong>hash_keys</strong> </a>
123
-
124
-
125
-
126
- </span>
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
- <span class="summary_desc"><div class='inline'><p>Returns the value of attribute hash_keys.</p>
140
- </div></span>
141
-
142
- </li>
143
-
144
-
145
- <li class="public ">
146
- <span class="summary_signature">
147
-
148
- <a href="#name-instance_method" title="#name (instance method)">- (Object) <strong>name</strong> </a>
149
-
150
-
151
-
152
- </span>
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
- <span class="summary_desc"><div class='inline'><p>Returns the value of attribute name.</p>
166
- </div></span>
167
-
168
- </li>
169
-
170
-
171
- <li class="public ">
172
- <span class="summary_signature">
173
-
174
- <a href="#range_keys-instance_method" title="#range_keys (instance method)">- (Object) <strong>range_keys</strong> </a>
175
-
176
-
177
-
178
- (also: #range_key?)
179
-
180
- </span>
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
- <span class="summary_desc"><div class='inline'><p>Returns the value of attribute range_keys.</p>
194
- </div></span>
195
-
196
- </li>
197
-
198
-
199
- <li class="public ">
200
- <span class="summary_signature">
201
-
202
- <a href="#source-instance_method" title="#source (instance method)">- (Object) <strong>source</strong> </a>
203
-
204
-
205
-
206
- </span>
207
-
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
-
216
-
217
-
218
-
219
- <span class="summary_desc"><div class='inline'><p>Returns the value of attribute source.</p>
220
- </div></span>
221
-
222
- </li>
223
-
224
-
225
- </ul>
226
-
227
-
228
-
229
-
230
-
231
- <h2>
232
- Instance Method Summary
233
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
234
- </h2>
235
-
236
- <ul class="summary">
237
-
238
- <li class="public ">
239
- <span class="summary_signature">
240
-
241
- <a href="#delete-instance_method" title="#delete (instance method)">- (Object) <strong>delete</strong>(obj, changed_attributes = false) </a>
242
-
243
-
244
-
245
- </span>
246
-
247
-
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
- <span class="summary_desc"><div class='inline'><p>Delete an object from this index, preserving existing ids if there are any, and failing gracefully if for some reason the
256
- index doesn't already have this object in it.</p>
257
- </div></span>
258
-
259
- </li>
260
-
261
-
262
- <li class="public ">
263
- <span class="summary_signature">
264
-
265
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Index) <strong>initialize</strong>(source, name, options = {}) </a>
266
-
267
-
268
-
269
- </span>
270
-
271
-
272
- <span class="note title constructor">constructor</span>
273
-
274
-
275
-
276
-
277
-
278
-
279
-
280
-
281
- <span class="summary_desc"><div class='inline'><p>Create a new index.</p>
282
- </div></span>
283
-
284
- </li>
285
-
286
-
287
- <li class="public ">
288
- <span class="summary_signature">
289
-
290
- <a href="#keys-instance_method" title="#keys (instance method)">- (Object) <strong>keys</strong> </a>
291
-
292
-
293
-
294
- </span>
295
-
296
-
297
-
298
-
299
-
300
-
301
-
302
-
303
-
304
- <span class="summary_desc"><div class='inline'><p>Return the array of keys this index uses for its table.</p>
305
- </div></span>
306
-
307
- </li>
308
-
309
-
310
- <li class="public ">
311
- <span class="summary_signature">
312
-
313
- <a href="#save-instance_method" title="#save (instance method)">- (Object) <strong>save</strong>(obj) </a>
314
-
315
-
316
-
317
- </span>
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
- <span class="summary_desc"><div class='inline'><p>Save an object to this index, merging it with existing ids if there's already something present at this index location.</p>
328
- </div></span>
329
-
330
- </li>
331
-
332
-
333
- <li class="public ">
334
- <span class="summary_signature">
335
-
336
- <a href="#sort-instance_method" title="#sort (instance method)">- (Object) <strong>sort</strong>(objs) </a>
337
-
338
-
339
-
340
- </span>
341
-
342
-
343
-
344
-
345
-
346
-
347
-
348
-
349
-
350
- <span class="summary_desc"><div class='inline'><p>Sort objects into alphabetical strings, used for composing index names correctly (since we always assume they're alphabetical).</p>
351
- </div></span>
352
-
353
- </li>
354
-
355
-
356
- <li class="public ">
357
- <span class="summary_signature">
358
-
359
- <a href="#table_name-instance_method" title="#table_name (instance method)">- (Object) <strong>table_name</strong> </a>
360
-
361
-
362
-
363
- </span>
364
-
365
-
366
-
367
-
368
-
369
-
370
-
371
-
372
-
373
- <span class="summary_desc"><div class='inline'><p>Return the table name for this index.</p>
374
- </div></span>
375
-
376
- </li>
377
-
378
-
379
- <li class="public ">
380
- <span class="summary_signature">
381
-
382
- <a href="#values-instance_method" title="#values (instance method)">- (Hash) <strong>values</strong>(attrs, changed_attributes = false) </a>
383
-
384
-
385
-
386
- </span>
387
-
388
-
389
-
390
-
391
-
392
-
393
-
394
-
395
-
396
- <span class="summary_desc"><div class='inline'><p>Given either an object or a list of attributes, generate a hash key and a range key for the index.</p>
397
- </div></span>
398
-
399
- </li>
400
-
401
-
402
- </ul>
403
-
404
-
405
- <div id="constructor_details" class="method_details_list">
406
- <h2>Constructor Details</h2>
407
-
408
- <div class="method_details first">
409
- <h3 class="signature first" id="initialize-instance_method">
410
-
411
- - (<tt><span class='object_link'><a href="" title="Dynamoid::Indexes::Index (class)">Index</a></span></tt>) <strong>initialize</strong>(source, name, options = {})
412
-
413
-
414
-
415
-
416
-
417
- </h3><div class="docstring">
418
- <div class="discussion">
419
- <p>Create a new index. Pass either :range =&gt; true or :range =&gt; :column_name to create a ranged index on that column.</p>
420
-
421
-
422
- </div>
423
- </div>
424
- <div class="tags">
425
- <p class="tag_title">Parameters:</p>
426
- <ul class="param">
427
-
428
- <li>
429
-
430
- <span class='name'>source</span>
431
-
432
-
433
- <span class='type'>(<tt>Class</tt>)</span>
434
-
435
-
436
-
437
- &mdash;
438
- <div class='inline'><p>the source class for the index</p>
439
- </div>
440
-
441
- </li>
442
-
443
- <li>
444
-
445
- <span class='name'>name</span>
446
-
447
-
448
- <span class='type'>(<tt>Symbol</tt>)</span>
449
-
450
-
451
-
452
- &mdash;
453
- <div class='inline'><p>the name of the index</p>
454
- </div>
455
-
456
- </li>
457
-
458
- </ul>
459
-
460
- <p class="tag_title">Raises:</p>
461
- <ul class="raise">
462
-
463
- <li>
464
-
465
-
466
- <span class='type'>(<tt><span class='object_link'><a href="../Errors/InvalidField.html" title="Dynamoid::Errors::InvalidField (class)">Dynamoid::Errors::InvalidField</a></span></tt>)</span>
467
-
468
-
469
-
470
- </li>
471
-
472
- </ul>
473
- <p class="tag_title">Since:</p>
474
- <ul class="since">
475
-
476
- <li>
477
-
478
-
479
-
480
-
481
-
482
- <div class='inline'><p>0.2.0</p>
483
- </div>
484
-
485
- </li>
486
-
487
- </ul>
488
-
489
- </div><table class="source_code">
490
- <tr>
491
- <td>
492
- <pre class="lines">
493
-
494
-
495
- 16
496
- 17
497
- 18
498
- 19
499
- 20
500
- 21
501
- 22
502
- 23
503
- 24
504
- 25
505
- 26
506
- 27
507
- 28</pre>
508
- </td>
509
- <td>
510
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 16</span>
511
-
512
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_source'>source</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</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>
513
- <span class='ivar'>@source</span> <span class='op'>=</span> <span class='id identifier rubyid_source'>source</span>
514
-
515
- <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:range</span><span class='rparen'>)</span>
516
- <span class='ivar'>@range_keys</span> <span class='op'>=</span> <span class='id identifier rubyid_sort'>sort</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
517
- <span class='kw'>elsif</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span>
518
- <span class='ivar'>@range_keys</span> <span class='op'>=</span> <span class='id identifier rubyid_sort'>sort</span><span class='lparen'>(</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='rparen'>)</span>
519
- <span class='kw'>end</span>
520
- <span class='ivar'>@hash_keys</span> <span class='op'>=</span> <span class='id identifier rubyid_sort'>sort</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
521
- <span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_sort'>sort</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_keys'>hash_keys</span><span class='comma'>,</span> <span class='id identifier rubyid_range_keys'>range_keys</span><span class='rbracket'>]</span><span class='rparen'>)</span>
522
-
523
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>InvalidField</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>A key specified for an index is not a field</span><span class='tstring_end'>'</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_keys'>keys</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_n'>n</span><span class='op'>|</span> <span class='id identifier rubyid_source'>source</span><span class='period'>.</span><span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span><span class='rparen'>)</span><span class='rbrace'>}</span>
524
- <span class='kw'>end</span></pre>
525
- </td>
526
- </tr>
527
- </table>
528
- </div>
529
-
530
- </div>
531
-
532
- <div id="instance_attr_details" class="attr_details">
533
- <h2>Instance Attribute Details</h2>
534
-
535
-
536
- <span id="hash_keys=-instance_method"></span>
537
- <div class="method_details first">
538
- <h3 class="signature first" id="hash_keys-instance_method">
539
-
540
- - (<tt>Object</tt>) <strong>hash_keys</strong>
541
-
542
-
543
-
544
-
545
-
546
- </h3><div class="docstring">
547
- <div class="discussion">
548
- <p>Returns the value of attribute hash_keys</p>
549
-
550
-
551
- </div>
552
- </div>
553
- <div class="tags">
554
-
555
-
556
- </div><table class="source_code">
557
- <tr>
558
- <td>
559
- <pre class="lines">
560
-
561
-
562
- 7
563
- 8
564
- 9</pre>
565
- </td>
566
- <td>
567
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 7</span>
568
-
569
- <span class='kw'>def</span> <span class='id identifier rubyid_hash_keys'>hash_keys</span>
570
- <span class='ivar'>@hash_keys</span>
571
- <span class='kw'>end</span></pre>
572
- </td>
573
- </tr>
574
- </table>
575
- </div>
576
-
577
-
578
- <span id="name=-instance_method"></span>
579
- <div class="method_details ">
580
- <h3 class="signature " id="name-instance_method">
581
-
582
- - (<tt>Object</tt>) <strong>name</strong>
583
-
584
-
585
-
586
-
587
-
588
- </h3><div class="docstring">
589
- <div class="discussion">
590
- <p>Returns the value of attribute name</p>
591
-
592
-
593
- </div>
594
- </div>
595
- <div class="tags">
596
-
597
-
598
- </div><table class="source_code">
599
- <tr>
600
- <td>
601
- <pre class="lines">
602
-
603
-
604
- 7
605
- 8
606
- 9</pre>
607
- </td>
608
- <td>
609
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 7</span>
610
-
611
- <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
612
- <span class='ivar'>@name</span>
613
- <span class='kw'>end</span></pre>
614
- </td>
615
- </tr>
616
- </table>
617
- </div>
618
-
619
-
620
- <span id="range_keys=-instance_method"></span>
621
- <div class="method_details ">
622
- <h3 class="signature " id="range_keys-instance_method">
623
-
624
- - (<tt>Object</tt>) <strong>range_keys</strong>
625
-
626
-
627
-
628
- <span class="aliases">Also known as:
629
- <span class="names"><span id='range_key?-instance_method'>range_key?</span></span>
630
- </span>
631
-
632
-
633
-
634
- </h3><div class="docstring">
635
- <div class="discussion">
636
- <p>Returns the value of attribute range_keys</p>
637
-
638
-
639
- </div>
640
- </div>
641
- <div class="tags">
642
-
643
-
644
- </div><table class="source_code">
645
- <tr>
646
- <td>
647
- <pre class="lines">
648
-
649
-
650
- 7
651
- 8
652
- 9</pre>
653
- </td>
654
- <td>
655
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 7</span>
656
-
657
- <span class='kw'>def</span> <span class='id identifier rubyid_range_keys'>range_keys</span>
658
- <span class='ivar'>@range_keys</span>
659
- <span class='kw'>end</span></pre>
660
- </td>
661
- </tr>
662
- </table>
663
- </div>
664
-
665
-
666
- <span id="source=-instance_method"></span>
667
- <div class="method_details ">
668
- <h3 class="signature " id="source-instance_method">
669
-
670
- - (<tt>Object</tt>) <strong>source</strong>
671
-
672
-
673
-
674
-
675
-
676
- </h3><div class="docstring">
677
- <div class="discussion">
678
- <p>Returns the value of attribute source</p>
679
-
680
-
681
- </div>
682
- </div>
683
- <div class="tags">
684
-
685
-
686
- </div><table class="source_code">
687
- <tr>
688
- <td>
689
- <pre class="lines">
690
-
691
-
692
- 7
693
- 8
694
- 9</pre>
695
- </td>
696
- <td>
697
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 7</span>
698
-
699
- <span class='kw'>def</span> <span class='id identifier rubyid_source'>source</span>
700
- <span class='ivar'>@source</span>
701
- <span class='kw'>end</span></pre>
702
- </td>
703
- </tr>
704
- </table>
705
- </div>
706
-
707
- </div>
708
-
709
-
710
- <div id="instance_method_details" class="method_details_list">
711
- <h2>Instance Method Details</h2>
712
-
713
-
714
- <div class="method_details first">
715
- <h3 class="signature first" id="delete-instance_method">
716
-
717
- - (<tt>Object</tt>) <strong>delete</strong>(obj, changed_attributes = false)
718
-
719
-
720
-
721
-
722
-
723
- </h3><div class="docstring">
724
- <div class="discussion">
725
- <p>Delete an object from this index, preserving existing ids if there are any, and failing gracefully if for some reason the
726
- index doesn't already have this object in it.</p>
727
-
728
-
729
- </div>
730
- </div>
731
- <div class="tags">
732
-
733
- <p class="tag_title">Since:</p>
734
- <ul class="since">
735
-
736
- <li>
737
-
738
-
739
-
740
-
741
-
742
- <div class='inline'><p>0.2.0</p>
743
- </div>
744
-
745
- </li>
746
-
747
- </ul>
748
-
749
- </div><table class="source_code">
750
- <tr>
751
- <td>
752
- <pre class="lines">
753
-
754
-
755
- 93
756
- 94
757
- 95
758
- 96
759
- 97
760
- 98
761
- 99</pre>
762
- </td>
763
- <td>
764
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 93</span>
765
-
766
- <span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='comma'>,</span> <span class='id identifier rubyid_changed_attributes'>changed_attributes</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
767
- <span class='id identifier rubyid_values'>values</span> <span class='op'>=</span> <span class='id identifier rubyid_values'>values</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='comma'>,</span> <span class='id identifier rubyid_changed_attributes'>changed_attributes</span><span class='rparen'>)</span>
768
- <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span><span class='rparen'>)</span>
769
- <span class='id identifier rubyid_existing'>existing</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_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='rparen'>)</span>
770
- <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>unless</span> <span class='id identifier rubyid_existing'>existing</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_existing'>existing</span><span class='lbracket'>[</span><span class='symbol'>:ids</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_existing'>existing</span><span class='lbracket'>[</span><span class='symbol'>:ids</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
771
- <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</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='lbrace'>{</span><span class='symbol'>:id</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:ids</span> <span class='op'>=&gt;</span> <span class='lparen'>(</span><span class='id identifier rubyid_existing'>existing</span><span class='lbracket'>[</span><span class='symbol'>:ids</span><span class='rbracket'>]</span> <span class='op'>-</span> <span class='const'>Set</span><span class='lbracket'>[</span><span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='symbol'>:range</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='rparen'>)</span>
772
- <span class='kw'>end</span></pre>
773
- </td>
774
- </tr>
775
- </table>
776
- </div>
777
-
778
- <div class="method_details ">
779
- <h3 class="signature " id="keys-instance_method">
780
-
781
- - (<tt>Object</tt>) <strong>keys</strong>
782
-
783
-
784
-
785
-
786
-
787
- </h3><div class="docstring">
788
- <div class="discussion">
789
- <p>Return the array of keys this index uses for its table.</p>
790
-
791
-
792
- </div>
793
- </div>
794
- <div class="tags">
795
-
796
- <p class="tag_title">Since:</p>
797
- <ul class="since">
798
-
799
- <li>
800
-
801
-
802
-
803
-
804
-
805
- <div class='inline'><p>0.2.0</p>
806
- </div>
807
-
808
- </li>
809
-
810
- </ul>
811
-
812
- </div><table class="source_code">
813
- <tr>
814
- <td>
815
- <pre class="lines">
816
-
817
-
818
- 43
819
- 44
820
- 45</pre>
821
- </td>
822
- <td>
823
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 43</span>
824
-
825
- <span class='kw'>def</span> <span class='id identifier rubyid_keys'>keys</span>
826
- <span class='lbracket'>[</span><span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_hash_keys'>hash_keys</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_range_keys'>range_keys</span><span class='rparen'>)</span><span class='rbracket'>]</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>
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="save-instance_method">
835
-
836
- - (<tt>Object</tt>) <strong>save</strong>(obj)
837
-
838
-
839
-
840
-
841
-
842
- </h3><div class="docstring">
843
- <div class="discussion">
844
- <p>Save an object to this index, merging it with existing ids if there's already something present at this index location.
845
- First, though, delete this object from its old indexes (so the object isn't listed in an erroneous index).</p>
846
-
847
-
848
- </div>
849
- </div>
850
- <div class="tags">
851
-
852
- <p class="tag_title">Since:</p>
853
- <ul class="since">
854
-
855
- <li>
856
-
857
-
858
-
859
-
860
-
861
- <div class='inline'><p>0.2.0</p>
862
- </div>
863
-
864
- </li>
865
-
866
- </ul>
867
-
868
- </div><table class="source_code">
869
- <tr>
870
- <td>
871
- <pre class="lines">
872
-
873
-
874
- 80
875
- 81
876
- 82
877
- 83
878
- 84
879
- 85
880
- 86
881
- 87</pre>
882
- </td>
883
- <td>
884
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 80</span>
885
-
886
- <span class='kw'>def</span> <span class='id identifier rubyid_save'>save</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
887
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
888
- <span class='id identifier rubyid_values'>values</span> <span class='op'>=</span> <span class='id identifier rubyid_values'>values</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
889
- <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span><span class='rparen'>)</span>
890
- <span class='id identifier rubyid_existing'>existing</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_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
891
- <span class='id identifier rubyid_ids'>ids</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='lparen'>(</span><span class='id identifier rubyid_existing'>existing</span> <span class='kw'>and</span> <span class='id identifier rubyid_existing'>existing</span><span class='lbracket'>[</span><span class='symbol'>:ids</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>or</span> <span class='const'>Set</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='rparen'>)</span>
892
- <span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</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='lbrace'>{</span><span class='symbol'>:id</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:ids</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='symbol'>:range</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='rparen'>)</span>
893
- <span class='kw'>end</span></pre>
894
- </td>
895
- </tr>
896
- </table>
897
- </div>
898
-
899
- <div class="method_details ">
900
- <h3 class="signature " id="sort-instance_method">
901
-
902
- - (<tt>Object</tt>) <strong>sort</strong>(objs)
903
-
904
-
905
-
906
-
907
-
908
- </h3><div class="docstring">
909
- <div class="discussion">
910
- <p>Sort objects into alphabetical strings, used for composing index names correctly (since we always assume they're alphabetical).</p>
911
-
912
-
913
- </div>
914
- </div>
915
- <div class="tags">
916
-
917
- <div class="examples">
918
- <p class="tag_title">Examples:</p>
919
-
920
-
921
- <p class="example_title"><div class='inline'><p>find all users by first and last name</p>
922
- </div></p>
923
-
924
- <pre class="example code"><code><span class='id identifier rubyid_sort'>sort</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='symbol'>:gamma</span><span class='comma'>,</span> <span class='symbol'>:alpha</span><span class='comma'>,</span> <span class='symbol'>:beta</span><span class='comma'>,</span> <span class='symbol'>:omega</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='comment'># =&gt; [:alpha, :beta, :gamma, :omega]</span></code></pre>
925
-
926
- </div>
927
-
928
- <p class="tag_title">Since:</p>
929
- <ul class="since">
930
-
931
- <li>
932
-
933
-
934
-
935
-
936
-
937
- <div class='inline'><p>0.2.0</p>
938
- </div>
939
-
940
- </li>
941
-
942
- </ul>
943
-
944
- </div><table class="source_code">
945
- <tr>
946
- <td>
947
- <pre class="lines">
948
-
949
-
950
- 36
951
- 37
952
- 38</pre>
953
- </td>
954
- <td>
955
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 36</span>
956
-
957
- <span class='kw'>def</span> <span class='id identifier rubyid_sort'>sort</span><span class='lparen'>(</span><span class='id identifier rubyid_objs'>objs</span><span class='rparen'>)</span>
958
- <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_objs'>objs</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</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'>:to_s</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</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'>:to_sym</span><span class='rparen'>)</span>
959
- <span class='kw'>end</span></pre>
960
- </td>
961
- </tr>
962
- </table>
963
- </div>
964
-
965
- <div class="method_details ">
966
- <h3 class="signature " id="table_name-instance_method">
967
-
968
- - (<tt>Object</tt>) <strong>table_name</strong>
969
-
970
-
971
-
972
-
973
-
974
- </h3><div class="docstring">
975
- <div class="discussion">
976
- <p>Return the table name for this index.</p>
977
-
978
-
979
- </div>
980
- </div>
981
- <div class="tags">
982
-
983
- <p class="tag_title">Since:</p>
984
- <ul class="since">
985
-
986
- <li>
987
-
988
-
989
-
990
-
991
-
992
- <div class='inline'><p>0.2.0</p>
993
- </div>
994
-
995
- </li>
996
-
997
- </ul>
998
-
999
- </div><table class="source_code">
1000
- <tr>
1001
- <td>
1002
- <pre class="lines">
1003
-
1004
-
1005
- 50
1006
- 51
1007
- 52</pre>
1008
- </td>
1009
- <td>
1010
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 50</span>
1011
-
1012
- <span class='kw'>def</span> <span class='id identifier rubyid_table_name'>table_name</span>
1013
- <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'>_index_</span><span class='tstring_end'>&quot;</span></span> <span class='op'>+</span> <span class='id identifier rubyid_source'>source</span><span class='period'>.</span><span class='id identifier rubyid_table_name'>table_name</span><span class='period'>.</span><span class='id identifier rubyid_sub'>sub</span><span class='lparen'>(</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='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_singularize'>singularize</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</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'>:to_s</span><span class='rparen'>)</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'>:pluralize</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</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><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1014
- <span class='kw'>end</span></pre>
1015
- </td>
1016
- </tr>
1017
- </table>
1018
- </div>
1019
-
1020
- <div class="method_details ">
1021
- <h3 class="signature " id="values-instance_method">
1022
-
1023
- - (<tt>Hash</tt>) <strong>values</strong>(attrs, changed_attributes = false)
1024
-
1025
-
1026
-
1027
-
1028
-
1029
- </h3><div class="docstring">
1030
- <div class="discussion">
1031
- <p>Given either an object or a list of attributes, generate a hash key and a range key for the index. Optionally pass in
1032
- true to changed_attributes for a list of all the object's dirty attributes in convenient index form (for deleting stale
1033
- information from the indexes).</p>
1034
-
1035
-
1036
- </div>
1037
- </div>
1038
- <div class="tags">
1039
- <p class="tag_title">Parameters:</p>
1040
- <ul class="param">
1041
-
1042
- <li>
1043
-
1044
- <span class='name'>attrs</span>
1045
-
1046
-
1047
- <span class='type'>(<tt>Object</tt>)</span>
1048
-
1049
-
1050
-
1051
- &mdash;
1052
- <div class='inline'><p>either an object that responds to :attributes, or a hash of attributes</p>
1053
- </div>
1054
-
1055
- </li>
1056
-
1057
- </ul>
1058
-
1059
- <p class="tag_title">Returns:</p>
1060
- <ul class="return">
1061
-
1062
- <li>
1063
-
1064
-
1065
- <span class='type'>(<tt>Hash</tt>)</span>
1066
-
1067
-
1068
-
1069
- &mdash;
1070
- <div class='inline'><p>a hash with the keys :hash_value and :range_value</p>
1071
- </div>
1072
-
1073
- </li>
1074
-
1075
- </ul>
1076
- <p class="tag_title">Since:</p>
1077
- <ul class="since">
1078
-
1079
- <li>
1080
-
1081
-
1082
-
1083
-
1084
-
1085
- <div class='inline'><p>0.2.0</p>
1086
- </div>
1087
-
1088
- </li>
1089
-
1090
- </ul>
1091
-
1092
- </div><table class="source_code">
1093
- <tr>
1094
- <td>
1095
- <pre class="lines">
1096
-
1097
-
1098
- 63
1099
- 64
1100
- 65
1101
- 66
1102
- 67
1103
- 68
1104
- 69
1105
- 70
1106
- 71
1107
- 72
1108
- 73
1109
- 74</pre>
1110
- </td>
1111
- <td>
1112
- <pre class="code"><span class="info file"># File 'lib/dynamoid/indexes/index.rb', line 63</span>
1113
-
1114
- <span class='kw'>def</span> <span class='id identifier rubyid_values'>values</span><span class='lparen'>(</span><span class='id identifier rubyid_attrs'>attrs</span><span class='comma'>,</span> <span class='id identifier rubyid_changed_attributes'>changed_attributes</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
1115
- <span class='kw'>if</span> <span class='id identifier rubyid_changed_attributes'>changed_attributes</span>
1116
- <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1117
- <span class='id identifier rubyid_attrs'>attrs</span><span class='period'>.</span><span class='id identifier rubyid_changes'>changes</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_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</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='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='op'>||</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span><span class='rbrace'>}</span>
1118
- <span class='id identifier rubyid_attrs'>attrs</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span>
1119
- <span class='kw'>end</span>
1120
- <span class='id identifier rubyid_attrs'>attrs</span> <span class='op'>=</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:attributes</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:attributes</span><span class='rparen'>)</span>
1121
- <span class='lbrace'>{</span><span class='rbrace'>}</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>
1122
- <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_hash_keys'>hash_keys</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='op'>|</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</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>
1123
- <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_range_keys'>range_keys</span><span class='period'>.</span><span class='id identifier rubyid_inject'>inject</span><span class='lparen'>(</span><span class='float'>0.0</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_sum'>sum</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='op'>|</span> <span class='id identifier rubyid_sum'>sum</span> <span class='op'>+</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_range_key?'>range_key?</span>
1124
- <span class='kw'>end</span>
1125
- <span class='kw'>end</span></pre>
1126
- </td>
1127
- </tr>
1128
- </table>
1129
- </div>
1130
-
1131
- </div>
1132
-
1133
- </div>
1134
-
1135
- <div id="footer">
1136
- Generated on Thu Jun 27 21:59:13 2013 by
1137
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1138
- 0.8.6.1 (ruby-1.9.3).
1139
- </div>
1140
-
1141
- </body>
1142
- </html>