You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by Ben Browning <bb...@redhat.com> on 2010/08/25 21:07:31 UTC

[PATCH 2/2] Build java and ruby versions of client gem

The Rakefile was modified so that 'rake gem' or 'rake package'
builds both the java and ruby versions. If you manually run
'gem build deltacloud-client.gemspec' then the version built
will depend on which interpreter you're using.
---
 client/Rakefile                  |   11 +++++++++--
 client/deltacloud-client.gemspec |   10 ++++++++--
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/client/Rakefile b/client/Rakefile
index b539ed5..5d7f1f1 100644
--- a/client/Rakefile
+++ b/client/Rakefile
@@ -25,8 +25,15 @@ task 'documentation' do
   load 'lib/documentation.rb'
 end
 
-Rake::GemPackageTask.new(@spec) do |pkg|
-  pkg.need_tar = true
+@specs = ['ruby', 'java'].inject({}) do |hash, spec_platform|
+  $platform = spec_platform
+  hash.update(spec_platform => Gem::Specification.load('deltacloud-client.gemspec'))
+end
+
+@specs.values.each do |spec|
+  Rake::GemPackageTask.new(spec) do |pkg|
+    pkg.need_tar = true
+  end
 end
 
 if Gem.available?('rspec')
diff --git a/client/deltacloud-client.gemspec b/client/deltacloud-client.gemspec
index f756108..da72343 100644
--- a/client/deltacloud-client.gemspec
+++ b/client/deltacloud-client.gemspec
@@ -17,7 +17,7 @@
 # under the License.
 
 
-@spec=Gem::Specification.new do |s|
+Gem::Specification.new do |s|
   s.author = 'Red Hat, Inc.'
   s.homepage = "http://www.deltacloud.org"
   s.email = 'deltacloud-users@lists.fedorahosted.org'
@@ -32,7 +32,13 @@
   s.test_files= Dir.glob("specs/**/**")
   s.extra_rdoc_files = Dir["COPYING"]
 
+  # Rakefile needs to create spec for both platforms (ruby and java), using the
+  # $platform global variable. In all other cases, we figure it out from
+  # RUBY_PLATFORM.
+  s.platform = $platform || RUBY_PLATFORM[/java/] || 'ruby'
+
   s.add_dependency('rest-client', '>= 1.4.2')
-  s.add_dependency('nokogiri', '>= 1.4.1')
+  s.add_dependency('nokogiri', '>= 1.4.1') if s.platform.to_s == 'ruby'
+  s.add_dependency('nokogiri', '>= 1.5.0.beta.2') if s.platform.to_s == 'java'
   s.add_development_dependency('rspec', '>= 1.3.0')
 end
-- 
1.7.2.1