dynamoid 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/Dynamoid.gemspec +5 -3
  2. data/README.markdown +2 -2
  3. data/VERSION +1 -1
  4. data/doc/Dynamoid.html +26 -14
  5. data/doc/Dynamoid/Adapter.html +33 -35
  6. data/doc/Dynamoid/Adapter/AwsSdk.html +177 -153
  7. data/doc/Dynamoid/Adapter/Local.html +144 -57
  8. data/doc/Dynamoid/Associations.html +3 -3
  9. data/doc/Dynamoid/Associations/Association.html +104 -1016
  10. data/doc/Dynamoid/Associations/BelongsTo.html +11 -192
  11. data/doc/Dynamoid/Associations/ClassMethods.html +17 -17
  12. data/doc/Dynamoid/Associations/HasAndBelongsToMany.html +15 -190
  13. data/doc/Dynamoid/Associations/HasMany.html +15 -190
  14. data/doc/Dynamoid/Associations/HasOne.html +11 -192
  15. data/doc/Dynamoid/Associations/ManyAssociation.html +1640 -0
  16. data/doc/Dynamoid/Associations/SingleAssociation.html +598 -0
  17. data/doc/Dynamoid/Components.html +4 -2
  18. data/doc/Dynamoid/Config.html +10 -10
  19. data/doc/Dynamoid/Config/Options.html +1 -1
  20. data/doc/Dynamoid/Criteria.html +1 -1
  21. data/doc/Dynamoid/Criteria/Chain.html +326 -22
  22. data/doc/Dynamoid/Criteria/ClassMethods.html +1 -1
  23. data/doc/Dynamoid/Document.html +181 -27
  24. data/doc/Dynamoid/Document/ClassMethods.html +392 -36
  25. data/doc/Dynamoid/Errors.html +1 -1
  26. data/doc/Dynamoid/Errors/DocumentNotValid.html +1 -1
  27. data/doc/Dynamoid/Errors/Error.html +1 -1
  28. data/doc/Dynamoid/Errors/InvalidField.html +1 -1
  29. data/doc/Dynamoid/Errors/MissingRangeKey.html +1 -1
  30. data/doc/Dynamoid/Fields.html +44 -24
  31. data/doc/Dynamoid/Fields/ClassMethods.html +60 -15
  32. data/doc/Dynamoid/Finders.html +1 -1
  33. data/doc/Dynamoid/Finders/ClassMethods.html +45 -31
  34. data/doc/Dynamoid/Indexes.html +7 -7
  35. data/doc/Dynamoid/Indexes/ClassMethods.html +6 -4
  36. data/doc/Dynamoid/Indexes/Index.html +47 -32
  37. data/doc/Dynamoid/Persistence.html +47 -49
  38. data/doc/Dynamoid/Persistence/ClassMethods.html +149 -47
  39. data/doc/Dynamoid/Validations.html +1 -1
  40. data/doc/_index.html +35 -13
  41. data/doc/class_list.html +1 -1
  42. data/doc/file.LICENSE.html +1 -1
  43. data/doc/file.README.html +37 -4
  44. data/doc/index.html +37 -4
  45. data/doc/method_list.html +320 -136
  46. data/doc/top-level-namespace.html +1 -1
  47. data/lib/dynamoid/adapter.rb +28 -30
  48. data/lib/dynamoid/adapter/aws_sdk.rb +23 -22
  49. data/lib/dynamoid/persistence.rb +33 -27
  50. metadata +6 -4
@@ -180,7 +180,7 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
180
180
  <li class="public ">
181
181
  <span class="summary_signature">
182
182
 
183
- <a href="#delete_item-instance_method" title="#delete_item (instance method)">- (Object) <strong>delete_item</strong>(table_name, key, range_key = nil) </a>
183
+ <a href="#delete_item-instance_method" title="#delete_item (instance method)">- (Object) <strong>delete_item</strong>(table_name, key, options = {}) </a>
184
184
 
185
185
 
186
186
 
@@ -224,7 +224,28 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
224
224
  <li class="public ">
225
225
  <span class="summary_signature">
226
226
 
227
- <a href="#get_item-instance_method" title="#get_item (instance method)">- (Hash) <strong>get_item</strong>(table_name, key, range_key = nil) </a>
227
+ <a href="#drop_till_start-instance_method" title="#drop_till_start (instance method)">- (Object) <strong>drop_till_start</strong>(results, next_token, range_key, hash_key) </a>
228
+
229
+
230
+
231
+ </span>
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+ <span class="summary_desc"><div class='inline'></div></span>
241
+
242
+ </li>
243
+
244
+
245
+ <li class="public ">
246
+ <span class="summary_signature">
247
+
248
+ <a href="#get_item-instance_method" title="#get_item (instance method)">- (Hash) <strong>get_item</strong>(table_name, key, options = {}) </a>
228
249
 
229
250
 
230
251
 
@@ -334,7 +355,7 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
334
355
  <li class="public ">
335
356
  <span class="summary_signature">
336
357
 
337
- <a href="#scan-instance_method" title="#scan (instance method)">- (Array) <strong>scan</strong>(table_name, scan_hash) </a>
358
+ <a href="#scan-instance_method" title="#scan (instance method)">- (Array) <strong>scan</strong>(table_name, scan_hash, opts = {}) </a>
338
359
 
339
360
 
340
361
 
@@ -471,7 +492,7 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
471
492
  <span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span>
472
493
  <span class='kw'>if</span> <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span>
473
494
  <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_keys'>keys</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='op'>|</span>
474
- <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_get_item'>get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_hash_key'>hash_key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rparen'>)</span>
495
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_get_item'>get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_hash_key'>hash_key</span><span class='comma'>,</span> <span class='symbol'>:range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='rparen'>)</span>
475
496
  <span class='kw'>end</span>
476
497
  <span class='kw'>else</span>
477
498
  <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_keys'>keys</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='op'>|</span>
@@ -577,13 +598,15 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
577
598
 
578
599
  59
579
600
  60
580
- 61</pre>
601
+ 61
602
+ 62</pre>
581
603
  </td>
582
604
  <td>
583
605
  <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 59</span>
584
606
 
585
607
  <span class='kw'>def</span> <span class='id identifier rubyid_create_table'>create_table</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='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>
586
- <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='symbol'>:hash_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='symbol'>:range_key</span> <span class='op'>=&gt;</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='comma'>,</span> <span class='symbol'>:data</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rbrace'>}</span>
608
+ <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</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='op'>&amp;&amp;</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
609
+ <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='symbol'>:hash_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='symbol'>:range_key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='comma'>,</span> <span class='symbol'>:data</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rbrace'>}</span>
587
610
  <span class='kw'>end</span></pre>
588
611
  </td>
589
612
  </tr>
@@ -663,7 +686,7 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
663
686
  <div class="method_details ">
664
687
  <p class="signature " id="delete_item-instance_method">
665
688
 
666
- - (<tt>Object</tt>) <strong>delete_item</strong>(table_name, key, range_key = nil)
689
+ - (<tt>Object</tt>) <strong>delete_item</strong>(table_name, key, options = {})
667
690
 
668
691
 
669
692
 
@@ -716,8 +739,6 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
716
739
  <span class='type'>(<tt>Number</tt>)</span>
717
740
 
718
741
 
719
- <em class="default">(defaults to: <tt>nil</tt>)</em>
720
-
721
742
 
722
743
  &mdash;
723
744
  <div class='inline'><p>the range key of the item to delete, required if the table has a composite key</p>
@@ -749,14 +770,16 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
749
770
  <pre class="lines">
750
771
 
751
772
 
752
- 70
753
773
  71
754
- 72</pre>
774
+ 72
775
+ 73
776
+ 74</pre>
755
777
  </td>
756
778
  <td>
757
- <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 70</span>
779
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 71</span>
758
780
 
759
- <span class='kw'>def</span> <span class='id identifier rubyid_delete_item'>delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
781
+ <span class='kw'>def</span> <span class='id identifier rubyid_delete_item'>delete_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
782
+ <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</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_key</span><span class='rparen'>)</span>
760
783
  <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key'>key</span><span class='rbrace'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
761
784
  <span class='kw'>end</span></pre>
762
785
  </td>
@@ -821,12 +844,12 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
821
844
  <pre class="lines">
822
845
 
823
846
 
824
- 79
825
- 80
826
- 81</pre>
847
+ 81
848
+ 82
849
+ 83</pre>
827
850
  </td>
828
851
  <td>
829
- <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 79</span>
852
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 81</span>
830
853
 
831
854
  <span class='kw'>def</span> <span class='id identifier rubyid_delete_table'>delete_table</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
832
855
  <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
@@ -834,12 +857,54 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
834
857
  </td>
835
858
  </tr>
836
859
  </table>
860
+ </div>
861
+
862
+ <div class="method_details ">
863
+ <p class="signature " id="drop_till_start-instance_method">
864
+
865
+ - (<tt>Object</tt>) <strong>drop_till_start</strong>(results, next_token, range_key, hash_key)
866
+
867
+
868
+
869
+ </p><table class="source_code">
870
+ <tr>
871
+ <td>
872
+ <pre class="lines">
873
+
874
+
875
+ 180
876
+ 181
877
+ 182
878
+ 183
879
+ 184
880
+ 185
881
+ 186
882
+ 187
883
+ 188
884
+ 189</pre>
885
+ </td>
886
+ <td>
887
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 180</span>
888
+
889
+ <span class='kw'>def</span> <span class='id identifier rubyid_drop_till_start'>drop_till_start</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='comma'>,</span> <span class='id identifier rubyid_next_token'>next_token</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='comma'>,</span> <span class='id identifier rubyid_hash_key'>hash_key</span><span class='rparen'>)</span>
890
+ <span class='kw'>return</span> <span class='id identifier rubyid_results'>results</span> <span class='kw'>unless</span> <span class='id identifier rubyid_next_token'>next_token</span>
891
+
892
+ <span class='id identifier rubyid_hash_value'>hash_value</span> <span class='op'>=</span> <span class='id identifier rubyid_next_token'>next_token</span><span class='lbracket'>[</span><span class='symbol'>:hash_key_element</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
893
+ <span class='id identifier rubyid_range_value'>range_value</span> <span class='op'>=</span> <span class='id identifier rubyid_next_token'>next_token</span><span class='lbracket'>[</span><span class='symbol'>:range_key_element</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='kw'>if</span> <span class='id identifier rubyid_next_token'>next_token</span><span class='lbracket'>[</span><span class='symbol'>:range_key_element</span><span class='rbracket'>]</span>
894
+
895
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_results'>results</span><span class='period'>.</span><span class='id identifier rubyid_drop_while'>drop_while</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_r'>r</span><span class='op'>|</span>
896
+ <span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='id identifier rubyid_hash_value'>hash_value</span> <span class='kw'>or</span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='id identifier rubyid_range_value'>range_value</span><span class='rparen'>)</span>
897
+ <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_drop'>drop</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
898
+ <span class='kw'>end</span></pre>
899
+ </td>
900
+ </tr>
901
+ </table>
837
902
  </div>
838
903
 
839
904
  <div class="method_details ">
840
905
  <p class="signature " id="get_item-instance_method">
841
906
 
842
- - (<tt>Hash</tt>) <strong>get_item</strong>(table_name, key, range_key = nil)
907
+ - (<tt>Hash</tt>) <strong>get_item</strong>(table_name, key, options = {})
843
908
 
844
909
 
845
910
 
@@ -892,8 +957,6 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
892
957
  <span class='type'>(<tt>Number</tt>)</span>
893
958
 
894
959
 
895
- <em class="default">(defaults to: <tt>nil</tt>)</em>
896
-
897
960
 
898
961
  &mdash;
899
962
  <div class='inline'><p>the range key of the item to find, required if the table has a composite key</p>
@@ -942,18 +1005,20 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
942
1005
  <pre class="lines">
943
1006
 
944
1007
 
945
- 94
946
- 95
947
1008
  96
948
1009
  97
949
1010
  98
950
1011
  99
951
- 100</pre>
1012
+ 100
1013
+ 101
1014
+ 102
1015
+ 103</pre>
952
1016
  </td>
953
1017
  <td>
954
- <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 94</span>
1018
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 96</span>
955
1019
 
956
- <span class='kw'>def</span> <span class='id identifier rubyid_get_item'>get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1020
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_item'>get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1021
+ <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span>
957
1022
  <span class='kw'>if</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span>
958
1023
  <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key'>key</span><span class='rbrace'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
959
1024
  <span class='kw'>else</span>
@@ -1003,12 +1068,12 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
1003
1068
  <pre class="lines">
1004
1069
 
1005
1070
 
1006
- 105
1007
- 106
1008
- 107</pre>
1071
+ 108
1072
+ 109
1073
+ 110</pre>
1009
1074
  </td>
1010
1075
  <td>
1011
- <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 105</span>
1076
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 108</span>
1012
1077
 
1013
1078
  <span class='kw'>def</span> <span class='id identifier rubyid_list_tables'>list_tables</span>
1014
1079
  <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
@@ -1090,19 +1155,23 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
1090
1155
  <pre class="lines">
1091
1156
 
1092
1157
 
1093
- 115
1094
- 116
1095
- 117
1096
1158
  118
1097
- 119</pre>
1159
+ 119
1160
+ 120
1161
+ 121
1162
+ 122
1163
+ 123
1164
+ 124</pre>
1098
1165
  </td>
1099
1166
  <td>
1100
- <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 115</span>
1167
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 118</span>
1101
1168
 
1102
1169
  <span class='kw'>def</span> <span class='id identifier rubyid_put_item'>put_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
1103
1170
  <span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span>
1104
1171
  <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_object'>object</span><span class='lbracket'>[</span><span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span><span class='symbol'>:hash_key</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
1105
1172
  <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_object'>object</span><span class='lbracket'>[</span><span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span><span class='symbol'>:hash_key</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_object'>object</span><span class='lbracket'>[</span><span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_object'>object</span><span class='period'>.</span><span class='id identifier rubyid_delete_if'>delete_if</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:empty?</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span><span class='rbrace'>}</span>
1173
+ <span class='kw'>rescue</span>
1174
+ <span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span>
1106
1175
  <span class='kw'>end</span></pre>
1107
1176
  </td>
1108
1177
  </tr>
@@ -1271,11 +1340,6 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
1271
1340
  <pre class="lines">
1272
1341
 
1273
1342
 
1274
- 135
1275
- 136
1276
- 137
1277
- 138
1278
- 139
1279
1343
  140
1280
1344
  141
1281
1345
  142
@@ -1287,27 +1351,44 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
1287
1351
  148
1288
1352
  149
1289
1353
  150
1290
- 151</pre>
1354
+ 151
1355
+ 152
1356
+ 153
1357
+ 154
1358
+ 155
1359
+ 156
1360
+ 157
1361
+ 158
1362
+ 159
1363
+ 160
1364
+ 161
1365
+ 162</pre>
1291
1366
  </td>
1292
1367
  <td>
1293
- <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 135</span>
1368
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 140</span>
1294
1369
 
1295
1370
  <span class='kw'>def</span> <span class='id identifier rubyid_query'>query</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1296
1371
  <span class='id identifier rubyid_id'>id</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:hash_value</span><span class='rbracket'>]</span>
1372
+ <span class='id identifier rubyid_hash_key'>hash_key</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:hash_key</span><span class='rbracket'>]</span>
1297
1373
  <span class='id identifier rubyid_range_key'>range_key</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span>
1298
- <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span>
1299
- <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_value</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span>
1374
+
1375
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_value</span><span class='rbracket'>]</span>
1376
+ <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_value</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span>
1300
1377
  <span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_greater_than</span><span class='rbracket'>]</span>
1301
- <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_greater_than</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1378
+ <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_greater_than</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1302
1379
  <span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_less_than</span><span class='rbracket'>]</span>
1303
- <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_less_than</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1380
+ <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_less_than</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1304
1381
  <span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_gte</span><span class='rbracket'>]</span>
1305
- <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&gt;=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_gte</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1382
+ <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&gt;=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_gte</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1306
1383
  <span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_lte</span><span class='rbracket'>]</span>
1307
- <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&lt;=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_lte</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1384
+ <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</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_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_range_key'>range_key</span><span class='rbracket'>]</span> <span class='op'>&lt;=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:range_lte</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1308
1385
  <span class='kw'>else</span>
1309
- <span class='id identifier rubyid_get_item'>get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
1386
+ <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_find_all'>find_all</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='id identifier rubyid_hash_key'>hash_key</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_id'>id</span><span class='rbrace'>}</span>
1310
1387
  <span class='kw'>end</span>
1388
+
1389
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_drop_till_start'>drop_till_start</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:next_token</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_range_key'>range_key</span><span class='comma'>,</span> <span class='id identifier rubyid_hash_key'>hash_key</span><span class='rparen'>)</span>
1390
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_results'>results</span><span class='period'>.</span><span class='id identifier rubyid_take'>take</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:limit</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:limit</span><span class='rbracket'>]</span>
1391
+ <span class='id identifier rubyid_results'>results</span>
1311
1392
  <span class='kw'>end</span></pre>
1312
1393
  </td>
1313
1394
  </tr>
@@ -1370,7 +1451,7 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
1370
1451
  <div class="method_details ">
1371
1452
  <p class="signature " id="scan-instance_method">
1372
1453
 
1373
- - (<tt>Array</tt>) <strong>scan</strong>(table_name, scan_hash)
1454
+ - (<tt>Array</tt>) <strong>scan</strong>(table_name, scan_hash, opts = {})
1374
1455
 
1375
1456
 
1376
1457
 
@@ -1456,17 +1537,23 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
1456
1537
  <pre class="lines">
1457
1538
 
1458
1539
 
1459
- 161
1460
- 162
1461
- 163
1462
- 164</pre>
1540
+ 172
1541
+ 173
1542
+ 174
1543
+ 175
1544
+ 176
1545
+ 177
1546
+ 178</pre>
1463
1547
  </td>
1464
1548
  <td>
1465
- <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 161</span>
1549
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 172</span>
1466
1550
 
1467
- <span class='kw'>def</span> <span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_scan_hash'>scan_hash</span><span class='rparen'>)</span>
1551
+ <span class='kw'>def</span> <span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_scan_hash'>scan_hash</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1468
1552
  <span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1469
- <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_d'>d</span><span class='op'>|</span> <span class='id identifier rubyid_scan_hash'>scan_hash</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='op'>!</span><span class='id identifier rubyid_d'>d</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</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_d'>d</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_v'>v</span><span class='rbrace'>}</span><span class='rbrace'>}</span>
1553
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_d'>d</span><span class='op'>|</span> <span class='id identifier rubyid_scan_hash'>scan_hash</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='op'>!</span><span class='id identifier rubyid_d'>d</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</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_d'>d</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_v'>v</span><span class='rbrace'>}</span><span class='rbrace'>}</span>
1554
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_drop_till_start'>drop_till_start</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:next_token</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:range_key</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:hash_key</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1555
+ <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_results'>results</span><span class='period'>.</span><span class='id identifier rubyid_take'>take</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:limit</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:limit</span><span class='rbracket'>]</span>
1556
+ <span class='id identifier rubyid_results'>results</span>
1470
1557
  <span class='kw'>end</span></pre>
1471
1558
  </td>
1472
1559
  </tr>
@@ -1478,7 +1565,7 @@ All tests pass with either this or connecting to the real DynamoDB, and that's g
1478
1565
  </div>
1479
1566
 
1480
1567
  <div id="footer">
1481
- Generated on Tue Mar 27 17:53:07 2012 by
1568
+ Generated on Thu Apr 26 01:26:25 2012 by
1482
1569
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1483
1570
  0.7.5 (ruby-1.9.3).
1484
1571
  </div>
@@ -81,7 +81,7 @@
81
81
 
82
82
  <dt class="r1 last">Defined in:</dt>
83
83
  <dd class="r1 last">lib/dynamoid/associations.rb<span class="defines">,<br />
84
- lib/dynamoid/associations/has_one.rb,<br /> lib/dynamoid/associations/has_many.rb,<br /> lib/dynamoid/associations/belongs_to.rb,<br /> lib/dynamoid/associations/association.rb,<br /> lib/dynamoid/associations/has_and_belongs_to_many.rb</span>
84
+ lib/dynamoid/associations/has_one.rb,<br /> lib/dynamoid/associations/has_many.rb,<br /> lib/dynamoid/associations/belongs_to.rb,<br /> lib/dynamoid/associations/association.rb,<br /> lib/dynamoid/associations/many_association.rb,<br /> lib/dynamoid/associations/single_association.rb,<br /> lib/dynamoid/associations/has_and_belongs_to_many.rb</span>
85
85
  </dd>
86
86
 
87
87
  </dl>
@@ -101,7 +101,7 @@
101
101
  <p class="children">
102
102
 
103
103
 
104
- <strong class="modules">Modules:</strong> <span class='object_link'><a href="Associations/Association.html" title="Dynamoid::Associations::Association (module)">Association</a></span>, <span class='object_link'><a href="Associations/ClassMethods.html" title="Dynamoid::Associations::ClassMethods (module)">ClassMethods</a></span>
104
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Associations/Association.html" title="Dynamoid::Associations::Association (module)">Association</a></span>, <span class='object_link'><a href="Associations/ClassMethods.html" title="Dynamoid::Associations::ClassMethods (module)">ClassMethods</a></span>, <span class='object_link'><a href="Associations/ManyAssociation.html" title="Dynamoid::Associations::ManyAssociation (module)">ManyAssociation</a></span>, <span class='object_link'><a href="Associations/SingleAssociation.html" title="Dynamoid::Associations::SingleAssociation (module)">SingleAssociation</a></span>
105
105
 
106
106
 
107
107
 
@@ -122,7 +122,7 @@
122
122
  </div>
123
123
 
124
124
  <div id="footer">
125
- Generated on Tue Mar 27 17:53:06 2012 by
125
+ Generated on Thu Apr 26 01:26:25 2012 by
126
126
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
127
127
  0.7.5 (ruby-1.9.3).
128
128
  </div>
@@ -68,19 +68,15 @@
68
68
 
69
69
 
70
70
 
71
- <dt class="r1">Includes:</dt>
72
- <dd class="r1">Enumerable</dd>
73
-
74
-
75
71
 
76
72
 
77
- <dt class="r2">Included in:</dt>
78
- <dd class="r2"><span class='object_link'><a href="BelongsTo.html" title="Dynamoid::Associations::BelongsTo (class)">BelongsTo</a></span>, <span class='object_link'><a href="HasAndBelongsToMany.html" title="Dynamoid::Associations::HasAndBelongsToMany (class)">HasAndBelongsToMany</a></span>, <span class='object_link'><a href="HasMany.html" title="Dynamoid::Associations::HasMany (class)">HasMany</a></span>, <span class='object_link'><a href="HasOne.html" title="Dynamoid::Associations::HasOne (class)">HasOne</a></span></dd>
73
+ <dt class="r1">Included in:</dt>
74
+ <dd class="r1"><span class='object_link'><a href="HasOne.html" title="Dynamoid::Associations::HasOne (class)">HasOne</a></span>, <span class='object_link'><a href="ManyAssociation.html" title="Dynamoid::Associations::ManyAssociation (module)">ManyAssociation</a></span>, <span class='object_link'><a href="SingleAssociation.html" title="Dynamoid::Associations::SingleAssociation (module)">SingleAssociation</a></span></dd>
79
75
 
80
76
 
81
77
 
82
- <dt class="r1 last">Defined in:</dt>
83
- <dd class="r1 last">lib/dynamoid/associations/association.rb</dd>
78
+ <dt class="r2 last">Defined in:</dt>
79
+ <dd class="r2 last">lib/dynamoid/associations/association.rb</dd>
84
80
 
85
81
  </dl>
86
82
  <div class="clear"></div>
@@ -95,7 +91,7 @@
95
91
  <li class="public ">
96
92
  <span class="summary_signature">
97
93
 
98
- <a href="#name-instance_method" title="#name (instance method)">- (Object) <strong>name</strong> </a>
94
+ <a href="#loaded-instance_method" title="#loaded (instance method)">- (Object) <strong>loaded</strong> </a>
99
95
 
100
96
 
101
97
 
@@ -111,7 +107,7 @@
111
107
 
112
108
 
113
109
 
114
- <span class="summary_desc"><div class='inline'><p>Returns the value of attribute name.</p>
110
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute loaded.</p>
115
111
  </div></span>
116
112
 
117
113
  </li>
@@ -120,7 +116,7 @@
120
116
  <li class="public ">
121
117
  <span class="summary_signature">
122
118
 
123
- <a href="#options-instance_method" title="#options (instance method)">- (Object) <strong>options</strong> </a>
119
+ <a href="#name-instance_method" title="#name (instance method)">- (Object) <strong>name</strong> </a>
124
120
 
125
121
 
126
122
 
@@ -136,7 +132,7 @@
136
132
 
137
133
 
138
134
 
139
- <span class="summary_desc"><div class='inline'><p>Returns the value of attribute options.</p>
135
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute name.</p>
140
136
  </div></span>
141
137
 
142
138
  </li>
@@ -145,7 +141,7 @@
145
141
  <li class="public ">
146
142
  <span class="summary_signature">
147
143
 
148
- <a href="#query-instance_method" title="#query (instance method)">- (Object) <strong>query</strong> </a>
144
+ <a href="#options-instance_method" title="#options (instance method)">- (Object) <strong>options</strong> </a>
149
145
 
150
146
 
151
147
 
@@ -161,7 +157,7 @@
161
157
 
162
158
 
163
159
 
164
- <span class="summary_desc"><div class='inline'><p>Returns the value of attribute query.</p>
160
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute options.</p>
165
161
  </div></span>
166
162
 
167
163
  </li>
@@ -208,161 +204,7 @@
208
204
  <li class="public ">
209
205
  <span class="summary_signature">
210
206
 
211
- <a href="#%3C%3C-instance_method" title="#&lt;&lt; (instance method)">- (Dynamoid::Document) <strong>&lt;&lt;</strong>(object) </a>
212
-
213
-
214
-
215
- </span>
216
-
217
-
218
-
219
-
220
-
221
-
222
-
223
-
224
- <span class="summary_desc"><div class='inline'><p>Add an object or array of objects to an association.</p>
225
- </div></span>
226
-
227
- </li>
228
-
229
-
230
- <li class="public ">
231
- <span class="summary_signature">
232
-
233
- <a href="#create-instance_method" title="#create (instance method)">- (Dynamoid::Document) <strong>create</strong>(attributes = {}) </a>
234
-
235
-
236
-
237
- </span>
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
- <span class="summary_desc"><div class='inline'><p>Create a new instance of the target class and add it directly to the association.</p>
247
- </div></span>
248
-
249
- </li>
250
-
251
-
252
- <li class="public ">
253
- <span class="summary_signature">
254
-
255
- <a href="#create%21-instance_method" title="#create! (instance method)">- (Dynamoid::Document) <strong>create!</strong>(attributes = {}) </a>
256
-
257
-
258
-
259
- </span>
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
- <span class="summary_desc"><div class='inline'><p>Create a new instance of the target class and add it directly to the association.</p>
269
- </div></span>
270
-
271
- </li>
272
-
273
-
274
- <li class="public ">
275
- <span class="summary_signature">
276
-
277
- <a href="#delete-instance_method" title="#delete (instance method)">- (Dynamoid::Document) <strong>delete</strong>(object) </a>
278
-
279
-
280
-
281
- </span>
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
- <span class="summary_desc"><div class='inline'><p>Deletes an object or array of objects from the association.</p>
291
- </div></span>
292
-
293
- </li>
294
-
295
-
296
- <li class="public ">
297
- <span class="summary_signature">
298
-
299
- <a href="#delete_all-instance_method" title="#delete_all (instance method)">- (Object) <strong>delete_all</strong> </a>
300
-
301
-
302
-
303
- </span>
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
- <span class="summary_desc"><div class='inline'><p>Deletes all members of the association and removes them from the association.</p>
313
- </div></span>
314
-
315
- </li>
316
-
317
-
318
- <li class="public ">
319
- <span class="summary_signature">
320
-
321
- <a href="#destroy_all-instance_method" title="#destroy_all (instance method)">- (Object) <strong>destroy_all</strong> </a>
322
-
323
-
324
-
325
- </span>
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
- <span class="summary_desc"><div class='inline'><p>Destroys all members of the association and removes them from the association.</p>
335
- </div></span>
336
-
337
- </li>
338
-
339
-
340
- <li class="public ">
341
- <span class="summary_signature">
342
-
343
- <a href="#each-instance_method" title="#each (instance method)">- (Dynamoid::Document) <strong>each</strong>(&amp;block) </a>
344
-
345
-
346
-
347
- </span>
348
-
349
-
350
-
351
-
352
-
353
-
354
-
355
-
356
- <span class="summary_desc"><div class='inline'><p>Create a new instance of the target class and add it directly to the association.</p>
357
- </div></span>
358
-
359
- </li>
360
-
361
-
362
- <li class="public ">
363
- <span class="summary_signature">
364
-
365
- <a href="#include%3F-instance_method" title="#include? (instance method)">- (Boolean) <strong>include?</strong>(object) </a>
207
+ <a href="#find_target-instance_method" title="#find_target (instance method)">- (Object) <strong>find_target</strong> </a>
366
208
 
367
209
 
368
210
 
@@ -375,8 +217,7 @@
375
217
 
376
218
 
377
219
 
378
- <span class="summary_desc"><div class='inline'><p>Delegate include? to the records.</p>
379
- </div></span>
220
+ <span class="summary_desc"><div class='inline'></div></span>
380
221
 
381
222
  </li>
382
223
 
@@ -406,12 +247,10 @@
406
247
  <li class="public ">
407
248
  <span class="summary_signature">
408
249
 
409
- <a href="#records-instance_method" title="#records (instance method)">- (Object) <strong>records</strong> </a>
250
+ <a href="#loaded%3F-instance_method" title="#loaded? (instance method)">- (Boolean) <strong>loaded?</strong> </a>
410
251
 
411
252
 
412
253
 
413
- (also: #all)
414
-
415
254
  </span>
416
255
 
417
256
 
@@ -421,8 +260,7 @@
421
260
 
422
261
 
423
262
 
424
- <span class="summary_desc"><div class='inline'><p>The records associated to the source.</p>
425
- </div></span>
263
+ <span class="summary_desc"><div class='inline'></div></span>
426
264
 
427
265
  </li>
428
266
 
@@ -430,7 +268,7 @@
430
268
  <li class="public ">
431
269
  <span class="summary_signature">
432
270
 
433
- <a href="#setter-instance_method" title="#setter (instance method)">- (Dynamoid::Document) <strong>setter</strong>(object) </a>
271
+ <a href="#reset-instance_method" title="#reset (instance method)">- (Object) <strong>reset</strong> </a>
434
272
 
435
273
 
436
274
 
@@ -443,8 +281,7 @@
443
281
 
444
282
 
445
283
 
446
- <span class="summary_desc"><div class='inline'><p>Replace an association with object or array of objects.</p>
447
- </div></span>
284
+ <span class="summary_desc"><div class='inline'></div></span>
448
285
 
449
286
  </li>
450
287
 
@@ -452,7 +289,7 @@
452
289
  <li class="public ">
453
290
  <span class="summary_signature">
454
291
 
455
- <a href="#where-instance_method" title="#where (instance method)">- (Dynamoid::Association) <strong>where</strong>(args) </a>
292
+ <a href="#target-instance_method" title="#target (instance method)">- (Object) <strong>target</strong> </a>
456
293
 
457
294
 
458
295
 
@@ -465,8 +302,7 @@
465
302
 
466
303
 
467
304
 
468
- <span class="summary_desc"><div class='inline'><p>Naive association filtering.</p>
469
- </div></span>
305
+ <span class="summary_desc"><div class='inline'></div></span>
470
306
 
471
307
  </li>
472
308
 
@@ -475,23 +311,22 @@
475
311
 
476
312
 
477
313
 
478
-
479
314
  <div id="instance_attr_details" class="attr_details">
480
315
  <h2>Instance Attribute Details</h2>
481
316
 
482
317
 
483
- <span id="name=-instance_method"></span>
484
- <span id="name-instance_method"></span>
318
+ <span id="loaded=-instance_method"></span>
319
+ <span id="loaded-instance_method"></span>
485
320
  <div class="method_details first">
486
- <p class="signature first" id="name-instance_method">
321
+ <p class="signature first" id="loaded-instance_method">
487
322
 
488
- - (<tt>Object</tt>) <strong>name</strong>
323
+ - (<tt>Object</tt>) <strong>loaded</strong>
489
324
 
490
325
 
491
326
 
492
327
  </p><div class="docstring">
493
328
  <div class="discussion">
494
- <p>Returns the value of attribute name</p>
329
+ <p>Returns the value of attribute loaded</p>
495
330
 
496
331
 
497
332
  </div>
@@ -512,8 +347,8 @@
512
347
  <td>
513
348
  <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 9</span>
514
349
 
515
- <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
516
- <span class='ivar'>@name</span>
350
+ <span class='kw'>def</span> <span class='id identifier rubyid_loaded'>loaded</span>
351
+ <span class='ivar'>@loaded</span>
517
352
  <span class='kw'>end</span></pre>
518
353
  </td>
519
354
  </tr>
@@ -521,18 +356,18 @@
521
356
  </div>
522
357
 
523
358
 
524
- <span id="options=-instance_method"></span>
525
- <span id="options-instance_method"></span>
359
+ <span id="name=-instance_method"></span>
360
+ <span id="name-instance_method"></span>
526
361
  <div class="method_details ">
527
- <p class="signature " id="options-instance_method">
362
+ <p class="signature " id="name-instance_method">
528
363
 
529
- - (<tt>Object</tt>) <strong>options</strong>
364
+ - (<tt>Object</tt>) <strong>name</strong>
530
365
 
531
366
 
532
367
 
533
368
  </p><div class="docstring">
534
369
  <div class="discussion">
535
- <p>Returns the value of attribute options</p>
370
+ <p>Returns the value of attribute name</p>
536
371
 
537
372
 
538
373
  </div>
@@ -553,8 +388,8 @@
553
388
  <td>
554
389
  <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 9</span>
555
390
 
556
- <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span>
557
- <span class='ivar'>@options</span>
391
+ <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
392
+ <span class='ivar'>@name</span>
558
393
  <span class='kw'>end</span></pre>
559
394
  </td>
560
395
  </tr>
@@ -562,18 +397,18 @@
562
397
  </div>
563
398
 
564
399
 
565
- <span id="query=-instance_method"></span>
566
- <span id="query-instance_method"></span>
400
+ <span id="options=-instance_method"></span>
401
+ <span id="options-instance_method"></span>
567
402
  <div class="method_details ">
568
- <p class="signature " id="query-instance_method">
403
+ <p class="signature " id="options-instance_method">
569
404
 
570
- - (<tt>Object</tt>) <strong>query</strong>
405
+ - (<tt>Object</tt>) <strong>options</strong>
571
406
 
572
407
 
573
408
 
574
409
  </p><div class="docstring">
575
410
  <div class="discussion">
576
- <p>Returns the value of attribute query</p>
411
+ <p>Returns the value of attribute options</p>
577
412
 
578
413
 
579
414
  </div>
@@ -594,8 +429,8 @@
594
429
  <td>
595
430
  <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 9</span>
596
431
 
597
- <span class='kw'>def</span> <span class='id identifier rubyid_query'>query</span>
598
- <span class='ivar'>@query</span>
432
+ <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span>
433
+ <span class='ivar'>@options</span>
599
434
  <span class='kw'>end</span></pre>
600
435
  </td>
601
436
  </tr>
@@ -651,93 +486,25 @@
651
486
 
652
487
 
653
488
  <div class="method_details first">
654
- <p class="signature first" id="<<-instance_method">
655
-
656
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>&lt;&lt;</strong>(object)
657
-
658
-
659
-
660
- </p><div class="docstring">
661
- <div class="discussion">
662
- <p>Add an object or array of objects to an association. This preserves the current records in the association (if any)
663
- and adds the object to the target association if it is detected to exist.</p>
664
-
665
-
666
- </div>
667
- </div>
668
- <div class="tags">
669
- <h3>Parameters:</h3>
670
- <ul class="param">
489
+ <p class="signature first" id="find_target-instance_method">
671
490
 
672
- <li>
673
-
674
- <span class='name'>object</span>
675
-
676
-
677
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
678
-
679
-
680
-
681
- &mdash;
682
- <div class='inline'><p>the object (or array of objects) to add to the association</p>
683
- </div>
684
-
685
- </li>
491
+ - (<tt>Object</tt>) <strong>find_target</strong>
686
492
 
687
- </ul>
688
493
 
689
- <h3>Returns:</h3>
690
- <ul class="return">
691
-
692
- <li>
693
-
694
-
695
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
696
-
697
-
698
-
699
- &mdash;
700
- <div class='inline'><p>the added object</p>
701
- </div>
702
-
703
- </li>
704
-
705
- </ul>
706
- <h3>Since:</h3>
707
- <ul class="since">
708
494
 
709
- <li>
710
-
711
-
712
-
713
-
714
-
715
- <div class='inline'><p>0.2.0</p>
716
- </div>
717
-
718
- </li>
719
-
720
- </ul>
721
-
722
- </div><table class="source_code">
495
+ </p><table class="source_code">
723
496
  <tr>
724
497
  <td>
725
498
  <pre class="lines">
726
499
 
727
500
 
728
- 83
729
- 84
730
- 85
731
- 86
732
- 87</pre>
501
+ 34
502
+ 35</pre>
733
503
  </td>
734
504
  <td>
735
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 83</span>
505
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 34</span>
736
506
 
737
- <span class='kw'>def</span> <span class='op'>&lt;&lt;</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
738
- <span class='id identifier rubyid_source'>source</span><span class='period'>.</span><span class='id identifier rubyid_update_attribute'>update_attribute</span><span class='lparen'>(</span><span class='id identifier rubyid_source_attribute'>source_attribute</span><span class='comma'>,</span> <span class='id identifier rubyid_source_ids'>source_ids</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</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'>:id</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
739
- <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</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_o'>o</span><span class='op'>|</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:associate_target</span><span class='comma'>,</span> <span class='id identifier rubyid_o'>o</span><span class='rparen'>)</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_target_association'>target_association</span>
740
- <span class='id identifier rubyid_object'>object</span>
507
+ <span class='kw'>def</span> <span class='id identifier rubyid_find_target'>find_target</span>
741
508
  <span class='kw'>end</span></pre>
742
509
  </td>
743
510
  </tr>
@@ -745,15 +512,15 @@ and adds the object to the target association if it is detected to exist.</p>
745
512
  </div>
746
513
 
747
514
  <div class="method_details ">
748
- <p class="signature " id="create-instance_method">
515
+ <p class="signature " id="initialize-instance_method">
749
516
 
750
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>create</strong>(attributes = {})
517
+ - (<tt>Dynamoid::Association</tt>) <strong>initialize</strong>(source, name, options)
751
518
 
752
519
 
753
520
 
754
521
  </p><div class="docstring">
755
522
  <div class="discussion">
756
- <p>Create a new instance of the target class and add it directly to the association.</p>
523
+ <p>Create a new association.</p>
757
524
 
758
525
 
759
526
  </div>
@@ -764,556 +531,30 @@ and adds the object to the target association if it is detected to exist.</p>
764
531
 
765
532
  <li>
766
533
 
767
- <span class='name'>attribute</span>
534
+ <span class='name'>source</span>
768
535
 
769
536
 
770
- <span class='type'>(<tt>Hash</tt>)</span>
537
+ <span class='type'>(<tt>Class</tt>)</span>
771
538
 
772
539
 
773
540
 
774
541
  &mdash;
775
- <div class='inline'><p>hash for the new object</p>
542
+ <div class='inline'><p>the source record of the association; that is, the record that you already have</p>
776
543
  </div>
777
544
 
778
545
  </li>
779
546
 
780
- </ul>
781
-
782
- <h3>Returns:</h3>
783
- <ul class="return">
784
-
785
547
  <li>
786
548
 
549
+ <span class='name'>name</span>
550
+
787
551
 
788
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
552
+ <span class='type'>(<tt>Symbol</tt>)</span>
789
553
 
790
554
 
791
555
 
792
556
  &mdash;
793
- <div class='inline'><p>the newly-created object</p>
794
- </div>
795
-
796
- </li>
797
-
798
- </ul>
799
- <h3>Since:</h3>
800
- <ul class="since">
801
-
802
- <li>
803
-
804
-
805
-
806
-
807
-
808
- <div class='inline'><p>0.2.0</p>
809
- </div>
810
-
811
- </li>
812
-
813
- </ul>
814
-
815
- </div><table class="source_code">
816
- <tr>
817
- <td>
818
- <pre class="lines">
819
-
820
-
821
- 110
822
- 111
823
- 112</pre>
824
- </td>
825
- <td>
826
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 110</span>
827
-
828
- <span class='kw'>def</span> <span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
829
- <span class='kw'>self</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_target_class'>target_class</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
830
- <span class='kw'>end</span></pre>
831
- </td>
832
- </tr>
833
- </table>
834
- </div>
835
-
836
- <div class="method_details ">
837
- <p class="signature " id="create!-instance_method">
838
-
839
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>create!</strong>(attributes = {})
840
-
841
-
842
-
843
- </p><div class="docstring">
844
- <div class="discussion">
845
- <p>Create a new instance of the target class and add it directly to the association. If the create fails an exception will be raised.</p>
846
-
847
-
848
- </div>
849
- </div>
850
- <div class="tags">
851
- <h3>Parameters:</h3>
852
- <ul class="param">
853
-
854
- <li>
855
-
856
- <span class='name'>attribute</span>
857
-
858
-
859
- <span class='type'>(<tt>Hash</tt>)</span>
860
-
861
-
862
-
863
- &mdash;
864
- <div class='inline'><p>hash for the new object</p>
865
- </div>
866
-
867
- </li>
868
-
869
- </ul>
870
-
871
- <h3>Returns:</h3>
872
- <ul class="return">
873
-
874
- <li>
875
-
876
-
877
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
878
-
879
-
880
-
881
- &mdash;
882
- <div class='inline'><p>the newly-created object</p>
883
- </div>
884
-
885
- </li>
886
-
887
- </ul>
888
- <h3>Since:</h3>
889
- <ul class="since">
890
-
891
- <li>
892
-
893
-
894
-
895
-
896
-
897
- <div class='inline'><p>0.2.0</p>
898
- </div>
899
-
900
- </li>
901
-
902
- </ul>
903
-
904
- </div><table class="source_code">
905
- <tr>
906
- <td>
907
- <pre class="lines">
908
-
909
-
910
- 121
911
- 122
912
- 123</pre>
913
- </td>
914
- <td>
915
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 121</span>
916
-
917
- <span class='kw'>def</span> <span class='id identifier rubyid_create!'>create!</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
918
- <span class='kw'>self</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_target_class'>target_class</span><span class='period'>.</span><span class='id identifier rubyid_create!'>create!</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
919
- <span class='kw'>end</span></pre>
920
- </td>
921
- </tr>
922
- </table>
923
- </div>
924
-
925
- <div class="method_details ">
926
- <p class="signature " id="delete-instance_method">
927
-
928
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>delete</strong>(object)
929
-
930
-
931
-
932
- </p><div class="docstring">
933
- <div class="discussion">
934
- <p>Deletes an object or array of objects from the association. This removes their records from the association field on the source,
935
- and attempts to remove the source from the target association if it is detected to exist.</p>
936
-
937
-
938
- </div>
939
- </div>
940
- <div class="tags">
941
- <h3>Parameters:</h3>
942
- <ul class="param">
943
-
944
- <li>
945
-
946
- <span class='name'>object</span>
947
-
948
-
949
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
950
-
951
-
952
-
953
- &mdash;
954
- <div class='inline'><p>the object (or array of objects) to remove from the association</p>
955
- </div>
956
-
957
- </li>
958
-
959
- </ul>
960
-
961
- <h3>Returns:</h3>
962
- <ul class="return">
963
-
964
- <li>
965
-
966
-
967
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
968
-
969
-
970
-
971
- &mdash;
972
- <div class='inline'><p>the deleted object</p>
973
- </div>
974
-
975
- </li>
976
-
977
- </ul>
978
- <h3>Since:</h3>
979
- <ul class="since">
980
-
981
- <li>
982
-
983
-
984
-
985
-
986
-
987
- <div class='inline'><p>0.2.0</p>
988
- </div>
989
-
990
- </li>
991
-
992
- </ul>
993
-
994
- </div><table class="source_code">
995
- <tr>
996
- <td>
997
- <pre class="lines">
998
-
999
-
1000
- 69
1001
- 70
1002
- 71
1003
- 72
1004
- 73</pre>
1005
- </td>
1006
- <td>
1007
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 69</span>
1008
-
1009
- <span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
1010
- <span class='id identifier rubyid_source'>source</span><span class='period'>.</span><span class='id identifier rubyid_update_attribute'>update_attribute</span><span class='lparen'>(</span><span class='id identifier rubyid_source_attribute'>source_attribute</span><span class='comma'>,</span> <span class='id identifier rubyid_source_ids'>source_ids</span> <span class='op'>-</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</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'>:id</span><span class='rparen'>)</span><span class='rparen'>)</span>
1011
- <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</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_o'>o</span><span class='op'>|</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:disassociate_target</span><span class='comma'>,</span> <span class='id identifier rubyid_o'>o</span><span class='rparen'>)</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_target_association'>target_association</span>
1012
- <span class='id identifier rubyid_object'>object</span>
1013
- <span class='kw'>end</span></pre>
1014
- </td>
1015
- </tr>
1016
- </table>
1017
- </div>
1018
-
1019
- <div class="method_details ">
1020
- <p class="signature " id="delete_all-instance_method">
1021
-
1022
- - (<tt>Object</tt>) <strong>delete_all</strong>
1023
-
1024
-
1025
-
1026
- </p><div class="docstring">
1027
- <div class="discussion">
1028
- <p>Deletes all members of the association and removes them from the association.</p>
1029
-
1030
-
1031
- </div>
1032
- </div>
1033
- <div class="tags">
1034
-
1035
- <h3>Since:</h3>
1036
- <ul class="since">
1037
-
1038
- <li>
1039
-
1040
-
1041
-
1042
-
1043
-
1044
- <div class='inline'><p>0.2.0</p>
1045
- </div>
1046
-
1047
- </li>
1048
-
1049
- </ul>
1050
-
1051
- </div><table class="source_code">
1052
- <tr>
1053
- <td>
1054
- <pre class="lines">
1055
-
1056
-
1057
- 161
1058
- 162
1059
- 163
1060
- 164
1061
- 165</pre>
1062
- </td>
1063
- <td>
1064
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 161</span>
1065
-
1066
- <span class='kw'>def</span> <span class='id identifier rubyid_delete_all'>delete_all</span>
1067
- <span class='id identifier rubyid_objs'>objs</span> <span class='op'>=</span> <span class='id identifier rubyid_records'>records</span>
1068
- <span class='id identifier rubyid_source'>source</span><span class='period'>.</span><span class='id identifier rubyid_update_attribute'>update_attribute</span><span class='lparen'>(</span><span class='id identifier rubyid_source_attribute'>source_attribute</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1069
- <span class='id identifier rubyid_objs'>objs</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:delete</span><span class='rparen'>)</span>
1070
- <span class='kw'>end</span></pre>
1071
- </td>
1072
- </tr>
1073
- </table>
1074
- </div>
1075
-
1076
- <div class="method_details ">
1077
- <p class="signature " id="destroy_all-instance_method">
1078
-
1079
- - (<tt>Object</tt>) <strong>destroy_all</strong>
1080
-
1081
-
1082
-
1083
- </p><div class="docstring">
1084
- <div class="discussion">
1085
- <p>Destroys all members of the association and removes them from the association.</p>
1086
-
1087
-
1088
- </div>
1089
- </div>
1090
- <div class="tags">
1091
-
1092
- <h3>Since:</h3>
1093
- <ul class="since">
1094
-
1095
- <li>
1096
-
1097
-
1098
-
1099
-
1100
-
1101
- <div class='inline'><p>0.2.0</p>
1102
- </div>
1103
-
1104
- </li>
1105
-
1106
- </ul>
1107
-
1108
- </div><table class="source_code">
1109
- <tr>
1110
- <td>
1111
- <pre class="lines">
1112
-
1113
-
1114
- 152
1115
- 153
1116
- 154
1117
- 155
1118
- 156</pre>
1119
- </td>
1120
- <td>
1121
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 152</span>
1122
-
1123
- <span class='kw'>def</span> <span class='id identifier rubyid_destroy_all'>destroy_all</span>
1124
- <span class='id identifier rubyid_objs'>objs</span> <span class='op'>=</span> <span class='id identifier rubyid_records'>records</span>
1125
- <span class='id identifier rubyid_source'>source</span><span class='period'>.</span><span class='id identifier rubyid_update_attribute'>update_attribute</span><span class='lparen'>(</span><span class='id identifier rubyid_source_attribute'>source_attribute</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1126
- <span class='id identifier rubyid_objs'>objs</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:destroy</span><span class='rparen'>)</span>
1127
- <span class='kw'>end</span></pre>
1128
- </td>
1129
- </tr>
1130
- </table>
1131
- </div>
1132
-
1133
- <div class="method_details ">
1134
- <p class="signature " id="each-instance_method">
1135
-
1136
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>each</strong>(&amp;block)
1137
-
1138
-
1139
-
1140
- </p><div class="docstring">
1141
- <div class="discussion">
1142
- <p>Create a new instance of the target class and add it directly to the association. If the create fails an exception will be raised.</p>
1143
-
1144
-
1145
- </div>
1146
- </div>
1147
- <div class="tags">
1148
- <h3>Parameters:</h3>
1149
- <ul class="param">
1150
-
1151
- <li>
1152
-
1153
- <span class='name'>attribute</span>
1154
-
1155
-
1156
- <span class='type'>(<tt>Hash</tt>)</span>
1157
-
1158
-
1159
-
1160
- &mdash;
1161
- <div class='inline'><p>hash for the new object</p>
1162
- </div>
1163
-
1164
- </li>
1165
-
1166
- </ul>
1167
-
1168
- <h3>Returns:</h3>
1169
- <ul class="return">
1170
-
1171
- <li>
1172
-
1173
-
1174
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
1175
-
1176
-
1177
-
1178
- &mdash;
1179
- <div class='inline'><p>the newly-created object</p>
1180
- </div>
1181
-
1182
- </li>
1183
-
1184
- </ul>
1185
- <h3>Since:</h3>
1186
- <ul class="since">
1187
-
1188
- <li>
1189
-
1190
-
1191
-
1192
-
1193
-
1194
- <div class='inline'><p>0.2.0</p>
1195
- </div>
1196
-
1197
- </li>
1198
-
1199
- </ul>
1200
-
1201
- </div><table class="source_code">
1202
- <tr>
1203
- <td>
1204
- <pre class="lines">
1205
-
1206
-
1207
- 145
1208
- 146
1209
- 147</pre>
1210
- </td>
1211
- <td>
1212
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 145</span>
1213
-
1214
- <span class='kw'>def</span> <span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1215
- <span class='id identifier rubyid_records'>records</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1216
- <span class='kw'>end</span></pre>
1217
- </td>
1218
- </tr>
1219
- </table>
1220
- </div>
1221
-
1222
- <div class="method_details ">
1223
- <p class="signature " id="include?-instance_method">
1224
-
1225
- - (<tt>Boolean</tt>) <strong>include?</strong>(object)
1226
-
1227
-
1228
-
1229
- </p><div class="docstring">
1230
- <div class="discussion">
1231
- <p>Delegate include? to the records.</p>
1232
-
1233
-
1234
- </div>
1235
- </div>
1236
- <div class="tags">
1237
-
1238
- <h3>Returns:</h3>
1239
- <ul class="return">
1240
-
1241
- <li>
1242
-
1243
-
1244
- <span class='type'>(<tt>Boolean</tt>)</span>
1245
-
1246
-
1247
-
1248
- </li>
1249
-
1250
- </ul>
1251
-
1252
- </div><table class="source_code">
1253
- <tr>
1254
- <td>
1255
- <pre class="lines">
1256
-
1257
-
1258
- 55
1259
- 56
1260
- 57</pre>
1261
- </td>
1262
- <td>
1263
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 55</span>
1264
-
1265
- <span class='kw'>def</span> <span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
1266
- <span class='id identifier rubyid_records'>records</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
1267
- <span class='kw'>end</span></pre>
1268
- </td>
1269
- </tr>
1270
- </table>
1271
- </div>
1272
-
1273
- <div class="method_details ">
1274
- <p class="signature " id="initialize-instance_method">
1275
-
1276
- - (<tt>Dynamoid::Association</tt>) <strong>initialize</strong>(source, name, options)
1277
-
1278
-
1279
-
1280
- </p><div class="docstring">
1281
- <div class="discussion">
1282
- <p>Create a new association.</p>
1283
-
1284
-
1285
- </div>
1286
- </div>
1287
- <div class="tags">
1288
- <h3>Parameters:</h3>
1289
- <ul class="param">
1290
-
1291
- <li>
1292
-
1293
- <span class='name'>source</span>
1294
-
1295
-
1296
- <span class='type'>(<tt>Class</tt>)</span>
1297
-
1298
-
1299
-
1300
- &mdash;
1301
- <div class='inline'><p>the source record of the association; that is, the record that you already have</p>
1302
- </div>
1303
-
1304
- </li>
1305
-
1306
- <li>
1307
-
1308
- <span class='name'>name</span>
1309
-
1310
-
1311
- <span class='type'>(<tt>Symbol</tt>)</span>
1312
-
1313
-
1314
-
1315
- &mdash;
1316
- <div class='inline'><p>the name of the association</p>
557
+ <div class='inline'><p>the name of the association</p>
1317
558
  </div>
1318
559
 
1319
560
  </li>
@@ -1400,21 +641,21 @@ and attempts to remove the source from the target association if it is detected
1400
641
  <pre class="lines">
1401
642
 
1402
643
 
644
+ 23
645
+ 24
646
+ 25
647
+ 26
1403
648
  27
1404
- 28
1405
- 29
1406
- 30
1407
- 31
1408
- 32</pre>
649
+ 28</pre>
1409
650
  </td>
1410
651
  <td>
1411
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 27</span>
652
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 23</span>
1412
653
 
1413
654
  <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='rparen'>)</span>
1414
655
  <span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
1415
656
  <span class='ivar'>@options</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span>
1416
657
  <span class='ivar'>@source</span> <span class='op'>=</span> <span class='id identifier rubyid_source'>source</span>
1417
- <span class='ivar'>@query</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
658
+ <span class='ivar'>@loaded</span> <span class='op'>=</span> <span class='kw'>false</span>
1418
659
  <span class='kw'>end</span></pre>
1419
660
  </td>
1420
661
  </tr>
@@ -1422,20 +663,15 @@ and attempts to remove the source from the target association if it is detected
1422
663
  </div>
1423
664
 
1424
665
  <div class="method_details ">
1425
- <p class="signature " id="records-instance_method">
666
+ <p class="signature " id="loaded?-instance_method">
1426
667
 
1427
- - (<tt>Object</tt>) <strong>records</strong>
668
+ - (<tt>Boolean</tt>) <strong>loaded?</strong>
1428
669
 
1429
670
 
1430
671
 
1431
- <span class="aliases">Also known as:
1432
- <span class="names"><span id='all-instance_method'>all</span></span>
1433
- </span>
1434
-
1435
672
  </p><div class="docstring">
1436
673
  <div class="discussion">
1437
- <p>The records associated to the source.</p>
1438
-
674
+
1439
675
 
1440
676
  </div>
1441
677
  </div>
@@ -1447,28 +683,9 @@ and attempts to remove the source from the target association if it is detected
1447
683
  <li>
1448
684
 
1449
685
 
1450
- <span class='type'></span>
1451
-
1452
-
1453
-
1454
-
1455
- <div class='inline'><p>the association records; depending on which association this is, either a single instance or an array</p>
1456
- </div>
1457
-
1458
- </li>
1459
-
1460
- </ul>
1461
- <h3>Since:</h3>
1462
- <ul class="since">
1463
-
1464
- <li>
1465
-
1466
-
686
+ <span class='type'>(<tt>Boolean</tt>)</span>
1467
687
 
1468
688
 
1469
-
1470
- <div class='inline'><p>0.2.0</p>
1471
- </div>
1472
689
 
1473
690
  </li>
1474
691
 
@@ -1480,27 +697,15 @@ and attempts to remove the source from the target association if it is detected
1480
697
  <pre class="lines">
1481
698
 
1482
699
 
1483
- 43
1484
- 44
1485
- 45
1486
- 46
1487
- 47
1488
- 48
1489
- 49
1490
- 50
1491
- 51</pre>
700
+ 30
701
+ 31
702
+ 32</pre>
1492
703
  </td>
1493
704
  <td>
1494
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 43</span>
1495
-
1496
- <span class='kw'>def</span> <span class='id identifier rubyid_records'>records</span>
1497
- <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_target_class'>target_class</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span><span class='id identifier rubyid_source_ids'>source_ids</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='rparen'>)</span><span class='rparen'>)</span>
705
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 30</span>
1498
706
 
1499
- <span class='kw'>if</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1500
- <span class='id identifier rubyid_results'>results</span>
1501
- <span class='kw'>else</span>
1502
- <span class='id identifier rubyid_results_with_query'>results_with_query</span><span class='lparen'>(</span><span class='id identifier rubyid_results'>results</span><span class='rparen'>)</span>
1503
- <span class='kw'>end</span>
707
+ <span class='kw'>def</span> <span class='id identifier rubyid_loaded?'>loaded?</span>
708
+ <span class='ivar'>@loaded</span>
1504
709
  <span class='kw'>end</span></pre>
1505
710
  </td>
1506
711
  </tr>
@@ -1508,93 +713,29 @@ and attempts to remove the source from the target association if it is detected
1508
713
  </div>
1509
714
 
1510
715
  <div class="method_details ">
1511
- <p class="signature " id="setter-instance_method">
1512
-
1513
- - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>setter</strong>(object)
1514
-
1515
-
1516
-
1517
- </p><div class="docstring">
1518
- <div class="discussion">
1519
- <p>Replace an association with object or array of objects. This removes all of the existing associated records and replaces them with
1520
- the passed object(s), and associates the target association if it is detected to exist.</p>
1521
-
1522
-
1523
- </div>
1524
- </div>
1525
- <div class="tags">
1526
- <h3>Parameters:</h3>
1527
- <ul class="param">
716
+ <p class="signature " id="reset-instance_method">
1528
717
 
1529
- <li>
1530
-
1531
- <span class='name'>object</span>
1532
-
1533
-
1534
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
1535
-
1536
-
1537
-
1538
- &mdash;
1539
- <div class='inline'><p>the object (or array of objects) to add to the association</p>
1540
- </div>
1541
-
1542
- </li>
718
+ - (<tt>Object</tt>) <strong>reset</strong>
1543
719
 
1544
- </ul>
1545
720
 
1546
- <h3>Returns:</h3>
1547
- <ul class="return">
1548
-
1549
- <li>
1550
-
1551
-
1552
- <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span>
1553
-
1554
-
1555
-
1556
- &mdash;
1557
- <div class='inline'><p>the added object</p>
1558
- </div>
1559
-
1560
- </li>
1561
-
1562
- </ul>
1563
- <h3>Since:</h3>
1564
- <ul class="since">
1565
-
1566
- <li>
1567
-
1568
-
1569
-
1570
-
1571
-
1572
- <div class='inline'><p>0.2.0</p>
1573
- </div>
1574
-
1575
- </li>
1576
721
 
1577
- </ul>
1578
-
1579
- </div><table class="source_code">
722
+ </p><table class="source_code">
1580
723
  <tr>
1581
724
  <td>
1582
725
  <pre class="lines">
1583
726
 
1584
727
 
1585
- 97
1586
- 98
1587
- 99
1588
- 100
1589
- 101</pre>
728
+ 46
729
+ 47
730
+ 48
731
+ 49</pre>
1590
732
  </td>
1591
733
  <td>
1592
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 97</span>
734
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 46</span>
1593
735
 
1594
- <span class='kw'>def</span> <span class='id identifier rubyid_setter'>setter</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
1595
- <span class='id identifier rubyid_records'>records</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_o'>o</span><span class='op'>|</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_o'>o</span><span class='rparen'>)</span><span class='rbrace'>}</span>
1596
- <span class='kw'>self</span> <span class='op'>&lt;&lt;</span> <span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span>
1597
- <span class='id identifier rubyid_object'>object</span>
736
+ <span class='kw'>def</span> <span class='id identifier rubyid_reset'>reset</span>
737
+ <span class='ivar'>@target</span> <span class='op'>=</span> <span class='kw'>nil</span>
738
+ <span class='ivar'>@loaded</span> <span class='op'>=</span> <span class='kw'>false</span>
1598
739
  <span class='kw'>end</span></pre>
1599
740
  </td>
1600
741
  </tr>
@@ -1602,90 +743,37 @@ the passed object(s), and associates the target association if it is detected to
1602
743
  </div>
1603
744
 
1604
745
  <div class="method_details ">
1605
- <p class="signature " id="where-instance_method">
1606
-
1607
- - (<tt>Dynamoid::Association</tt>) <strong>where</strong>(args)
1608
-
1609
-
1610
-
1611
- </p><div class="docstring">
1612
- <div class="discussion">
1613
- <p>Naive association filtering.</p>
1614
-
1615
-
1616
- </div>
1617
- </div>
1618
- <div class="tags">
1619
- <h3>Parameters:</h3>
1620
- <ul class="param">
746
+ <p class="signature " id="target-instance_method">
1621
747
 
1622
- <li>
1623
-
1624
- <span class='name'>A</span>
1625
-
1626
-
1627
- <span class='type'>(<tt>Hash</tt>)</span>
1628
-
1629
-
1630
-
1631
- &mdash;
1632
- <div class='inline'><p>hash of attributes; each must match every returned object's attribute exactly.</p>
1633
- </div>
1634
-
1635
- </li>
748
+ - (<tt>Object</tt>) <strong>target</strong>
1636
749
 
1637
- </ul>
1638
750
 
1639
- <h3>Returns:</h3>
1640
- <ul class="return">
1641
751
 
1642
- <li>
1643
-
1644
-
1645
- <span class='type'>(<tt>Dynamoid::Association</tt>)</span>
1646
-
1647
-
1648
-
1649
- &mdash;
1650
- <div class='inline'><p>the association this method was called on (for chaining purposes)</p>
1651
- </div>
1652
-
1653
- </li>
1654
-
1655
- </ul>
1656
- <h3>Since:</h3>
1657
- <ul class="since">
1658
-
1659
- <li>
1660
-
1661
-
1662
-
1663
-
1664
-
1665
- <div class='inline'><p>0.2.0</p>
1666
- </div>
1667
-
1668
- </li>
1669
-
1670
- </ul>
1671
-
1672
- </div><table class="source_code">
752
+ </p><table class="source_code">
1673
753
  <tr>
1674
754
  <td>
1675
755
  <pre class="lines">
1676
756
 
1677
757
 
1678
- 133
1679
- 134
1680
- 135
1681
- 136</pre>
758
+ 37
759
+ 38
760
+ 39
761
+ 40
762
+ 41
763
+ 42
764
+ 43
765
+ 44</pre>
1682
766
  </td>
1683
767
  <td>
1684
- <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 133</span>
768
+ <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 37</span>
769
+
770
+ <span class='kw'>def</span> <span class='id identifier rubyid_target'>target</span>
771
+ <span class='kw'>unless</span> <span class='id identifier rubyid_loaded?'>loaded?</span>
772
+ <span class='ivar'>@target</span> <span class='op'>=</span> <span class='id identifier rubyid_find_target'>find_target</span>
773
+ <span class='ivar'>@loaded</span> <span class='op'>=</span> <span class='kw'>true</span>
774
+ <span class='kw'>end</span>
1685
775
 
1686
- <span class='kw'>def</span> <span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
1687
- <span class='id identifier rubyid_args'>args</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_query'>query</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='rbrace'>}</span>
1688
- <span class='kw'>self</span>
776
+ <span class='ivar'>@target</span>
1689
777
  <span class='kw'>end</span></pre>
1690
778
  </td>
1691
779
  </tr>
@@ -1697,7 +785,7 @@ the passed object(s), and associates the target association if it is detected to
1697
785
  </div>
1698
786
 
1699
787
  <div id="footer">
1700
- Generated on Tue Mar 27 17:53:07 2012 by
788
+ Generated on Thu Apr 26 01:26:26 2012 by
1701
789
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1702
790
  0.7.5 (ruby-1.9.3).
1703
791
  </div>