html/classes/S33r/BucketListing.html in s33r-0.3.1 vs html/classes/S33r/BucketListing.html in s33r-0.4

- old
+ new

@@ -90,15 +90,16 @@ <div id="method-list"> <h3 class="section-bar">Methods</h3> <div class="name-list"> - <a href="#M000079">[]</a>&nbsp;&nbsp; - <a href="#M000076">new</a>&nbsp;&nbsp; - <a href="#M000078">parse_listing</a>&nbsp;&nbsp; - <a href="#M000080">pretty</a>&nbsp;&nbsp; - <a href="#M000077">set_listing_xml</a>&nbsp;&nbsp; + <a href="#M000111">[]</a>&nbsp;&nbsp; + <a href="#M000110">last_key</a>&nbsp;&nbsp; + <a href="#M000107">new</a>&nbsp;&nbsp; + <a href="#M000109">parse_listing</a>&nbsp;&nbsp; + <a href="#M000112">pretty</a>&nbsp;&nbsp; + <a href="#M000108">set_listing_xml</a>&nbsp;&nbsp; </div> </div> </div> @@ -138,10 +139,18 @@ <td class="context-item-name">is_truncated</td> <td class="context-item-value">&nbsp;[R]&nbsp;</td> <td class="context-item-desc"></td> </tr> <tr class="top-aligned-row context-row"> + <td class="context-item-name">last_key</td> + <td class="context-item-value">&nbsp;[R]&nbsp;</td> + <td class="context-item-desc"> +The last key listed in this <a href="BucketListing.html">BucketListing</a>. + +</td> + </tr> + <tr class="top-aligned-row context-row"> <td class="context-item-name">marker</td> <td class="context-item-value">&nbsp;[R]&nbsp;</td> <td class="context-item-desc"></td> </tr> <tr class="top-aligned-row context-row"> @@ -179,15 +188,15 @@ <!-- if method_list --> <div id="methods"> <h3 class="section-bar">Public Class methods</h3> - <div id="method-M000076" class="method-detail"> - <a name="M000076"></a> + <div id="method-M000107" class="method-detail"> + <a name="M000107"></a> <div class="method-heading"> - <a href="#M000076" class="method-signature"> + <a href="#M000107" class="method-signature"> <span class="method-name">new</span><span class="method-args">(bucket_listing_xml, named_bucket=nil)</span> </a> </div> <div class="method-description"> @@ -205,12 +214,12 @@ 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><a class="source-toggle" href="#" - onclick="toggleCode('M000076-source');return false;">[Source]</a></p> - <div class="method-source-code" id="M000076-source"> + onclick="toggleCode('M000107-source');return false;">[Source]</a></p> + <div class="method-source-code" id="M000107-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> = {} @@ -223,136 +232,164 @@ </div> </div> <h3 class="section-bar">Public Instance methods</h3> - <div id="method-M000079" class="method-detail"> - <a name="M000079"></a> + <div id="method-M000111" class="method-detail"> + <a name="M000111"></a> <div class="method-heading"> - <a href="#M000079" class="method-signature"> + <a href="#M000111" 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('M000079-source');return false;">[Source]</a></p> - <div class="method-source-code" id="M000079-source"> + onclick="toggleCode('M000111-source');return false;">[Source]</a></p> + <div class="method-source-code" id="M000111-source"> <pre> - <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 72</span> -72: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>) -73: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">key</span>] -74: <span class="ruby-keyword kw">end</span> + <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> </pre> </div> </div> </div> - <div id="method-M000078" class="method-detail"> - <a name="M000078"></a> + <div id="method-M000110" class="method-detail"> + <a name="M000110"></a> <div class="method-heading"> - <a href="#M000078" class="method-signature"> + <a href="#M000110" 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"> +<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> +</pre> + </div> + </div> + </div> + + <div id="method-M000109" class="method-detail"> + <a name="M000109"></a> + + <div class="method-heading"> + <a href="#M000109" 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. </p> <p><a class="source-toggle" href="#" - onclick="toggleCode('M000078-source');return false;">[Source]</a></p> - <div class="method-source-code" id="M000078-source"> + onclick="toggleCode('M000109-source');return false;">[Source]</a></p> + <div class="method-source-code" id="M000109-source"> <pre> - <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 47</span> -47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>) -48: <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>) -49: -50: <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> -51: <span class="ruby-identifier">node</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-node">&quot;//ListBucketResult/#{path}&quot;</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">first</span> -52: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{prop}=&quot;</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> -53: <span class="ruby-keyword kw">end</span> -54: -55: <span class="ruby-comment cmt"># metadata</span> -56: <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>) -57: <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>) -58: <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>) -59: <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>) -60: <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>) -61: <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>) -62: -63: <span class="ruby-comment cmt"># contents</span> -64: <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> -65: <span class="ruby-identifier">obj</span> = <span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">node</span>) -66: <span class="ruby-comment cmt"># Add to the content listing for the bucket</span> -67: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">obj</span> -68: <span class="ruby-keyword kw">end</span> -69: <span class="ruby-keyword kw">end</span> + <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">&quot;//ListBucketResult/#{path}&quot;</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">&quot;#{prop}=&quot;</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> </pre> </div> </div> </div> - <div id="method-M000080" class="method-detail"> - <a name="M000080"></a> + <div id="method-M000112" class="method-detail"> + <a name="M000112"></a> <div class="method-heading"> - <a href="#M000080" class="method-signature"> + <a href="#M000112" 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('M000080-source');return false;">[Source]</a></p> - <div class="method-source-code" id="M000080-source"> + onclick="toggleCode('M000112-source');return false;">[Source]</a></p> + <div class="method-source-code" id="M000112-source"> <pre> - <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 77</span> -77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty</span> -78: <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> } -79: <span class="ruby-keyword kw">end</span> + <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> </pre> </div> </div> </div> - <div id="method-M000077" class="method-detail"> - <a name="M000077"></a> + <div id="method-M000108" class="method-detail"> + <a name="M000108"></a> <div class="method-heading"> - <a href="#M000077" class="method-signature"> + <a href="#M000108" 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('M000077-source');return false;">[Source]</a></p> - <div class="method-source-code" id="M000077-source"> + onclick="toggleCode('M000108-source');return false;">[Source]</a></p> + <div class="method-source-code" id="M000108-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-comment cmt"># remove the namespace declaration: libxml doesn't like it</span> -38: <span class="ruby-identifier">bucket_listing_xml</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/ xmlns=&quot;http:\/\/s3.amazonaws.com\/doc\/2006-03-01\/&quot;/</span>, <span class="ruby-value str">''</span>) -39: <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>) -40: <span class="ruby-keyword kw">rescue</span> -41: <span class="ruby-identifier">message</span> = <span class="ruby-value str">&quot;Cannot create bucket listing from supplied XML&quot;</span> -42: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot; (was nil)&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bucket_listing_xml</span>.<span class="ruby-identifier">nil?</span> -43: <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> -44: <span class="ruby-keyword kw">end</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">&quot;Cannot create bucket listing from supplied XML&quot;</span> +43: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot; (was nil)&quot;</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> </pre> </div> </div> </div> \ No newline at end of file