mongo-ruby-driver/Rakefile

122 lines
2.9 KiB
Ruby
Raw Normal View History

2009-12-21 18:09:51 +00:00
# -*- mode: ruby; -*-
2008-12-29 23:40:59 +00:00
require 'rubygems'
require 'rubygems/specification'
2008-12-04 21:38:04 +00:00
require 'fileutils'
2008-12-29 23:40:59 +00:00
require 'rake'
2008-11-22 01:00:51 +00:00
require 'rake/testtask'
2008-12-29 23:40:59 +00:00
require 'rake/gempackagetask'
2009-03-03 22:07:22 +00:00
begin
require 'rake/contrib/rubyforgepublisher'
rescue LoadError
end
require 'rbconfig'
include Config
2009-12-01 22:23:24 +00:00
ENV['TEST_MODE'] = 'TRUE'
2008-11-22 01:00:51 +00:00
2009-03-23 16:13:44 +00:00
gem_command = "gem"
gem_command = "gem1.9" if $0.match(/1\.9$/) # use gem1.9 if we used rake1.9
2009-03-23 16:13:44 +00:00
desc "Test the MongoDB Ruby driver."
task :test do
puts "\nThis option has changed."
puts "\nTo test the driver with the c-extensions:\nrake test:c\n"
puts "To test the pure ruby driver: \nrake test:ruby"
end
namespace :test do
desc "Test the driver with the c extension enabled."
task :c do
ENV['C_EXT'] = 'TRUE'
Rake::Task['test:unit'].invoke
Rake::Task['test:functional'].invoke
Rake::Task['test:pooled_threading'].invoke
ENV['C_EXT'] = nil
end
desc "Test the driver using pure ruby (no c extension)"
task :ruby do
ENV['C_EXT'] = nil
Rake::Task['test:unit'].invoke
Rake::Task['test:functional'].invoke
Rake::Task['test:pooled_threading'].invoke
end
Rake::TestTask.new(:unit) do |t|
t.test_files = FileList['test/unit/*_test.rb']
t.verbose = true
end
Rake::TestTask.new(:functional) do |t|
t.test_files = FileList['test/test*.rb']
t.verbose = true
end
2009-11-20 22:48:41 +00:00
2009-11-24 21:13:14 +00:00
Rake::TestTask.new(:pooled_threading) do |t|
t.test_files = FileList['test/threading/*.rb']
t.verbose = true
end
2009-11-23 18:13:14 +00:00
Rake::TestTask.new(:pair_count) do |t|
t.test_files = FileList['test/replica/count_test.rb']
t.verbose = true
end
2009-11-20 22:48:41 +00:00
Rake::TestTask.new(:pair_insert) do |t|
2009-11-23 18:13:14 +00:00
t.test_files = FileList['test/replica/insert_test.rb']
2009-11-20 22:48:41 +00:00
t.verbose = true
end
Rake::TestTask.new(:pooled_pair_insert) do |t|
t.test_files = FileList['test/replica/pooled_insert_test.rb']
t.verbose = true
end
2009-11-20 22:48:41 +00:00
Rake::TestTask.new(:pair_query) do |t|
t.test_files = FileList['test/replica/query_test.rb']
t.verbose = true
end
2008-11-22 01:00:51 +00:00
end
2008-12-04 21:38:04 +00:00
2008-12-04 21:44:21 +00:00
desc "Generate documentation"
2008-12-04 21:38:04 +00:00
task :rdoc do
version = eval(File.read("mongo-ruby-driver.gemspec")).version
out = File.join('html', version.to_s)
FileUtils.rm_rf('html')
system "rdoc --main README.rdoc --op #{out} --inline-source --quiet README.rdoc `find lib -name '*.rb'`"
end
desc "Publish documentation to mongo.rubyforge.org"
task :publish => [:rdoc] do
# Assumes docs are in ./html
Rake::RubyForgePublisher.new(GEM, RUBYFORGE_USER).upload
2008-12-04 21:38:04 +00:00
end
2008-12-29 23:40:59 +00:00
2009-03-02 16:49:56 +00:00
namespace :gem do
2008-12-29 23:40:59 +00:00
desc "Install the gem locally"
2009-01-16 20:01:31 +00:00
task :install do
sh <<EOS
2009-03-23 16:13:44 +00:00
#{gem_command} build mongo-ruby-driver.gemspec &&
#{gem_command} install mongo-*.gem &&
2009-01-16 21:09:31 +00:00
rm mongo-*.gem
2009-01-16 20:01:31 +00:00
EOS
2008-12-29 23:40:59 +00:00
end
2009-03-19 17:12:30 +00:00
desc "Install the optional c extensions"
task :install_extensions do
sh <<EOS
2009-03-23 16:13:44 +00:00
#{gem_command} build mongo-extensions.gemspec &&
#{gem_command} install mongo_ext-*.gem &&
2009-03-19 17:12:30 +00:00
rm mongo_ext-*.gem
EOS
end
2008-12-29 23:40:59 +00:00
end
task :default => :list
task :list do
system 'rake -T'
end