<!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::Adapter::Local — 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 (L)</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="../Adapter.html" title="Dynamoid::Adapter (module)">Adapter</a></span></span> » <span class="title">Local</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::Adapter::Local </h1> <dl class="box"> <dt class="r1">Extended by:</dt> <dd class="r1"><span class='object_link'><a href="" title="Dynamoid::Adapter::Local (module)">Local</a></span></dd> <dt class="r2">Included in:</dt> <dd class="r2"><span class='object_link'><a href="" title="Dynamoid::Adapter::Local (module)">Local</a></span></dd> <dt class="r1 last">Defined in:</dt> <dd class="r1 last">lib/dynamoid/adapter/local.rb</dd> </dl> <div class="clear"></div> <h2>Overview</h2><div class="docstring"> <div class="discussion"> <p>This gimpy hash construct should be equivalent to Amazon's actual DynamoDB, for offline development. All tests pass with either this or connecting to the real DynamoDB, and that's good enough for me.</p> </div> </div> <div class="tags"> </div> <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="#batch_get_item-instance_method" title="#batch_get_item (instance method)">- (Hash) <strong>batch_get_item</strong>(options) </a> </span> <span class="summary_desc"><div class='inline'><p>Get many items at once from the hash.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#create_table-instance_method" title="#create_table (instance method)">- (Object) <strong>create_table</strong>(table_name, key, options = {}) </a> </span> <span class="summary_desc"><div class='inline'><p>Create a table.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#data-instance_method" title="#data (instance method)">- (Hash) <strong>data</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>The hash holding all of our data.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#delete_item-instance_method" title="#delete_item (instance method)">- (Object) <strong>delete_item</strong>(table_name, key, range_key = nil) </a> </span> <span class="summary_desc"><div class='inline'><p>Removes an item from the hash.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#delete_table-instance_method" title="#delete_table (instance method)">- (Object) <strong>delete_table</strong>(table_name) </a> </span> <span class="summary_desc"><div class='inline'><p>Deletes an entire table from the hash.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#get_item-instance_method" title="#get_item (instance method)">- (Hash) <strong>get_item</strong>(table_name, key, range_key = nil) </a> </span> <span class="summary_desc"><div class='inline'><p>Fetches an item from the hash.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#list_tables-instance_method" title="#list_tables (instance method)">- (Object) <strong>list_tables</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>List all tables on DynamoDB.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#put_item-instance_method" title="#put_item (instance method)">- (Object) <strong>put_item</strong>(table_name, object) </a> </span> <span class="summary_desc"><div class='inline'><p>Persists an item in the hash.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#query-instance_method" title="#query (instance method)">- (Array) <strong>query</strong>(table_name, opts = {}) </a> </span> <span class="summary_desc"><div class='inline'><p>Query the hash.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#reset_data-instance_method" title="#reset_data (instance method)">- (Object) <strong>reset_data</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>A convenience method for testing that destroys all table data without destroying their structure.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#scan-instance_method" title="#scan (instance method)">- (Array) <strong>scan</strong>(table_name, scan_hash) </a> </span> <span class="summary_desc"><div class='inline'><p>Scan the hash.</p> </div></span> </li> </ul> <div id="instance_method_details" class="method_details_list"> <h2>Instance Method Details</h2> <div class="method_details first"> <p class="signature first" id="batch_get_item-instance_method"> - (<tt>Hash</tt>) <strong>batch_get_item</strong>(options) </p><div class="docstring"> <div class="discussion"> <p>Get many items at once from the hash.</p> </div> </div> <div class="tags"> <div class="examples"> <h3>Examples:</h3> <h4><div class='inline'><p>Retrieve IDs 1 and 2 from the table testtable</p> </div></h4> <pre class="example code"><span class='const'>Dynamoid</span><span class='op'>::</span><span class='const'>Adapter</span><span class='op'>::</span><span class='const'>Local</span><span class='period'>.</span><span class='id identifier rubyid_batch_get_item'>batch_get_item</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>table1</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span></pre> </div> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>options</span> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the hash of tables and IDs to retrieve</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>a hash where keys are the table names and the values are the retrieved items</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"> 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 35</span> <span class='kw'>def</span> <span class='id identifier rubyid_batch_get_item'>batch_get_item</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_h'>h</span><span class='comma'>,</span> <span class='id identifier rubyid_k'>k</span><span class='op'>|</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Array</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_hash'>hash</span><span class='op'>|</span> <span class='id identifier rubyid_options'>options</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_table_name'>table_name</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='op'>|</span> <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> <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> <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> <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'><<</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> <span class='kw'>end</span> <span class='kw'>else</span> <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> <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'><<</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='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="create_table-instance_method"> - (<tt>Object</tt>) <strong>create_table</strong>(table_name, key, options = {}) </p><div class="docstring"> <div class="discussion"> <p>Create a table.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>table_name</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the name of the table to create</p> </div> </li> <li> <span class='name'>key</span> <span class='type'>(<tt>Symbol</tt>)</span> — <div class='inline'><p>the table's primary key (defaults to :id)</p> </div> </li> <li> <span class='name'>options</span> <span class='type'>(<tt>Hash</tt>)</span> <em class="default">(defaults to: <tt>{}</tt>)</em> — <div class='inline'><p>provide a range_key here if you want one for the table</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"> 59 60 61</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 59</span> <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> <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'>=></span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='symbol'>: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='comma'>,</span> <span class='symbol'>:data</span> <span class='op'>=></span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rbrace'>}</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="data-instance_method"> - (<tt>Hash</tt>) <strong>data</strong> </p><div class="docstring"> <div class="discussion"> <p>The hash holding all of our data.</p> </div> </div> <div class="tags"> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>a hash of raw values</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"> 14 15 16</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 14</span> <span class='kw'>def</span> <span class='id identifier rubyid_data'>data</span> <span class='ivar'>@data</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="delete_item-instance_method"> - (<tt>Object</tt>) <strong>delete_item</strong>(table_name, key, range_key = nil) </p><div class="docstring"> <div class="discussion"> <p>Removes an item from the hash.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>table_name</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the name of the table</p> </div> </li> <li> <span class='name'>key</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the hash key of the item to delete</p> </div> </li> <li> <span class='name'>range_key</span> <span class='type'>(<tt>Number</tt>)</span> <em class="default">(defaults to: <tt>nil</tt>)</em> — <div class='inline'><p>the range key of the item to delete, required if the table has a composite key</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"> 70 71 72</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 70</span> <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> <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'>"</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'>"</span></span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="delete_table-instance_method"> - (<tt>Object</tt>) <strong>delete_table</strong>(table_name) </p><div class="docstring"> <div class="discussion"> <p>Deletes an entire table from the hash.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>table_name</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the name of the table to destroy</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"> 79 80 81</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 79</span> <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> <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> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="get_item-instance_method"> - (<tt>Hash</tt>) <strong>get_item</strong>(table_name, key, range_key = nil) </p><div class="docstring"> <div class="discussion"> <p>Fetches an item from the hash.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>table_name</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the name of the table</p> </div> </li> <li> <span class='name'>key</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the hash key of the item to find</p> </div> </li> <li> <span class='name'>range_key</span> <span class='type'>(<tt>Number</tt>)</span> <em class="default">(defaults to: <tt>nil</tt>)</em> — <div class='inline'><p>the range key of the item to find, required if the table has a composite key</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>a hash representing the raw item</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"> 94 95 96 97 98 99 100</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 94</span> <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> <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> <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'>"</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'>"</span></span><span class='rbracket'>]</span> <span class='kw'>else</span> <span class='kw'>nil</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="list_tables-instance_method"> - (<tt>Object</tt>) <strong>list_tables</strong> </p><div class="docstring"> <div class="discussion"> <p>List all tables on DynamoDB.</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"> 105 106 107</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 105</span> <span class='kw'>def</span> <span class='id identifier rubyid_list_tables'>list_tables</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="put_item-instance_method"> - (<tt>Object</tt>) <strong>put_item</strong>(table_name, object) </p><div class="docstring"> <div class="discussion"> <p>Persists an item in the hash.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>table_name</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the name of the table</p> </div> </li> <li> <span class='name'>object</span> <span class='type'>(<tt>Object</tt>)</span> — <div class='inline'><p>a hash or Dynamoid object to persist</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"> 115 116 117 118 119</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 115</span> <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> <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> <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> <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'>"</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'>"</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'>&&</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> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="query-instance_method"> - (<tt>Array</tt>) <strong>query</strong>(table_name, opts = {}) </p><div class="docstring"> <div class="discussion"> <p>Query the hash.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>table_name</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the name of the table</p> </div> </li> <li> <span class='name'>opts</span> <span class='type'>(<tt>Hash</tt>)</span> <em class="default">(defaults to: <tt>{}</tt>)</em> — <div class='inline'><p>the options to query the table with</p> </div> </li> </ul> <h3>Options Hash (<tt>opts</tt>):</h3> <ul class="option"> <li> <span class="name">:hash_value</span> <span class="type">(<tt>String</tt>)</span> <span class="default"> </span> — <div class='inline'><p>the value of the hash key to find</p> </div> </li> <li> <span class="name">:range_value</span> <span class="type">(<tt>Range</tt>)</span> <span class="default"> </span> — <div class='inline'><p>find the range key within this range</p> </div> </li> <li> <span class="name">:range_greater_than</span> <span class="type">(<tt>Number</tt>)</span> <span class="default"> </span> — <div class='inline'><p>find range keys greater than this</p> </div> </li> <li> <span class="name">:range_less_than</span> <span class="type">(<tt>Number</tt>)</span> <span class="default"> </span> — <div class='inline'><p>find range keys less than this</p> </div> </li> <li> <span class="name">:range_gte</span> <span class="type">(<tt>Number</tt>)</span> <span class="default"> </span> — <div class='inline'><p>find range keys greater than or equal to this</p> </div> </li> <li> <span class="name">:range_lte</span> <span class="type">(<tt>Number</tt>)</span> <span class="default"> </span> — <div class='inline'><p>find range keys less than or equal to this</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Array</tt>)</span> — <div class='inline'><p>an array of all matching items</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"> 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 135</span> <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> <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> <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> <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> <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'>&&</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'>&&</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> <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> <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'>&&</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'>&&</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'>></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> <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> <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'>&&</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'>&&</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'><</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> <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> <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'>&&</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'>&&</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'>>=</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> <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> <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'>&&</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'>&&</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'><=</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> <span class='kw'>else</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_id'>id</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="reset_data-instance_method"> - (<tt>Object</tt>) <strong>reset_data</strong> </p><div class="docstring"> <div class="discussion"> <p>A convenience method for testing that destroys all table data without destroying their structure.</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"> 21 22 23</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 21</span> <span class='kw'>def</span> <span class='id identifier rubyid_reset_data'>reset_data</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</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_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rbrace'>}</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="scan-instance_method"> - (<tt>Array</tt>) <strong>scan</strong>(table_name, scan_hash) </p><div class="docstring"> <div class="discussion"> <p>Scan the hash.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='name'>table_name</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the name of the table</p> </div> </li> <li> <span class='name'>scan_hash</span> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>a hash of attributes: matching records will be returned by the scan</p> </div> </li> </ul> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Array</tt>)</span> — <div class='inline'><p>an array of all matching items</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"> 161 162 163 164</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/dynamoid/adapter/local.rb', line 161</span> <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> <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> <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'>&&</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> <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>