You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2017/04/02 23:37:44 UTC

svn commit: r19013 [13/44] - in /dev/buildr/1.5.2: ./ dist/ site/ site/css/ site/images/ site/rdoc/ site/rdoc/Buildr/ site/rdoc/Buildr/ArchiveTask/ site/rdoc/Buildr/ArtifactNamespace/ site/rdoc/Buildr/Assets/ site/rdoc/Buildr/CPom/ site/rdoc/Buildr/Che...

Added: dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask.html Sun Apr  2 23:37:43 2017
@@ -0,0 +1,708 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::ArchiveTask - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../";
+</script>
+
+<script src="../js/jquery.js"></script>
+<script src="../js/darkfish.js"></script>
+
+<link href="../css/fonts.css" rel="stylesheet">
+<link href="../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" class="nav-section">
+  <h2>
+    <a href="../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../table_of_contents.html#pages">Pages</a>
+    <a href="../table_of_contents.html#classes">Classes</a>
+    <a href="../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="../Rake/FileTask.html">Rake::FileTask</a>
+  
+</div>
+
+    
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li ><a href="#method-i-3C-3C">#&lt;&lt;</a>
+    
+    <li ><a href="#method-i-add">#add</a>
+    
+    <li ><a href="#method-i-clean">#clean</a>
+    
+    <li ><a href="#method-i-contain-3F">#contain?</a>
+    
+    <li ><a href="#method-i-empty-3F">#empty?</a>
+    
+    <li ><a href="#method-i-exclude">#exclude</a>
+    
+    <li ><a href="#method-i-include">#include</a>
+    
+    <li ><a href="#method-i-merge">#merge</a>
+    
+    <li ><a href="#method-i-path">#path</a>
+    
+    <li ><a href="#method-i-prepare">#prepare</a>
+    
+    <li ><a href="#method-i-root">#root</a>
+    
+    <li ><a href="#method-i-with">#with</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::ArchiveTask">
+  <h1 id="class-Buildr::ArchiveTask" class="class">
+    class Buildr::ArchiveTask
+  </h1>
+
+  <section class="description">
+    
+<p>Base class for <a href="ZipTask.html">ZipTask</a>, <a
+href="TarTask.html">TarTask</a> and other archives.</p>
+
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+
+    
+
+    
+     <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-3C-3C" class="method-detail method-alias">
+        
+        <div class="method-heading">
+          <span class="method-name">&lt;&lt;</span><span
+            class="method-args">(*files)</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+        </div>
+
+        
+
+        
+        <div class="aliases">
+          Alias for: <a href="ArchiveTask.html#method-i-include">include</a>
+        </div>
+        
+      </div>
+
+    
+      <div id="method-i-add" class="method-detail method-alias">
+        
+        <div class="method-heading">
+          <span class="method-name">add</span><span
+            class="method-args">(*files)</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+        </div>
+
+        
+
+        
+        <div class="aliases">
+          Alias for: <a href="ArchiveTask.html#method-i-include">include</a>
+        </div>
+        
+      </div>
+
+    
+      <div id="method-i-clean" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            clean &rarr; self
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Removes all previously added content from this archive. Use this method if
+you want to remove default content from a package. For example,
+package(:jar) by default includes compiled classes and resources, using
+this method, you can create an empty jar and afterwards add the desired
+content to it.</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span class="ruby-identifier">jar</span>).<span class="ruby-identifier">clean</span>.<span class="ruby-identifier">include</span> <span class="ruby-identifier">path_to</span>(<span class="ruby-string">&#39;desired/content&#39;</span>)
+</pre>
+          
+          
+
+          
+          <div class="method-source-code" id="clean-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 362</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">clean</span>
+  <span class="ruby-ivar">@paths</span> = {}
+  <span class="ruby-ivar">@paths</span>[<span class="ruby-string">&#39;&#39;</span>] = <span class="ruby-constant">Path</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-string">&#39;&#39;</span>)
+  <span class="ruby-ivar">@prepares</span> = []
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-contain-3F" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            contain(file*) &rarr; boolean
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Returns true if this ZIP file contains all the specified files. You can use
+absolute file names and glob patterns (using *, **, etc).</p>
+          
+          
+
+          
+          <div class="method-source-code" id="contain-3F-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 529</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">contain?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>)
+  <span class="ruby-identifier">path</span>(<span class="ruby-string">&quot;&quot;</span>).<span class="ruby-identifier">contain?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>)
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-empty-3F" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            empty? &rarr; boolean
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Returns true if this ZIP file is empty (has no other entries inside).</p>
+          
+          
+
+          
+          <div class="method-source-code" id="empty-3F-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 520</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">empty?</span>
+  <span class="ruby-identifier">path</span>(<span class="ruby-string">&quot;&quot;</span>).<span class="ruby-identifier">empty</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-exclude" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            exclude(*files) &rarr; self
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Excludes files and returns self. Can be used in combination with include to
+prevent some files from being included.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="exclude-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 413</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">exclude</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>)
+  <span class="ruby-ivar">@paths</span>[<span class="ruby-string">&#39;&#39;</span>].<span class="ruby-identifier">exclude</span> <span class="ruby-operator">*</span><span class="ruby-identifier">files</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-include" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            include(*files) &rarr; self
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            include(*files, :path=&gt;path) &rarr; self
+          </span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            include(file, :as=&gt;name) &rarr; self
+          </span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            include(:from=&gt;path) &rarr; self
+          </span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            include(*files, :merge=&gt;true) &rarr; self
+          </span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Include files in this archive, or when called on a path, within that path.
+Returns self.</p>
+
+<p>The first form accepts a list of files, directories and glob patterns and
+adds them to the archive. For example, to include the file foo, directory
+bar (including all files in there) and all files under baz:</p>
+
+<pre>zip(..).include(&#39;foo&#39;, &#39;bar&#39;, &#39;baz/*&#39;)</pre>
+
+<p>The second form is similar but adds files/directories under the specified
+path. For example, to add foo as bar/foo:</p>
+
+<pre>zip(..).include(&#39;foo&#39;, :path=&gt;&#39;bar&#39;)</pre>
+
+<p>The :path option is the same as using the path method:</p>
+
+<pre>zip(..).path(&#39;bar&#39;).include(&#39;foo&#39;)</pre>
+
+<p>All other options can be used in combination with the :path option.</p>
+
+<p>The third form adds a file or directory under a different name. For
+example, to add the file foo under the name bar:</p>
+
+<pre>zip(..).include(&#39;foo&#39;, :as=&gt;&#39;bar&#39;)</pre>
+
+<p>The fourth form adds the contents of a directory using the directory as a
+prerequisite:</p>
+
+<pre>zip(..).include(:from=&gt;&#39;foo&#39;)</pre>
+
+<p>Unlike <code>include(&#39;foo&#39;)</code> it includes the contents of the
+directory, not the directory itself. Unlike
+<code>include(&#39;foo/*&#39;)</code>, it uses the directory timestamp for
+dependency management.</p>
+
+<p>The fifth form includes the contents of another archive by expanding it
+into this archive. For example:</p>
+
+<pre>zip(..).include(&#39;foo.zip&#39;, :merge=&gt;true).include(&#39;bar.zip&#39;)</pre>
+
+<p>You can also use the method <a
+href="ArchiveTask.html#method-i-merge">merge</a>.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="include-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 401</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>)
+  <span class="ruby-identifier">fail</span> <span class="ruby-string">&quot;AchiveTask.include() called with nil values&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">include?</span> <span class="ruby-keyword">nil</span>
+  <span class="ruby-ivar">@paths</span>[<span class="ruby-string">&#39;&#39;</span>].<span class="ruby-identifier">include</span> <span class="ruby-operator">*</span><span class="ruby-identifier">files</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+        <div class="aliases">
+          Also aliased as: <a href="ArchiveTask.html#method-i-add">add</a>, <a href="ArchiveTask.html#method-i-3C-3C">&lt;&lt;</a>
+        </div>
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-merge" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            merge(*files) &rarr; Merge
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            merge(*files, :path=&gt;name) &rarr; Merge
+          </span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Merges another archive into this one by including the individual files from
+the merged archive.</p>
+
+<p>Returns an object that supports two methods: include and exclude. You can
+use these methods to merge only specific files. For example:</p>
+
+<pre>zip(..).merge(&#39;src.zip&#39;).include(&#39;module1/*&#39;)</pre>
+          
+          
+
+          
+          <div class="method-source-code" id="merge-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 427</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">merge</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>)
+  <span class="ruby-ivar">@paths</span>[<span class="ruby-string">&#39;&#39;</span>].<span class="ruby-identifier">merge</span> <span class="ruby-operator">*</span><span class="ruby-identifier">files</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-path" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            path(name) &rarr; Path
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Returns a path object. Use the path object to include files under a path,
+for example, to include the file &#39;foo&#39; as &#39;bar/foo&#39;:</p>
+
+<pre>zip(..).path(&#39;bar&#39;).include(&#39;foo&#39;)</pre>
+
+<p>Returns a Path object. The Path object implements all the same methods,
+like include, exclude, merge and so forth. It also implements path and
+root, so that:</p>
+
+<pre class="ruby"><span class="ruby-identifier">path</span>(<span class="ruby-string">&#39;foo&#39;</span>).<span class="ruby-identifier">path</span>(<span class="ruby-string">&#39;bar&#39;</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">path</span>(<span class="ruby-string">&#39;foo/bar&#39;</span>)
+<span class="ruby-identifier">path</span>(<span class="ruby-string">&#39;foo&#39;</span>).<span class="ruby-identifier">root</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">root</span>
+</pre>
+          
+          
+
+          
+          <div class="method-source-code" id="path-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 442</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">path</span>(<span class="ruby-identifier">name</span>)
+  <span class="ruby-keyword">return</span> <span class="ruby-ivar">@paths</span>[<span class="ruby-string">&#39;&#39;</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
+  <span class="ruby-identifier">normalized</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;/&#39;</span>).<span class="ruby-identifier">inject</span>([]) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span>, <span class="ruby-identifier">part</span><span class="ruby-operator">|</span>
+    <span class="ruby-keyword">case</span> <span class="ruby-identifier">part</span>
+    <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;.&#39;</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">&#39;&#39;</span>
+      <span class="ruby-identifier">path</span>
+    <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;..&#39;</span>
+      <span class="ruby-identifier">path</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-value">-1</span>]
+    <span class="ruby-keyword">else</span>
+      <span class="ruby-identifier">path</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">part</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;/&#39;</span>)
+  <span class="ruby-ivar">@paths</span>[<span class="ruby-identifier">normalized</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">Path</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-identifier">normalized</span>)
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-root" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            root &rarr; ArchiveTask
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Call this on an archive to return itself, and on a path to return the
+archive.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="root-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 461</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">root</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-with" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            with(options) &rarr; self
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Passes options to the task and returns self. Some tasks support additional
+options, for example, the WarTask supports options like :manifest, :libs
+and :classes.</p>
+
+<p>For example:</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span class="ruby-identifier">jar</span>).<span class="ruby-identifier">with</span>(:<span class="ruby-identifier">manifest=</span><span class="ruby-operator">&gt;</span><span class="ruby-string">&#39;MANIFEST_MF&#39;</span>)
+</pre>
+          
+          
+
+          
+          <div class="method-source-code" id="with-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 473</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">with</span>(<span class="ruby-identifier">options</span>)
+  <span class="ruby-identifier">options</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+    <span class="ruby-keyword">begin</span>
+      <span class="ruby-identifier">send</span> <span class="ruby-node">&quot;#{key}=&quot;</span>, <span class="ruby-identifier">value</span>
+    <span class="ruby-keyword">rescue</span> <span class="ruby-constant">NoMethodError</span>
+      <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;#{self.class.name} does not support the option #{key}&quot;</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="protected-instance-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Protected Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-prepare" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">prepare</span><span
+            class="method-args">(&block)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          <p>Adds a prepare block. These blocks are called early on for adding more
+content to the archive, before invoking prerequsities. Anything you add
+here will be invoked as a prerequisite and used to determine whether or not
+to generate this archive. In contrast, enhance blocks are evaluated after
+it was decided to create this archive.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="prepare-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 539</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">prepare</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
+  <span class="ruby-ivar">@prepares</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">block</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer">Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
+  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask/Merge.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask/Merge.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask/Merge.html Sun Apr  2 23:37:43 2017
@@ -0,0 +1,267 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::ArchiveTask::Merge - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../../";
+</script>
+
+<script src="../../js/jquery.js"></script>
+<script src="../../js/darkfish.js"></script>
+
+<link href="../../css/fonts.css" rel="stylesheet">
+<link href="../../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" class="nav-section">
+  <h2>
+    <a href="../../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../../table_of_contents.html#pages">Pages</a>
+    <a href="../../table_of_contents.html#classes">Classes</a>
+    <a href="../../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="../../Object.html">Object</a>
+  
+</div>
+
+    
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li ><a href="#method-c-new">::new</a>
+    
+    <li ><a href="#method-i-3C-3C">#&lt;&lt;</a>
+    
+    <li ><a href="#method-i-exclude">#exclude</a>
+    
+    <li ><a href="#method-i-include">#include</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::ArchiveTask::Merge">
+  <h1 id="class-Buildr::ArchiveTask::Merge" class="class">
+    class Buildr::ArchiveTask::Merge
+  </h1>
+
+  <section class="description">
+    
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+
+    
+
+    
+     <section id="public-class-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Public Class Methods</h3>
+       </header>
+
+    
+      <div id="method-c-new" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">new</span><span
+            class="method-args">(expanders)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="new-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 256</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">expanders</span>)
+  <span class="ruby-ivar">@expanders</span> = <span class="ruby-identifier">expanders</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-3C-3C" class="method-detail method-alias">
+        
+        <div class="method-heading">
+          <span class="method-name">&lt;&lt;</span><span
+            class="method-args">(*files)</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+        </div>
+
+        
+
+        
+        <div class="aliases">
+          Alias for: <a href="Merge.html#method-i-include">include</a>
+        </div>
+        
+      </div>
+
+    
+      <div id="method-i-exclude" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">exclude</span><span
+            class="method-args">(*files)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="exclude-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 266</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">exclude</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>)
+  <span class="ruby-ivar">@expanders</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">expander</span><span class="ruby-operator">|</span> <span class="ruby-identifier">expander</span>.<span class="ruby-identifier">exclude</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>) }
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-include" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">include</span><span
+            class="method-args">(*files)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="include-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 260</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>)
+  <span class="ruby-ivar">@expanders</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">expander</span><span class="ruby-operator">|</span> <span class="ruby-identifier">expander</span>.<span class="ruby-identifier">include</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">files</span>) }
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+        <div class="aliases">
+          Also aliased as: <a href="Merge.html#method-i-3C-3C">&lt;&lt;</a>
+        </div>
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer">Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
+  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask/ZipEntryData.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask/ZipEntryData.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/ArchiveTask/ZipEntryData.html Sun Apr  2 23:37:43 2017
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::ArchiveTask::ZipEntryData - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../../";
+</script>
+
+<script src="../../js/jquery.js"></script>
+<script src="../../js/darkfish.js"></script>
+
+<link href="../../css/fonts.css" rel="stylesheet">
+<link href="../../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" class="nav-section">
+  <h2>
+    <a href="../../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../../table_of_contents.html#pages">Pages</a>
+    <a href="../../table_of_contents.html#classes">Classes</a>
+    <a href="../../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="../../Object.html">Object</a>
+  
+</div>
+
+    
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li ><a href="#method-c-new">::new</a>
+    
+    <li ><a href="#method-i-call">#call</a>
+    
+    <li ><a href="#method-i-mode">#mode</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::ArchiveTask::ZipEntryData">
+  <h1 id="class-Buildr::ArchiveTask::ZipEntryData" class="class">
+    class Buildr::ArchiveTask::ZipEntryData
+  </h1>
+
+  <section class="description">
+    
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+
+    
+
+    
+     <section id="public-class-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Public Class Methods</h3>
+       </header>
+
+    
+      <div id="method-c-new" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">new</span><span
+            class="method-args">(zipfile, entry)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="new-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 310</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">zipfile</span>, <span class="ruby-identifier">entry</span>)
+  <span class="ruby-ivar">@zipfile</span> = <span class="ruby-identifier">zipfile</span>
+  <span class="ruby-ivar">@entry</span> = <span class="ruby-identifier">entry</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-call" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">call</span><span
+            class="method-args">(output)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="call-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 315</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">call</span>(<span class="ruby-identifier">output</span>)
+  <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span> <span class="ruby-ivar">@zipfile</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@entry</span>)
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-mode" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">mode</span><span
+            class="method-args">()</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="mode-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/archive.rb, line 319</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">mode</span>
+  <span class="ruby-ivar">@entry</span>.<span class="ruby-identifier">unix_perms</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer">Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
+  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.2/site/rdoc/Buildr/Artifact.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/Artifact.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/Artifact.html Sun Apr  2 23:37:43 2017
@@ -0,0 +1,900 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::Artifact - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../";
+</script>
+
+<script src="../js/jquery.js"></script>
+<script src="../js/darkfish.js"></script>
+
+<link href="../css/fonts.css" rel="stylesheet">
+<link href="../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" class="nav-section">
+  <h2>
+    <a href="../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../table_of_contents.html#pages">Pages</a>
+    <a href="../table_of_contents.html#classes">Classes</a>
+    <a href="../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="../Rake/FileTask.html">Rake::FileTask</a>
+  
+</div>
+
+    <div id="includes-section" class="nav-section">
+  <h3>Included Modules</h3>
+
+  <ul class="link-list">
+  
+  
+    <li><a class="include" href="ActsAsArtifact.html">Buildr::ActsAsArtifact</a>
+  
+  
+  
+    <li><a class="include" href="../Buildr.html">Buildr</a>
+  
+  
+  </ul>
+</div>
+
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li ><a href="#method-c-hash_to_file_name">::hash_to_file_name</a>
+    
+    <li ><a href="#method-c-list">::list</a>
+    
+    <li ><a href="#method-c-lookup">::lookup</a>
+    
+    <li ><a href="#method-c-needed-3F">::needed?</a>
+    
+    <li ><a href="#method-c-register">::register</a>
+    
+    <li ><a href="#method-c-to_hash">::to_hash</a>
+    
+    <li ><a href="#method-c-to_spec">::to_spec</a>
+    
+    <li ><a href="#method-i-content">#content</a>
+    
+    <li ><a href="#method-i-current_snapshot_repo_url">#current_snapshot_repo_url</a>
+    
+    <li ><a href="#method-i-download">#download</a>
+    
+    <li ><a href="#method-i-download_m2_snapshot">#download_m2_snapshot</a>
+    
+    <li ><a href="#method-i-fail_download">#fail_download</a>
+    
+    <li ><a href="#method-i-from">#from</a>
+    
+    <li ><a href="#method-i-has_content-3F">#has_content?</a>
+    
+    <li class="calls-super" ><a href="#method-i-needed-3F">#needed?</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::Artifact">
+  <h1 id="class-Buildr::Artifact" class="class">
+    class Buildr::Artifact
+  </h1>
+
+  <section class="description">
+    
+<p>A file task referencing an artifact in the local repository.</p>
+
+<p>This task includes all the artifact attributes (group, id, version, etc).
+It points to the artifact&#39;s path in the local repository. When invoked,
+it will download the artifact into the local repository if the artifact
+does not already exist.</p>
+
+<p>Note: You can enhance this task to create the artifact yourself, e.g.
+download it from a site that doesn&#39;t have a remote repository
+structure, copy it from a different disk, etc.</p>
+
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+    <section class="constants-list">
+      <header>
+        <h3>Constants</h3>
+      </header>
+      <dl>
+      
+        <dt id="DEFAULT_TYPE">DEFAULT_TYPE
+        
+        <dd><p>The default artifact type.</p>
+        
+      
+      </dl>
+    </section>
+    
+
+    
+
+    
+     <section id="public-class-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Public Class Methods</h3>
+       </header>
+
+    
+      <div id="method-c-hash_to_file_name" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            hash_to_file_name(spec_hash) &rarr; file_name
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Convert a hash spec to a file name.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="hash_to_file_name-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 382</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">hash_to_file_name</span>(<span class="ruby-identifier">hash</span>)
+  <span class="ruby-identifier">version</span> = <span class="ruby-node">&quot;-#{hash[:version]}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value">:version</span>]
+  <span class="ruby-identifier">classifier</span> = <span class="ruby-node">&quot;-#{hash[:classifier]}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value">:classifier</span>]
+  <span class="ruby-node">&quot;#{hash[:id]}#{version}#{classifier}.#{extract_type(hash[:type]) || DEFAULT_TYPE}&quot;</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-list" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            list &rarr; specs
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Returns an array of specs for all the registered artifacts. (Anything
+created from artifact, or package).</p>
+          
+          
+
+          
+          <div class="method-source-code" id="list-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 313</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">list</span>
+  <span class="ruby-ivar">@artifacts</span> <span class="ruby-operator">||=</span> {}
+  <span class="ruby-ivar">@artifacts</span>.<span class="ruby-identifier">keys</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-lookup" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            lookup(spec) &rarr; Artifact
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Lookup a previously registered artifact task based on its specification
+(String or <a href="../Hash.html">Hash</a>).</p>
+          
+          
+
+          
+          <div class="method-source-code" id="lookup-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 304</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">lookup</span>(<span class="ruby-identifier">spec</span>)
+  <span class="ruby-ivar">@artifacts</span> <span class="ruby-operator">||=</span> {}
+  <span class="ruby-ivar">@artifacts</span>[<span class="ruby-identifier">to_spec</span>(<span class="ruby-identifier">spec</span>)]
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-needed-3F" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">needed?</span><span
+            class="method-args">()</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          <p>Force overwriting target since we don&#39;t have source file to check for
+timestamp modification</p>
+          
+          
+
+          
+          <div class="method-source-code" id="needed-3F-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 450</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">needed?</span>
+  <span class="ruby-keyword">true</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-register" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            register(artifacts) &rarr; artifacts
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Register an artifact task(s) for later lookup (see lookup).</p>
+          
+          
+
+          
+          <div class="method-source-code" id="register-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 322</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">register</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">tasks</span>)
+  <span class="ruby-ivar">@artifacts</span> <span class="ruby-operator">||=</span> {}
+  <span class="ruby-identifier">fail</span> <span class="ruby-string">&#39;You can only register an artifact task, one of the arguments is not a Task that responds to to_spec&#39;</span> <span class="ruby-keyword">unless</span>
+    <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">all?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:to_spec</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:invoke</span>) }
+  <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@artifacts</span>[<span class="ruby-identifier">task</span>.<span class="ruby-identifier">to_spec</span>] = <span class="ruby-identifier">task</span> }
+  <span class="ruby-identifier">tasks</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-to_hash" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            to_hash(spec_hash) &rarr; spec_hash
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            to_hash(spec_string) &rarr; spec_hash
+          </span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            to_hash(artifact) &rarr; spec_hash
+          </span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Turn a spec into a hash. This method accepts a String, <a
+href="../Hash.html">Hash</a> or any object that responds to the method
+to_spec. There are several reasons to use this method:</p>
+<ul><li>
+<p>You can pass anything that could possibly be a spec, and get a hash.</p>
+</li><li>
+<p>It will check that the spec includes the group identifier, artifact
+identifier and version number and set the file type, if missing.</p>
+</li><li>
+<p>It will always return a new specs hash.</p>
+</li></ul>
+          
+          
+
+          
+          <div class="method-source-code" id="to_hash-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 341</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_hash</span>(<span class="ruby-identifier">spec</span>)
+  <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:to_spec</span>)
+    <span class="ruby-identifier">to_hash</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">to_spec</span>
+  <span class="ruby-keyword">elsif</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">spec</span>
+    <span class="ruby-identifier">rake_check_options</span> <span class="ruby-identifier">spec</span>, <span class="ruby-value">:id</span>, <span class="ruby-value">:group</span>, <span class="ruby-value">:type</span>, <span class="ruby-value">:classifier</span>, <span class="ruby-value">:version</span>, <span class="ruby-value">:scope</span>
+    <span class="ruby-comment"># Sanitize the hash and check it&#39;s valid.</span>
+    <span class="ruby-identifier">spec</span> = <span class="ruby-constant">ARTIFACT_ATTRIBUTES</span>.<span class="ruby-identifier">inject</span>({}) { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">spec</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">spec</span>[<span class="ruby-identifier">k</span>] ; <span class="ruby-identifier">h</span> }
+    <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Missing group identifier for #{spec.inspect}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>[<span class="ruby-value">:group</span>]
+    <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Missing artifact identifier for #{spec.inspect}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>[<span class="ruby-value">:id</span>]
+    <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Missing version for #{spec.inspect}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>[<span class="ruby-value">:version</span>]
+    <span class="ruby-identifier">spec</span>[<span class="ruby-value">:type</span>] = (<span class="ruby-identifier">spec</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">DEFAULT_TYPE</span>).<span class="ruby-identifier">to_sym</span>
+    <span class="ruby-identifier">spec</span>
+  <span class="ruby-keyword">elsif</span> <span class="ruby-constant">String</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">spec</span>
+    <span class="ruby-identifier">group</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">version</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">rest</span> = <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;:&#39;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">part</span><span class="ruby-operator">|</span> <span class="ruby-identifier">part</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">part</span> }
+    <span class="ruby-keyword">unless</span> <span class="ruby-identifier">rest</span>.<span class="ruby-identifier">empty?</span>
+      <span class="ruby-comment"># Optional classifier comes before version.</span>
+      <span class="ruby-identifier">classifier</span>, <span class="ruby-identifier">version</span> = <span class="ruby-identifier">version</span>, <span class="ruby-identifier">rest</span>.<span class="ruby-identifier">shift</span>
+      <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Expecting &lt;group:id:type:version&gt; or &lt;group:id:type:classifier:version&gt;, found &lt;#{spec}&gt;&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">rest</span>.<span class="ruby-identifier">empty?</span>
+    <span class="ruby-keyword">end</span>
+    <span class="ruby-identifier">to_hash</span> <span class="ruby-value">:group=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">group</span>, <span class="ruby-value">:id=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">id</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">type</span>, <span class="ruby-value">:version=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">version</span>, <span class="ruby-value">:classifier=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">classifier</span>
+  <span class="ruby-keyword">else</span>
+    <span class="ruby-identifier">fail</span> <span class="ruby-string">&#39;Expecting a String, Hash or object that responds to to_spec&#39;</span>
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-to_spec" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            to_spec(spec_hash) &rarr; spec_string
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Convert a hash back to a spec string. This method accepts a string, hash or
+any object that responds to to_spec.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="to_spec-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 371</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_spec</span>(<span class="ruby-identifier">hash</span>)
+  <span class="ruby-identifier">hash</span> = <span class="ruby-identifier">to_hash</span>(<span class="ruby-identifier">hash</span>) <span class="ruby-keyword">unless</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">hash</span>
+  <span class="ruby-identifier">version</span> = <span class="ruby-node">&quot;:#{hash[:version]}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value">:version</span>]
+  <span class="ruby-identifier">classifier</span> = <span class="ruby-node">&quot;:#{hash[:classifier]}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value">:classifier</span>]
+  <span class="ruby-node">&quot;#{hash[:group]}:#{hash[:id]}:#{hash[:type] || DEFAULT_TYPE}#{classifier}#{version}&quot;</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-content" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            content(string) &rarr; self
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            content(Proc) &rarr; self
+          </span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Use this when you want to install or upload an artifact from a given
+content, for example:</p>
+
+<pre>readme = artifact(&#39;com.example:readme:txt:1.0&#39;).content(&lt;&lt;-EOF
+  Please visit our website at http://example.com/readme
+&lt;&lt;EOF
+install readme</pre>
+
+<p>If the argument is a Proc the it will be called when the artifact is
+written out. If the result is not a proc and not a string, it will be
+converted to a string using to_s</p>
+          
+          
+
+          
+          <div class="method-source-code" id="content-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 436</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">content</span>(<span class="ruby-identifier">string</span> = <span class="ruby-keyword">nil</span>)
+  <span class="ruby-keyword">unless</span> <span class="ruby-identifier">string</span>
+    <span class="ruby-ivar">@content</span> = <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">call</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Proc</span>)
+    <span class="ruby-keyword">return</span> <span class="ruby-ivar">@content</span>
+  <span class="ruby-keyword">end</span>
+
+  <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@content</span>
+    <span class="ruby-identifier">enhance</span> <span class="ruby-keyword">do</span>
+      <span class="ruby-identifier">write</span> <span class="ruby-identifier">name</span>, <span class="ruby-keyword">self</span>.<span class="ruby-identifier">content</span>
+    <span class="ruby-keyword">end</span>
+
+    <span class="ruby-keyword">class</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword">self</span>
+      <span class="ruby-comment"># Force overwriting target since we don&#39;t have source file</span>
+      <span class="ruby-comment"># to check for timestamp modification</span>
+      <span class="ruby-keyword">def</span> <span class="ruby-identifier">needed?</span>
+        <span class="ruby-keyword">true</span>
+      <span class="ruby-keyword">end</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-ivar">@content</span> = <span class="ruby-identifier">string</span>
+  <span class="ruby-identifier">pom</span>.<span class="ruby-identifier">content</span> <span class="ruby-identifier">pom_xml</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">pom</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">self</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">pom</span>.<span class="ruby-identifier">has_content?</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-from" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            from(path) &rarr; self
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Use this when you want to install or upload an artifact from a given file,
+for example:</p>
+
+<pre class="ruby"><span class="ruby-identifier">test</span> = <span class="ruby-identifier">artifact</span>(<span class="ruby-string">&#39;group:id:jar:1.0&#39;</span>).<span class="ruby-identifier">from</span>(<span class="ruby-string">&#39;test.jar&#39;</span>)
+<span class="ruby-identifier">install</span> <span class="ruby-identifier">test</span>
+</pre>
+
+<p>See also Buildr#install and Buildr#upload.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="from-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 414</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">from</span>(<span class="ruby-identifier">path</span>)
+  <span class="ruby-ivar">@from</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Rake</span><span class="ruby-operator">::</span><span class="ruby-constant">Task</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">:</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">path</span>.<span class="ruby-identifier">to_s</span>)
+  <span class="ruby-identifier">enhance</span> [<span class="ruby-ivar">@from</span>] <span class="ruby-keyword">do</span>
+    <span class="ruby-identifier">mkpath</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">name</span>)
+    <span class="ruby-identifier">cp</span> <span class="ruby-ivar">@from</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">name</span>
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-identifier">pom</span>.<span class="ruby-identifier">content</span> <span class="ruby-identifier">pom_xml</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">pom</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">self</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">pom</span>.<span class="ruby-identifier">has_content?</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="protected-instance-5Buntitled-5D-method-details" class="method-section">
+       <header>
+         <h3>Protected Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-current_snapshot_repo_url" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">current_snapshot_repo_url</span><span
+            class="method-args">(repo_url)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="current_snapshot_repo_url-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 518</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">current_snapshot_repo_url</span>(<span class="ruby-identifier">repo_url</span>)
+  <span class="ruby-keyword">begin</span>
+    <span class="ruby-identifier">metadata_path</span> = <span class="ruby-node">&quot;#{group_path}/#{id}/#{version}/maven-metadata.xml&quot;</span>
+    <span class="ruby-identifier">metadata_xml</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
+    <span class="ruby-constant">URI</span>.<span class="ruby-identifier">download</span> <span class="ruby-identifier">repo_url</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">metadata_path</span>, <span class="ruby-identifier">metadata_xml</span>
+    <span class="ruby-identifier">metadata</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">metadata_xml</span>.<span class="ruby-identifier">string</span>).<span class="ruby-identifier">root</span>
+    <span class="ruby-identifier">timestamp</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">metadata</span>, <span class="ruby-string">&#39;//timestamp&#39;</span>)
+    <span class="ruby-identifier">build_number</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">metadata</span>, <span class="ruby-string">&#39;//buildNumber&#39;</span>)
+    <span class="ruby-identifier">error</span> <span class="ruby-node">&quot;No timestamp provided for the snapshot #{to_spec}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">timestamp</span>.<span class="ruby-identifier">nil?</span>
+    <span class="ruby-identifier">error</span> <span class="ruby-node">&quot;No build number provided for the snapshot #{to_spec}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">build_number</span>.<span class="ruby-identifier">nil?</span>
+    <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">timestamp</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">build_number</span>.<span class="ruby-identifier">nil?</span>
+    <span class="ruby-identifier">snapshot_of</span> = <span class="ruby-identifier">version</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">version</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-value">9</span>]
+    <span class="ruby-identifier">classifier_snippet</span> = (<span class="ruby-identifier">classifier</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>) <span class="ruby-operator">?</span> <span class="ruby-node">&quot;-#{classifier}&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&quot;&quot;</span>
+    <span class="ruby-identifier">repo_url</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;#{group_path}/#{id}/#{version}/#{id}-#{snapshot_of}-#{timestamp.text}-#{build_number.text}#{classifier_snippet}.#{type}&quot;</span>
+  <span class="ruby-keyword">rescue</span> <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">NotFoundError</span>
+    <span class="ruby-keyword">nil</span>
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-download" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            download
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Downloads an artifact from one of the remote repositories, and stores it in
+the local repository. Raises an exception if the artifact is not found.</p>
+
+<p>This method attempts to download the artifact from each repository in the
+order in which they are returned from remote, until successful.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="download-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 474</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">download</span>
+  <span class="ruby-identifier">trace</span> <span class="ruby-node">&quot;Downloading #{to_spec}&quot;</span>
+  <span class="ruby-identifier">remote</span> = <span class="ruby-constant">Buildr</span>.<span class="ruby-identifier">repositories</span>.<span class="ruby-identifier">remote_uri</span>
+  <span class="ruby-identifier">remote</span> = <span class="ruby-identifier">remote</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">repo_url</span><span class="ruby-operator">|</span> <span class="ruby-identifier">repo_url</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&#39;/&#39;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">repo_url</span>.<span class="ruby-identifier">path</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-string">&#39;/&#39;</span> }
+  <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Unable to download #{to_spec}. No remote repositories defined.&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">remote</span>.<span class="ruby-identifier">empty?</span>
+  <span class="ruby-identifier">exact_success</span> = <span class="ruby-identifier">remote</span>.<span class="ruby-identifier">find</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">repo_url</span><span class="ruby-operator">|</span>
+    <span class="ruby-keyword">begin</span>
+      <span class="ruby-identifier">path</span> = <span class="ruby-node">&quot;#{group_path}/#{id}/#{version}/#{File.basename(name)}&quot;</span>
+      <span class="ruby-identifier">download_artifact</span>(<span class="ruby-identifier">repo_url</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">path</span>)
+      <span class="ruby-keyword">true</span>
+    <span class="ruby-keyword">rescue</span> <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">NotFoundError</span>
+      <span class="ruby-keyword">false</span>
+    <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Exception</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">error</span>
+      <span class="ruby-identifier">info</span> <span class="ruby-identifier">error</span>
+      <span class="ruby-identifier">trace</span> <span class="ruby-identifier">error</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>)
+      <span class="ruby-keyword">false</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+
+  <span class="ruby-keyword">if</span> <span class="ruby-identifier">exact_success</span>
+    <span class="ruby-keyword">return</span>
+  <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">snapshot?</span>
+    <span class="ruby-identifier">download_m2_snapshot</span>(<span class="ruby-identifier">remote</span>)
+  <span class="ruby-keyword">else</span>
+    <span class="ruby-identifier">fail_download</span>(<span class="ruby-identifier">remote</span>)
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-download_m2_snapshot" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">download_m2_snapshot</span><span
+            class="method-args">(remote_uris)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="download_m2_snapshot-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 502</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">download_m2_snapshot</span>(<span class="ruby-identifier">remote_uris</span>)
+  <span class="ruby-identifier">remote_uris</span>.<span class="ruby-identifier">find</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">repo_url</span><span class="ruby-operator">|</span>
+    <span class="ruby-identifier">snapshot_url</span> = <span class="ruby-identifier">current_snapshot_repo_url</span>(<span class="ruby-identifier">repo_url</span>)
+    <span class="ruby-keyword">if</span> <span class="ruby-identifier">snapshot_url</span>
+      <span class="ruby-keyword">begin</span>
+        <span class="ruby-identifier">download_artifact</span> <span class="ruby-identifier">snapshot_url</span>
+        <span class="ruby-keyword">true</span>
+      <span class="ruby-keyword">rescue</span> <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">NotFoundError</span>
+        <span class="ruby-keyword">false</span>
+      <span class="ruby-keyword">end</span>
+    <span class="ruby-keyword">else</span>
+      <span class="ruby-keyword">false</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span> <span class="ruby-keyword">or</span> <span class="ruby-identifier">fail_download</span>(<span class="ruby-identifier">remote_uris</span>)
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-fail_download" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">fail_download</span><span
+            class="method-args">(remote_uris)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="fail_download-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 537</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">fail_download</span>(<span class="ruby-identifier">remote_uris</span>)
+  <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Failed to download #{to_spec}, tried the following repositories:\n#{remote_uris.join(&quot;\n&quot;)}&quot;</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-has_content-3F" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">has_content?</span><span
+            class="method-args">()</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="has_content-3F-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 462</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">has_content?</span>
+  <span class="ruby-ivar">@from</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@content</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-needed-3F" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            needed?
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Validates whether artifact is required to be downloaded from repository</p>
+          
+          
+            <div class="method-calls-super">
+              Calls superclass method
+              
+            </div>
+          
+
+          
+          <div class="method-source-code" id="needed-3F-source">
+            <pre><span class="ruby-comment"># File lib/buildr/packaging/artifact.rb, line 547</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">needed?</span>
+  <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">snapshot?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">name</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">update_snapshot?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">old?</span>)
+  <span class="ruby-keyword">super</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer">Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
+  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
+</footer>
+