about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--tools/rakehelp.rb112
1 files changed, 44 insertions, 68 deletions
diff --git a/tools/rakehelp.rb b/tools/rakehelp.rb
index a630d1b..2a8f573 100644
--- a/tools/rakehelp.rb
+++ b/tools/rakehelp.rb
@@ -1,66 +1,67 @@
+require 'rcov/rcovtask'
 
 def make(makedir)
-    Dir.chdir(makedir) do
-        sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
-    end
+  Dir.chdir(makedir) do
+    sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
+  end
 end
 
 
 def extconf(dir)
-    Dir.chdir(dir) do ruby "extconf.rb" end
+  Dir.chdir(dir) do ruby "extconf.rb" end
 end
 
 
 def setup_tests
-    Rake::TestTask.new do |t|
-        t.libs << "test"
-        t.test_files = FileList['test/test*.rb']
-        t.verbose = true
-    end
+  Rake::TestTask.new do |t|
+    t.libs << "test"
+    t.test_files = FileList['test/test*.rb']
+    t.verbose = true
+  end
 end
 
 
 def setup_clean otherfiles
-    files = ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log'] + otherfiles
-    CLEAN.include(files)
+  files = ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log'] + otherfiles
+  CLEAN.include(files)
 end
 
 
 def setup_rdoc files
-    Rake::RDocTask.new do |rdoc|
-        rdoc.rdoc_dir = 'doc/rdoc'
-        rdoc.options << '--line-numbers'
-        rdoc.rdoc_files.add(files)
-    end
+  Rake::RDocTask.new do |rdoc|
+    rdoc.rdoc_dir = 'doc/rdoc'
+    rdoc.options << '--line-numbers'
+    rdoc.rdoc_files.add(files)
+  end
 end
 
 
 def setup_extension(dir, extension)
-    ext = "ext/#{dir}"
-    ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}"
-    ext_files = FileList[
+  ext = "ext/#{dir}"
+  ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}"
+  ext_files = FileList[
     "#{ext}/*.c",
     "#{ext}/*.h",
     "#{ext}/extconf.rb",
     "#{ext}/Makefile",
     "lib"
-    ]
-    
-    task "lib" do
-        directory "lib"
-    end
-
-    desc "Builds just the #{extension} extension"
-    task extension.to_sym => ["#{ext}/Makefile", ext_so ]
-
-    file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do
-        extconf "#{ext}"
-    end
-
-    file ext_so => ext_files do
-        make "#{ext}"
-        cp ext_so, "lib"
-    end
+  ]
+
+  task "lib" do
+    directory "lib"
+  end
+
+  desc "Builds just the #{extension} extension"
+  task extension.to_sym => ["#{ext}/Makefile", ext_so ]
+
+  file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do
+    extconf "#{ext}"
+  end
+
+  file ext_so => ext_files do
+    make "#{ext}"
+    cp ext_so, "lib"
+  end
 end
 
 
@@ -74,13 +75,13 @@ def base_gem_spec(pkg_name, pkg_version)
     s.platform = Gem::Platform::RUBY
     s.has_rdoc = true
     s.extra_rdoc_files = [ "README" ]
-    
+
     s.files = %w(COPYING LICENSE README Rakefile) +
       Dir.glob("{bin,doc/rdoc,test,lib}/**/*") +
       Dir.glob("ext/**/*.{h,c,rb}") +
       Dir.glob("examples/**/*.rb") +
       Dir.glob("tools/*.rb")
-    
+
     s.require_path = "lib"
     s.extensions = FileList["ext/**/extconf.rb"].to_a
     s.bindir = "bin"
@@ -90,7 +91,7 @@ end
 def setup_gem(pkg_name, pkg_version)
   spec = base_gem_spec(pkg_name, pkg_version)
   yield spec if block_given?
-    
+
   Rake::GemPackageTask.new(spec) do |p|
     p.gem_spec = spec
     p.need_tar = true
@@ -110,33 +111,8 @@ def sub_project(project, *targets)
   end
 end
 
-#==============================================================
-# A set of rake tasks for using the Rcov code coverage utility
-# http://www.soapboxsoftware.org/articles/2006/05/06/another-rake-task-for-rcov
-#==============================================================
-
-require 'rake/clean'
-
-rcov_path = ENV['RCOV_PATH'] ? ENV['RCOV_PATH'] : "#{Config::CONFIG['bindir']}/rcov"
-rcov_test_output = "./test/coverage"
-rcov_unit_test_output = "#{rcov_test_output}/unit"
-rcov_exclude="rubygems,test/test_"
-# Add our created paths to the 'rake clobber' list
-CLOBBER.include(rcov_unit_test_output)
-
-desc 'Removes all previous unit test coverage information'
-task (:reset_unit_test_coverage) do |t|
-  mkdir_p rcov_unit_test_output
-  rm_rf rcov_unit_test_output
-  mkdir rcov_unit_test_output
-end
-
-desc 'Run all unit tests with Rcov to measure coverage'
-Rake::TestTask.new(:test_units_with_coverage => [ :reset_unit_test_coverage ]) do |t|
-  t.libs << "test"
-  t.pattern = 'test/**/*test*.rb'
-  t.ruby_opts << rcov_path
-  t.ruby_opts << "-o #{rcov_unit_test_output} -x #{rcov_exclude}"
-  t.verbose = true
+Rcov::RcovTask.new do |t|
+  t.test_files = FileList['test/test*.rb']
+  t.rcov_opts << "-x /usr"
+  t.output_dir = "test/coverage"
 end
-