Documentation to packaging doc to document the new concatenate and transform 
methods


Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/dbdcaa1b
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/dbdcaa1b
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/dbdcaa1b

Branch: refs/heads/master
Commit: dbdcaa1bfc08d2c80ccb6eb61d9b13759c66f3e3
Parents: d08c7bc
Author: Antoine Toulme <[email protected]>
Authored: Sun Jul 30 15:04:43 2017 -0700
Committer: Antoine Toulme <[email protected]>
Committed: Sun Jul 30 15:04:43 2017 -0700

----------------------------------------------------------------------
 doc/packaging.textile | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/buildr/blob/dbdcaa1b/doc/packaging.textile
----------------------------------------------------------------------
diff --git a/doc/packaging.textile b/doc/packaging.textile
index 318a8c8..6ea599a 100644
--- a/doc/packaging.textile
+++ b/doc/packaging.textile
@@ -142,6 +142,8 @@ For example, when you use @package :jar@, under the hood it 
specifies to include
 
 If you need to get rid of all the included files, call the @clean@ method. 
Some packaging types default to adding various files and directories, for 
example, JAR packaging will include all the compiled classes and resources.
 
+h2(#merging). Merging archives
+
 You can also merge two ZIP files together, expanding the content of one ZIP 
into the other.  For example:
 
 {% highlight ruby %}
@@ -155,6 +157,25 @@ If you need to be more selective, you can apply the 
include/exclude pattern to t
 package(:zip).merge(_('bigbad.war')).exclude('libs/**/*')
 {% endhighlight %}
 
+h3(#transforming). Transforming files while merging them
+
+You may need to have special treatment for files that you are merging from 
multiple locations.
+
+If you wish to concatenate the file contents, you can perform the following:
+
+{% highlight ruby %}
+package(:zip).merge(_('part1.zip'), 
_('part2.zip')).concatenate('META-INF/services/spring.providers')
+{% endhighlight %}
+
+If you need to transform the file contents to assemble the final output, you 
can work with the @transform@ method.
+The transform method takes a block to process the contents of all the matching 
paths, as the zip file is assembled.
+
+{% highlight ruby %}
+package(:zip).merge(_('part1.zip'), _('part2.zip')).transform('plugin.xml') do 
|plugin_xml_files|
+  return "<plugin>#{plugin_xml_files.map {|xml| 
xml.match('<plugin>(.*)</plugin>')[1]}}</plugin>"
+end
+{% endhighlight %}
+
 
 h2(#jar). Packaging JARs
 

Reply via email to