Updating dependencies.
[arvados.git] / tasks / gem.rake
index ea579038b3342db2a01694ef6c8e4ed4add5ad13..0192db8d94636cf15929814dd1d3fbe10cbb4185 100644 (file)
@@ -1,4 +1,7 @@
-require 'rake/gempackagetask'
+require 'rubygems/package_task'
+require 'rake/clean'
+
+CLOBBER.include('pkg')
 
 namespace :gem do
   GEM_SPEC = Gem::Specification.new do |s|
@@ -9,32 +12,41 @@ namespace :gem do
 
     s.name = PKG_NAME
     s.version = PKG_VERSION
+    s.author = PKG_AUTHOR
+    s.email = PKG_AUTHOR_EMAIL
     s.summary = PKG_SUMMARY
     s.description = PKG_DESCRIPTION
 
     s.files = PKG_FILES.to_a
     s.executables << 'google-api'
 
-    s.has_rdoc = true
-    s.extra_rdoc_files = %w( README )
-    s.rdoc_options.concat ['--main',  'README']
+    s.extra_rdoc_files = %w( README.md )
+    s.rdoc_options.concat ['--main',  'README.md']
+
+    # Dependencies used in the main library
+    s.add_runtime_dependency('signet', '>= 0.4.0')
+    s.add_runtime_dependency('addressable', '>= 2.2.3')
+    s.add_runtime_dependency('autoparse', '>= 0.3.1')
+    s.add_runtime_dependency('faraday', '~> 0.8.1')
+    s.add_runtime_dependency('multi_json', '>= 1.3.0')
+    s.add_runtime_dependency('extlib', '>= 0.9.15')
+    s.add_runtime_dependency('uuidtools', '>= 2.1.0')
 
-    s.add_runtime_dependency('signet', '>= 0.1.1')
-    s.add_runtime_dependency('addressable', '>= 2.2.1')
-    s.add_runtime_dependency('httpadapter', '>= 0.2.0')
-    s.add_runtime_dependency('json', '>= 1.1.9')
+    # Dependencies used in the CLI
+    s.add_runtime_dependency('launchy', '>= 2.0.0')
 
-    s.add_development_dependency('rake', '>= 0.7.3')
-    s.add_development_dependency('rspec', '>= 1.0.8')
-    s.add_development_dependency('launchy', '>= 0.3.2')
-    s.add_development_dependency('diff-lcs', '>= 1.1.2')
+    # Dependencies used in the examples
+    s.add_development_dependency('sinatra', '>= 1.2.0')
+
+    s.add_development_dependency('rake', '>= 0.9.0')
+    s.add_development_dependency('rspec', '~> 2.10.0')
 
     s.require_path = 'lib'
 
     s.homepage = PKG_HOMEPAGE
   end
 
-  Rake::GemPackageTask.new(GEM_SPEC) do |p|
+  Gem::PackageTask.new(GEM_SPEC) do |p|
     p.gem_spec = GEM_SPEC
     p.need_tar = true
     p.need_zip = true
@@ -45,6 +57,21 @@ namespace :gem do
     puts GEM_SPEC.to_ruby
   end
 
+  desc "Generates .gemspec file"
+  task :gemspec do
+    spec_string = GEM_SPEC.to_ruby
+
+    begin
+      Thread.new { eval("$SAFE = 3\n#{spec_string}", binding) }.join
+    rescue
+      abort "unsafe gemspec: #{$!}"
+    else
+      File.open("#{GEM_SPEC.name}.gemspec", 'w') do |file|
+        file.write spec_string
+      end
+    end
+  end
+
   desc 'Install the gem'
   task :install => ['clobber', 'gem:package'] do
     sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}"
@@ -69,4 +96,4 @@ end
 desc 'Alias to gem:package'
 task 'gem' => 'gem:package'
 
-task 'clobber' => ['gem:clobber_package']
+task 'gem:release' => 'gem:gemspec'