html/classes/S33r/BucketListing.html in s33r-0.4.1 vs html/classes/S33r/BucketListing.html in s33r-0.4.2
- old
+ new
@@ -90,16 +90,16 @@
<div id="method-list">
<h3 class="section-bar">Methods</h3>
<div class="name-list">
- <a href="#M000111">[]</a>
- <a href="#M000110">last_key</a>
- <a href="#M000107">new</a>
- <a href="#M000109">parse_listing</a>
- <a href="#M000112">pretty</a>
- <a href="#M000108">set_listing_xml</a>
+ <a href="#M000155">[]</a>
+ <a href="#M000154">last_key</a>
+ <a href="#M000151">new</a>
+ <a href="#M000153">parse_listing</a>
+ <a href="#M000156">pretty</a>
+ <a href="#M000152">set_listing_xml</a>
</div>
</div>
</div>
@@ -178,26 +178,35 @@
<tr class="top-aligned-row context-row">
<td class="context-item-name">prefix</td>
<td class="context-item-value"> [R] </td>
<td class="context-item-desc"></td>
</tr>
+ <tr class="top-aligned-row context-row">
+ <td class="context-item-name">raw</td>
+ <td class="context-item-value"> [RW] </td>
+ <td class="context-item-desc">
+Set to true to show raw parsing errors, instead of the catch all error
+message (useful for debugging).
+
+</td>
+ </tr>
</table>
</div>
</div>
<!-- if method_list -->
<div id="methods">
<h3 class="section-bar">Public Class methods</h3>
- <div id="method-M000107" class="method-detail">
- <a name="M000107"></a>
+ <div id="method-M000151" class="method-detail">
+ <a name="M000151"></a>
<div class="method-heading">
- <a href="#M000107" class="method-signature">
- <span class="method-name">new</span><span class="method-args">(bucket_listing_xml, named_bucket=nil)</span>
+ <a href="#M000151" class="method-signature">
+ <span class="method-name">new</span><span class="method-args">(bucket_listing_xml, named_bucket=nil, raw=false)</span>
</a>
</div>
<div class="method-description">
<p>
@@ -213,183 +222,199 @@
href="NamedBucket.html">NamedBucket</a> instance, so that any objects
inside this listing can be associated with that instance. This enables
objects to be easily deleted without having to create a new <a
href="Client.html">Client</a> instance.
</p>
+<p>
+If <tt>raw</tt> is set to true, you get ugly parser errors.
+</p>
<p><a class="source-toggle" href="#"
- onclick="toggleCode('M000107-source');return false;">[Source]</a></p>
- <div class="method-source-code" id="M000107-source">
+ onclick="toggleCode('M000151-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000151-source">
<pre>
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 27</span>
-27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">bucket_listing_xml</span>, <span class="ruby-identifier">named_bucket</span>=<span class="ruby-keyword kw">nil</span>)
-28: <span class="ruby-ivar">@contents</span> = {}
-29: <span class="ruby-ivar">@common_prefixes</span> = {}
-30: <span class="ruby-comment cmt"># the NamedBucket instance associated with this listing (if any)</span>
-31: <span class="ruby-ivar">@named_bucket</span> = <span class="ruby-identifier">named_bucket</span>
-32: <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
-33: <span class="ruby-keyword kw">end</span>
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 32</span>
+32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">bucket_listing_xml</span>, <span class="ruby-identifier">named_bucket</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">raw</span>=<span class="ruby-keyword kw">false</span>)
+33: <span class="ruby-ivar">@contents</span> = {}
+34: <span class="ruby-ivar">@common_prefixes</span> = {}
+35: <span class="ruby-comment cmt"># the NamedBucket instance associated with this listing (if any)</span>
+36: <span class="ruby-ivar">@named_bucket</span> = <span class="ruby-identifier">named_bucket</span>
+37: <span class="ruby-ivar">@raw</span> = <span class="ruby-identifier">raw</span>
+38: <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+39: <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
<h3 class="section-bar">Public Instance methods</h3>
- <div id="method-M000111" class="method-detail">
- <a name="M000111"></a>
+ <div id="method-M000155" class="method-detail">
+ <a name="M000155"></a>
<div class="method-heading">
- <a href="#M000111" class="method-signature">
+ <a href="#M000155" class="method-signature">
<span class="method-name">[]</span><span class="method-args">(key)</span>
</a>
</div>
<div class="method-description">
<p>
Return an object in this bucket by key.
</p>
<p><a class="source-toggle" href="#"
- onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
- <div class="method-source-code" id="M000111-source">
+ onclick="toggleCode('M000155-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000155-source">
<pre>
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 79</span>
-79: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
-80: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">key</span>]
-81: <span class="ruby-keyword kw">end</span>
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 98</span>
+ 98: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
+ 99: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">key</span>]
+100: <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
- <div id="method-M000110" class="method-detail">
- <a name="M000110"></a>
+ <div id="method-M000154" class="method-detail">
+ <a name="M000154"></a>
<div class="method-heading">
- <a href="#M000110" class="method-signature">
+ <a href="#M000154" class="method-signature">
<span class="method-name">last_key</span><span class="method-args">()</span>
</a>
</div>
<div class="method-description">
<p>
Get the last key in the contents hash.
</p>
<p><a class="source-toggle" href="#"
- onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
- <div class="method-source-code" id="M000110-source">
+ onclick="toggleCode('M000154-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000154-source">
<pre>
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 74</span>
-74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last_key</span>
-75: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">last</span>
-76: <span class="ruby-keyword kw">end</span>
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 93</span>
+93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last_key</span>
+94: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">last</span>
+95: <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
- <div id="method-M000109" class="method-detail">
- <a name="M000109"></a>
+ <div id="method-M000153" class="method-detail">
+ <a name="M000153"></a>
<div class="method-heading">
- <a href="#M000109" class="method-signature">
+ <a href="#M000153" class="method-signature">
<span class="method-name">parse_listing</span><span class="method-args">(bucket_listing_xml)</span>
</a>
</div>
<div class="method-description">
<p>
Parse raw <a href="../XML.html">XML</a> ListBucketResponse from S3 into
-object instances.
+object instances. The S3Objects are skeletons, and are not automatically
+populated from S3 (their @value attributes are nil). To load the data into
+an object, grab it from the listing and call its load method to pull the
+data down from S3.
</p>
<p><a class="source-toggle" href="#"
- onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
- <div class="method-source-code" id="M000109-source">
+ onclick="toggleCode('M000153-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000153-source">
<pre>
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 49</span>
-49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
-50: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">XML</span>.<span class="ruby-identifier">get_xml_doc</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
-51:
-52: <span class="ruby-identifier">prop_setter</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">prop</span>, <span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
-53: <span class="ruby-identifier">node</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-node">"//ListBucketResult/#{path}"</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">first</span>
-54: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">"#{prop}="</span>, <span class="ruby-identifier">node</span>.<span class="ruby-identifier">content</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>
-55: <span class="ruby-keyword kw">end</span>
-56:
-57: <span class="ruby-comment cmt"># metadata</span>
-58: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:name</span>, <span class="ruby-value str">'Name'</span>)
-59: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:delimiter</span>, <span class="ruby-value str">'Delimiter'</span>)
-60: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:prefix</span>, <span class="ruby-value str">'Prefix'</span>)
-61: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:marker</span>, <span class="ruby-value str">'Marker'</span>)
-62: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:max_keys</span>, <span class="ruby-value str">'MaxKeys'</span>)
-63: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:is_truncated</span>, <span class="ruby-value str">'IsTruncated'</span>)
-64:
-65: <span class="ruby-comment cmt"># contents</span>
-66: <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-value str">'//Contents'</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
-67: <span class="ruby-identifier">obj</span> = <span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">node</span>)
-68: <span class="ruby-comment cmt"># Add to the content listing for the bucket</span>
-69: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">obj</span>
-70: <span class="ruby-keyword kw">end</span>
-71: <span class="ruby-keyword kw">end</span>
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 68</span>
+68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+69: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">XML</span>.<span class="ruby-identifier">get_xml_doc</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+70:
+71: <span class="ruby-identifier">prop_setter</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">prop</span>, <span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
+72: <span class="ruby-identifier">node</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-node">"//ListBucketResult/#{path}"</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">first</span>
+73: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">"#{prop}="</span>, <span class="ruby-identifier">node</span>.<span class="ruby-identifier">content</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>
+74: <span class="ruby-keyword kw">end</span>
+75:
+76: <span class="ruby-comment cmt"># metadata</span>
+77: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:name</span>, <span class="ruby-value str">'Name'</span>)
+78: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:delimiter</span>, <span class="ruby-value str">'Delimiter'</span>)
+79: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:prefix</span>, <span class="ruby-value str">'Prefix'</span>)
+80: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:marker</span>, <span class="ruby-value str">'Marker'</span>)
+81: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:max_keys</span>, <span class="ruby-value str">'MaxKeys'</span>)
+82: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:is_truncated</span>, <span class="ruby-value str">'IsTruncated'</span>)
+83:
+84: <span class="ruby-comment cmt"># contents</span>
+85: <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-value str">'//Contents'</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
+86: <span class="ruby-identifier">obj</span> = <span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">from_xml_node</span>(<span class="ruby-identifier">node</span>)
+87: <span class="ruby-comment cmt"># Add to the content listing for the bucket</span>
+88: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">obj</span>
+89: <span class="ruby-keyword kw">end</span>
+90: <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
- <div id="method-M000112" class="method-detail">
- <a name="M000112"></a>
+ <div id="method-M000156" class="method-detail">
+ <a name="M000156"></a>
<div class="method-heading">
- <a href="#M000112" class="method-signature">
+ <a href="#M000156" class="method-signature">
<span class="method-name">pretty</span><span class="method-args">()</span>
</a>
</div>
<div class="method-description">
<p>
Pretty listing of keys in alphabetical order.
</p>
<p><a class="source-toggle" href="#"
- onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
- <div class="method-source-code" id="M000112-source">
+ onclick="toggleCode('M000156-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000156-source">
<pre>
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 84</span>
-84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty</span>
-85: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">puts</span> <span class="ruby-identifier">k</span> }
-86: <span class="ruby-keyword kw">end</span>
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 103</span>
+103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty</span>
+104: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">puts</span> <span class="ruby-identifier">k</span> }
+105: <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
- <div id="method-M000108" class="method-detail">
- <a name="M000108"></a>
+ <div id="method-M000152" class="method-detail">
+ <a name="M000152"></a>
<div class="method-heading">
- <a href="#M000108" class="method-signature">
+ <a href="#M000152" class="method-signature">
<span class="method-name">set_listing_xml</span><span class="method-args">(bucket_listing_xml)</span>
</a>
</div>
<div class="method-description">
<p>
Convert a ListBucketResult <a href="../XML.html">XML</a> document into an
object representation.
</p>
<p><a class="source-toggle" href="#"
- onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
- <div class="method-source-code" id="M000108-source">
+ onclick="toggleCode('M000152-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000152-source">
<pre>
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 36</span>
-36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
-37: <span class="ruby-keyword kw">begin</span>
-38: <span class="ruby-comment cmt"># remove the namespace declaration: libxml doesn't like it</span>
-39: <span class="ruby-identifier">bucket_listing_xml</span> = <span class="ruby-constant">S33r</span>.<span class="ruby-identifier">remove_namespace</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
-40: <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
-41: <span class="ruby-keyword kw">rescue</span>
-42: <span class="ruby-identifier">message</span> = <span class="ruby-value str">"Cannot create bucket listing from supplied XML"</span>
-43: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">" (was nil)"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bucket_listing_xml</span>.<span class="ruby-identifier">nil?</span>
-44: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidBucketListing</span>, <span class="ruby-identifier">message</span>
-45: <span class="ruby-keyword kw">end</span>
-46: <span class="ruby-keyword kw">end</span>
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 42</span>
+42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+43: <span class="ruby-comment cmt"># proc to remove the namespace and parse the listing</span>
+44: <span class="ruby-identifier">work</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bucket_listing_xml</span><span class="ruby-operator">|</span>
+45: <span class="ruby-comment cmt"># remove the namespace declaration: libxml doesn't like it</span>
+46: <span class="ruby-identifier">bucket_listing_xml</span> = <span class="ruby-constant">S33r</span>.<span class="ruby-identifier">remove_namespace</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+47: <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+48: <span class="ruby-keyword kw">end</span>
+49:
+50: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@raw</span>
+51: <span class="ruby-identifier">work</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+52: <span class="ruby-keyword kw">else</span>
+53: <span class="ruby-keyword kw">begin</span>
+54: <span class="ruby-identifier">work</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
+55: <span class="ruby-keyword kw">rescue</span>
+56: <span class="ruby-identifier">message</span> = <span class="ruby-value str">"Cannot create bucket listing from supplied XML"</span>
+57: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">" (was nil)"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bucket_listing_xml</span>.<span class="ruby-identifier">nil?</span>
+58: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidBucketListing</span>, <span class="ruby-identifier">message</span>
+59: <span class="ruby-keyword kw">end</span>
+60: <span class="ruby-keyword kw">end</span>
+61: <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
\ No newline at end of file