<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Module: Dynamoid::Associations::Association — Documentation by YARD 0.7.5 </title> <link rel="stylesheet" href="../../css/style.css" type="text/css" media="screen" charset="utf-8" /> <link rel="stylesheet" href="../../css/common.css" type="text/css" media="screen" charset="utf-8" /> <script type="text/javascript" charset="utf-8"> relpath = '../..'; if (relpath != '') relpath += '/'; </script> <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script> <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script> </head> <body> <script type="text/javascript" charset="utf-8"> if (window.top.frames.main) document.body.className = 'frames'; </script> <div id="header"> <div id="menu"> <a href="../../_index.html">Index (A)</a> » <span class='title'><span class='object_link'><a href="../../Dynamoid.html" title="Dynamoid (module)">Dynamoid</a></span></span> » <span class='title'><span class='object_link'><a href="../Associations.html" title="Dynamoid::Associations (module)">Associations</a></span></span> » <span class="title">Association</span> <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div> </div> <div id="search"> <a id="class_list_link" href="#">Class List</a> <a id="method_list_link" href="#">Method List</a> <a id="file_list_link" href="#">File List</a> </div> <div class="clear"></div> </div> <iframe id="search_frame"></iframe> <div id="content"><h1>Module: Dynamoid::Associations::Association </h1> <dl class="box"> <dt class="r1">Includes:</dt> <dd class="r1">Enumerable</dd> <dt class="r2">Included in:</dt> <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> <dt class="r1 last">Defined in:</dt> <dd class="r1 last">lib/dynamoid/associations/association.rb</dd> </dl> <div class="clear"></div> <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2> <ul class="summary"> <li class="public "> <span class="summary_signature"> <a href="#name-instance_method" title="#name (instance method)">- (Object) <strong>name</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Returns the value of attribute name.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#options-instance_method" title="#options (instance method)">- (Object) <strong>options</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Returns the value of attribute options.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#query-instance_method" title="#query (instance method)">- (Object) <strong>query</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Returns the value of attribute query.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#source-instance_method" title="#source (instance method)">- (Object) <strong>source</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Returns the value of attribute source.</p> </div></span> </li> </ul> <h2> Instance Method Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small> </h2> <ul class="summary"> <li class="public "> <span class="summary_signature"> <a href="#%3C%3C-instance_method" title="#<< (instance method)">- (Dynamoid::Document) <strong><<</strong>(object) </a> </span> <span class="summary_desc"><div class='inline'><p>Add an object or array of objects to an association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#create-instance_method" title="#create (instance method)">- (Dynamoid::Document) <strong>create</strong>(attributes = {}) </a> </span> <span class="summary_desc"><div class='inline'><p>Create a new instance of the target class and add it directly to the association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#create%21-instance_method" title="#create! (instance method)">- (Dynamoid::Document) <strong>create!</strong>(attributes = {}) </a> </span> <span class="summary_desc"><div class='inline'><p>Create a new instance of the target class and add it directly to the association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#delete-instance_method" title="#delete (instance method)">- (Dynamoid::Document) <strong>delete</strong>(object) </a> </span> <span class="summary_desc"><div class='inline'><p>Deletes an object or array of objects from the association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#delete_all-instance_method" title="#delete_all (instance method)">- (Object) <strong>delete_all</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Deletes all members of the association and removes them from the association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#destroy_all-instance_method" title="#destroy_all (instance method)">- (Object) <strong>destroy_all</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Destroys all members of the association and removes them from the association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#each-instance_method" title="#each (instance method)">- (Dynamoid::Document) <strong>each</strong>(&block) </a> </span> <span class="summary_desc"><div class='inline'><p>Create a new instance of the target class and add it directly to the association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#include%3F-instance_method" title="#include? (instance method)">- (Boolean) <strong>include?</strong>(object) </a> </span> <span class="summary_desc"><div class='inline'><p>Delegate include? to the records.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#initialize-instance_method" title="#initialize (instance method)">- (Dynamoid::Association) <strong>initialize</strong>(source, name, options) </a> </span> <span class="summary_desc"><div class='inline'><p>Create a new association.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#records-instance_method" title="#records (instance method)">- (Object) <strong>records</strong> </a> (also: #all) </span> <span class="summary_desc"><div class='inline'><p>The records associated to the source.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#setter-instance_method" title="#setter (instance method)">- (Dynamoid::Document) <strong>setter</strong>(object) </a> </span> <span class="summary_desc"><div class='inline'><p>Replace an association with object or array of objects.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#where-instance_method" title="#where (instance method)">- (Dynamoid::Association) <strong>where</strong>(args) </a> </span> <span class="summary_desc"><div class='inline'><p>Naive association filtering.</p> </div></span> </li> </ul> <div id="instance_attr_details" class="attr_details"> <h2>Instance Attribute Details</h2> <span id="name=-instance_method"></span> <span id="name-instance_method"></span> <div class="method_details first"> <p class="signature first" id="name-instance_method"> - (<tt>Object</tt>) <strong>name</strong> </p><div class="docstring"> <div class="discussion"> <p>Returns the value of attribute name</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 9 10 11</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 9</span> <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span> <span class='ivar'>@name</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <span id="options=-instance_method"></span> <span id="options-instance_method"></span> <div class="method_details "> <p class="signature " id="options-instance_method"> - (<tt>Object</tt>) <strong>options</strong> </p><div class="docstring"> <div class="discussion"> <p>Returns the value of attribute options</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 9 10 11</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 9</span> <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span> <span class='ivar'>@options</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <span id="query=-instance_method"></span> <span id="query-instance_method"></span> <div class="method_details "> <p class="signature " id="query-instance_method"> - (<tt>Object</tt>) <strong>query</strong> </p><div class="docstring"> <div class="discussion"> <p>Returns the value of attribute query</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 9 10 11</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 9</span> <span class='kw'>def</span> <span class='id identifier rubyid_query'>query</span> <span class='ivar'>@query</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <span id="source=-instance_method"></span> <span id="source-instance_method"></span> <div class="method_details "> <p class="signature " id="source-instance_method"> - (<tt>Object</tt>) <strong>source</strong> </p><div class="docstring"> <div class="discussion"> <p>Returns the value of attribute source</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 9 10 11</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 9</span> <span class='kw'>def</span> <span class='id identifier rubyid_source'>source</span> <span class='ivar'>@source</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> <div id="instance_method_details" class="method_details_list"> <h2>Instance Method Details</h2> <div class="method_details first"> <p class="signature first" id="<<-instance_method"> - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong><<</strong>(object) </p><div class="docstring"> <div class="discussion"> <p>Add an object or array of objects to an association. This preserves the current records in the association (if any) and adds the object to the target association if it is detected to exist.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>object</span> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the object (or array of objects) to add to the association</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the added object</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 83 84 85 86 87</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 83</span> <span class='kw'>def</span> <span class='op'><<</span><span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span> <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'>&</span><span class='symbol'>:id</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</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='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> <span class='id identifier rubyid_object'>object</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="create-instance_method"> - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>create</strong>(attributes = {}) </p><div class="docstring"> <div class="discussion"> <p>Create a new instance of the target class and add it directly to the association.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>attribute</span> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>hash for the new object</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the newly-created object</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 110 111 112</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 110</span> <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> <span class='kw'>self</span> <span class='op'><<</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> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="create!-instance_method"> - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>create!</strong>(attributes = {}) </p><div class="docstring"> <div class="discussion"> <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> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>attribute</span> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>hash for the new object</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the newly-created object</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 121 122 123</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 121</span> <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> <span class='kw'>self</span> <span class='op'><<</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> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="delete-instance_method"> - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>delete</strong>(object) </p><div class="docstring"> <div class="discussion"> <p>Deletes an object or array of objects from the association. This removes their records from the association field on the source, and attempts to remove the source from the target association if it is detected to exist.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>object</span> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the object (or array of objects) to remove from the association</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the deleted object</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 69 70 71 72 73</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 69</span> <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> <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'>&</span><span class='symbol'>:id</span><span class='rparen'>)</span><span class='rparen'>)</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='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> <span class='id identifier rubyid_object'>object</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="delete_all-instance_method"> - (<tt>Object</tt>) <strong>delete_all</strong> </p><div class="docstring"> <div class="discussion"> <p>Deletes all members of the association and removes them from the association.</p> </div> </div> <div class="tags"> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 161 162 163 164 165</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 161</span> <span class='kw'>def</span> <span class='id identifier rubyid_delete_all'>delete_all</span> <span class='id identifier rubyid_objs'>objs</span> <span class='op'>=</span> <span class='id identifier rubyid_records'>records</span> <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> <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'>&</span><span class='symbol'>:delete</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="destroy_all-instance_method"> - (<tt>Object</tt>) <strong>destroy_all</strong> </p><div class="docstring"> <div class="discussion"> <p>Destroys all members of the association and removes them from the association.</p> </div> </div> <div class="tags"> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 152 153 154 155 156</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 152</span> <span class='kw'>def</span> <span class='id identifier rubyid_destroy_all'>destroy_all</span> <span class='id identifier rubyid_objs'>objs</span> <span class='op'>=</span> <span class='id identifier rubyid_records'>records</span> <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> <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'>&</span><span class='symbol'>:destroy</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="each-instance_method"> - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>each</strong>(&block) </p><div class="docstring"> <div class="discussion"> <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> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>attribute</span> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>hash for the new object</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the newly-created object</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 145 146 147</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 145</span> <span class='kw'>def</span> <span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span> <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'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="include?-instance_method"> - (<tt>Boolean</tt>) <strong>include?</strong>(object) </p><div class="docstring"> <div class="discussion"> <p>Delegate include? to the records.</p> </div> </div> <div class="tags"> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Boolean</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 55 56 57</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 55</span> <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> <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> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="initialize-instance_method"> - (<tt>Dynamoid::Association</tt>) <strong>initialize</strong>(source, name, options) </p><div class="docstring"> <div class="discussion"> <p>Create a new association.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>source</span> <span class='type'>(<tt>Class</tt>)</span> — <div class='inline'><p>the source record of the association; that is, the record that you already have</p> </div> </li> <li> <span class='name'>name</span> <span class='type'>(<tt>Symbol</tt>)</span> — <div class='inline'><p>the name of the association</p> </div> </li> <li> <span class='name'>options</span> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>optional parameters for the association</p> </div> </li> </ul> <h3>Options Hash (<tt>options</tt>):</h3> <ul class="option"> <li> <span class="name">:class</span> <span class="type">(<tt>Class</tt>)</span> <span class="default"> </span> — <div class='inline'><p>the target class of the association; that is, the class to which the association objects belong</p> </div> </li> <li> <span class="name">:class_name</span> <span class="type">(<tt>Symbol</tt>)</span> <span class="default"> </span> — <div class='inline'><p>the name of the target class of the association; only this or Class is necessary</p> </div> </li> <li> <span class="name">:inverse_of</span> <span class="type">(<tt>Symbol</tt>)</span> <span class="default"> </span> — <div class='inline'><p>the name of the association on the target class</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 27 28 29 30 31 32</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 27</span> <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> <span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span> <span class='ivar'>@options</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span> <span class='ivar'>@source</span> <span class='op'>=</span> <span class='id identifier rubyid_source'>source</span> <span class='ivar'>@query</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="records-instance_method"> - (<tt>Object</tt>) <strong>records</strong> <span class="aliases">Also known as: <span class="names"><span id='all-instance_method'>all</span></span> </span> </p><div class="docstring"> <div class="discussion"> <p>The records associated to the source.</p> </div> </div> <div class="tags"> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'></span> <div class='inline'><p>the association records; depending on which association this is, either a single instance or an array</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 43 44 45 46 47 48 49 50 51</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 43</span> <span class='kw'>def</span> <span class='id identifier rubyid_records'>records</span> <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> <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> <span class='id identifier rubyid_results'>results</span> <span class='kw'>else</span> <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> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="setter-instance_method"> - (<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>) <strong>setter</strong>(object) </p><div class="docstring"> <div class="discussion"> <p>Replace an association with object or array of objects. This removes all of the existing associated records and replaces them with the passed object(s), and associates the target association if it is detected to exist.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>object</span> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the object (or array of objects) to add to the association</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt><span class='object_link'><a href="../Document.html" title="Dynamoid::Document (module)">Dynamoid::Document</a></span></tt>)</span> — <div class='inline'><p>the added object</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 97 98 99 100 101</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 97</span> <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> <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> <span class='kw'>self</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='id identifier rubyid_object'>object</span><span class='rparen'>)</span> <span class='id identifier rubyid_object'>object</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="where-instance_method"> - (<tt>Dynamoid::Association</tt>) <strong>where</strong>(args) </p><div class="docstring"> <div class="discussion"> <p>Naive association filtering.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>A</span> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>hash of attributes; each must match every returned object's attribute exactly.</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Dynamoid::Association</tt>)</span> — <div class='inline'><p>the association this method was called on (for chaining purposes)</p> </div> </li> </ul> <h3>Since:</h3> <ul class="since"> <li> <div class='inline'><p>0.2.0</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 133 134 135 136</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/associations/association.rb', line 133</span> <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> <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> <span class='kw'>self</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> </div> <div id="footer"> Generated on Tue Mar 27 17:53:07 2012 by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.7.5 (ruby-1.9.3). </div> </body> </html>