require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'rake/packagetask' require 'rake/gempackagetask' require 'rubygems' PKG_VERSION = ENV['version'] || '1.0.1' # VORuby version task :default => [:doc] # By default, create documentation: rake desc 'Run all tests' task :test => ['spacetime:test', 'adql:test', 'resource:test', 'voevent:test', 'votable:test', 'simple:test', 'gestalt:test', 'registry:test', 'resolver:test', 'plastic:test'] # rake test desc 'Create all available documentation' task :doc => [:apidoc] # rake doc desc 'Copy the contents of lib/voruby to a specified directory' task :deploy do |t| # rake dest=~/tmp deploy cp_r 'lib/voruby', ENV['dest'] if ENV['dest'] end Rake::PackageTask.new('voruby') do |pkg| # rake package or rake libonly=true package pkg.version = PKG_VERSION pkg.need_tar_gz = true pkg.package_files.include('lib/voruby/**/*.rb') if ENV['libonly'] pkg.package_files.include( Dir.glob("**/*.*").delete_if { |item| item.include?(".svn") }.push('LICENSE').push('REQUIREMENTS') ) if !ENV['libonly'] end # rake apidoc (if you want diagrams and you have graphviz installed, use rake diagrams=true apidoc, but it will take awhile) Rake::RDocTask.new(:apidoc) do |rd| rd.rdoc_dir = "doc/api" rd.title = "VORuby API Documentation" rd.rdoc_files.include(FileList['lib/voruby/**/*.rb']) rd.options << '--diagram' if ENV['diagrams'] end namespace 'spacetime' do Rake::TestTask.new(:test) do |t| # rake spacetime:test t.test_files = FileList['test/spacetime/unittest.rb'] t.verbose = true t.warning = true end end namespace 'adql' do Rake::TestTask.new(:test) do |t| # rake adql:test t.test_files = FileList['test/adql/unittest.rb'] t.verbose = true t.warning = true end end namespace 'resource' do # rake resource:test task :test => ['voresource:test', 'vodataservice:test', 'voregistry:test', 'openskynode:test', 'sia:test', 'conesearch:test'] namespace 'stsci' do Rake::TestTask.new(:test) do |t| # rake resource:stsci:test t.test_files = FileList['test/resources/unittest_stsci.rb'] t.verbose = true end end end namespace 'voresource' do task :test => ['v0_10:test', 'v1_0:test'] namespace 'v1_0' do Rake::TestTask.new(:test) do |t| # rake voresource:v1_0:test t.test_files = FileList['test/resources/voresource/unittest_v1_0.rb'] t.verbose = true end end namespace 'v0_10' do Rake::TestTask.new(:test) do |t| # rake voresource:v0_10:test t.test_files = FileList['test/resources/voresource/unittest_v0_10.rb'] t.verbose = true end end # VOResource v0.9 seems to be essentially obsolete and therefore I haven't written # tests for it. end namespace 'vodataservice' do task :test => ['v0_5:test', 'v1_0:test'] namespace 'v1_0' do Rake::TestTask.new(:test) do |t| # rake vodataservice:v1_0:test t.test_files = FileList['test/resources/vodataservice/unittest_v1_0.rb'] t.verbose = true end end namespace 'v0_5' do Rake::TestTask.new(:test) do |t| # rake vodataservice:vo_5:test t.test_files = FileList['test/resources/vodataservice/unittest_v0_5.rb'] t.verbose = true end end # VODataService 0.4 seems to be essentially obsolete and therefore I haven't written # tests for it. end namespace 'voregistry' do task :test => ['v0_3:test', 'v1_0:test'] namespace 'v1_0' do Rake::TestTask.new(:test) do |t| # rake voregistry:v1_0:test t.test_files = FileList['test/resources/voregistry/unittest_v1_0.rb'] t.verbose = true end end namespace 'v0_3' do Rake::TestTask.new(:test) do |t| # rake voregistry:v0_3:test t.test_files = FileList['test/resources/voregistry/unittest_v0_3.rb'] t.verbose = true end end # VORegistry 0.2 seems to be essentially obsolete and therefore I haven't written # tests for it. end namespace 'openskynode' do task :test => ['v0_1:test'] namespace 'v0_1' do Rake::TestTask.new(:test) do |t| # rake openskyquery:v0_1:test t.test_files = FileList['test/resources/openskynode/unittest_v0_1.rb'] t.verbose = true end end end namespace 'sia' do task :test => ['v0_7:test', 'v1_0:test'] namespace 'v1_0' do Rake::TestTask.new(:test) do |t| # rake sia:v1_0:test t.test_files = FileList['test/resources/sia/unittest_v1_0.rb'] t.verbose = true end end namespace 'v0_7' do Rake::TestTask.new(:test) do |t| # rake sia:v0_7:test t.test_files = FileList['test/resources/sia/unittest_v0_7.rb'] t.verbose = true end end # SIA 0.6 seems to be essentially obsolete and therefore I haven't written # tests for it. end namespace 'conesearch' do task :test => ['v0_3:test', 'v1_0:test'] namespace 'v1_0' do Rake::TestTask.new(:test) do |t| # rake conesearch:v1_0:test t.test_files = FileList['test/resources/conesearch/unittest_v1_0.rb'] t.verbose = true end end namespace 'v0_3' do Rake::TestTask.new(:test) do |t| # rake conesearch:v0_3:test t.test_files = FileList['test/resources/conesearch/unittest_v0_3.rb'] t.verbose = true end end # ConeSeach 0.2 seems to be essentially obsolete and therefore I haven't written # tests for it. end namespace 'votable' do Rake::TestTask.new(:test) do |t| # rake votable:test t.test_files = FileList['test/votables/unittest.rb'] t.verbose = true end end namespace 'voevent' do task :test => ['v1_0:test', 'v1_1:test'] namespace 'v1_0' do Rake::TestTask.new(:test) do |t| # rake voevent:v1_0:test t.test_files = FileList['test/voevent/unittest_v1_0.rb'] t.verbose = true end end namespace 'v1_1' do Rake::TestTask.new(:test) do |t| # rake voevent:v1_0:test t.test_files = FileList['test/voevent/unittest_v1_1.rb'] t.verbose = true end end end namespace 'stc' do namespace 'v1_20' do Rake::TestTask.new(:test) do |t| # rake stc:v1_20:test t.test_files = FileList['test/stc/unittest_v1_20.rb'] t.verbose = true end end end namespace 'simple' do Rake::TestTask.new(:test) do |t| # rake simple:test t.test_files = FileList['test/simple/unittest.rb'] t.verbose = true end end namespace 'gestalt' do Rake::TestTask.new(:test) do |t| # rake gestalt:test t.test_files = FileList['test/services/gestalt/unittest.rb'] t.verbose = true t.warning = true end end namespace 'registry' do task :test => ['stsci:test'] namespace 'stsci' do Rake::TestTask.new(:test) do |t| # rake registry:stsci:test t.test_files = FileList['test/services/registry/unittest.rb'] t.verbose = true end end end namespace 'resolver' do task :test => 'sesame:test' namespace 'sesame' do Rake::TestTask.new(:test) do |t| # rake resolver:sesame:test t.test_files = FileList['test/services/resolver/unittest.rb'] t.verbose = true end end end namespace 'plastic' do Rake::TestTask.new(:test) do |t| # rake plastic:test t.test_files = FileList['test/plastic/unittest.rb'] t.verbose = true end end dist_dirs = ['lib', 'test'] spec = Gem::Specification.new do |s| s.files = FileList['Rakefile.rb', 'LICENSE', 'REQUIREMENTS'] dist_dirs.each do |dir| s.files = s.files + Dir.glob( "#{dir}/**/*" ).delete_if { |item| item.include?( "\.svn" ) } end s.add_dependency('libxml-ruby', '>= 0.3.8') s.add_dependency('xml-mapping', '>= 0.8.1') s.requirements << 'libxml from http://xmlsoft.org/' s.has_rdoc = true s.author = 'David Gasson, Exequiel Fuentes, Chris Miller' s.email = 'dgasson@noao.edu' s.name = 'voruby' s.version = PKG_VERSION s.rubyforge_project = 'voruby' s.homepage = 'http://rubyforge.org/projects/voruby/' s.summary = 'Modules for interacting with the astronomical virtual observatory.' s.description = <<-EOF A set of Ruby modules to help provide access to the Virtual Observatory (VO). Includes support for VOTable, VORegistry, VOEvent, WESIX (an online source extraction service) and more. EOF end Rake::GemPackageTask.new(spec) do |pkg| # rake gem pkg.gem_spec = spec pkg.need_zip = true pkg.need_tar = true end