rb: Reorganize the Rakefile a bit [THRIFT-38]
authorKevin Clark <kclark@apache.org>
Tue, 24 Jun 2008 01:05:57 +0000 (01:05 +0000)
committerKevin Clark <kclark@apache.org>
Tue, 24 Jun 2008 01:05:57 +0000 (01:05 +0000)
From kevin@rapleaf.com

Also add a guard to ensure `rake test` is only run if we're in a full thrift checkout

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@670981 13f79535-47bb-0310-9956-ffa450edef68

lib/rb/Rakefile

index ba0fe8c..9a80195 100644 (file)
@@ -2,37 +2,43 @@ require 'rubygems'
 require 'rake'
 require 'spec/rake/spectask'
 
+THRIFT = '../../compiler/cpp/thrift'
+
 task :default => [:spec, :test]
 
-Spec::Rake::SpecTask.new("spec") do |t|
+Spec::Rake::SpecTask.new do |t|
   t.spec_files = FileList['spec/**/*_spec.rb']
   t.spec_opts = ['--color']
 end
 
-Spec::Rake::SpecTask.new("rcov_spec") do |t|
+Spec::Rake::SpecTask.new(:'spec:rcov') do |t|
   t.spec_files = FileList['spec/**/*_spec.rb']
   t.spec_opts = ['--color']
   t.rcov = true
   t.rcov_opts = ['--exclude', '^spec,/gems/']
 end
 
+desc 'Run the compiler tests (requires full thrift checkout)'
 task :test do
+  # ensure this is a full thrift checkout and not a tarball of the ruby libs
+  cmd = 'head -1 ../../README 2>/dev/null | grep Thrift >/dev/null 2>/dev/null'
+  system(cmd) or fail "rake test requires a full thrift checkout"
   sh 'make', '-C', File.dirname(__FILE__) + "/../../test/rb"
 end
 
 desc 'Compile the .thrift files for the specs'
-task :'gen-rb' => [:'gen-rb-spec', :'gen-rb-benchmark']
-
-THRIFT = '../../compiler/cpp/thrift'
-
-task :'gen-rb-spec' do
-  dir = File.dirname(__FILE__) + '/spec'
-  sh THRIFT, '--gen', 'rb', '-o', dir, "#{dir}/ThriftSpec.thrift"
-end
-
-task :'gen-rb-benchmark' do
-  dir = File.dirname(__FILE__) + '/benchmark'
-  sh THRIFT, '--gen', 'rb', '-o', dir, "#{dir}/Benchmark.thrift"
+task :'gen-rb' => [:'gen-rb:spec', :'gen-rb:benchmark']
+
+namespace :'gen-rb' do
+  task :'spec' do
+    dir = File.dirname(__FILE__) + '/spec'
+    sh THRIFT, '--gen', 'rb', '-o', dir, "#{dir}/ThriftSpec.thrift"
+  end
+
+  task :'benchmark' do
+    dir = File.dirname(__FILE__) + '/benchmark'
+    sh THRIFT, '--gen', 'rb', '-o', dir, "#{dir}/Benchmark.thrift"
+  end
 end
 
 desc 'Run benchmarking of NonblockingServer'