Permalink
Browse files

Gracefully handle case where RSpec is not installed in Rakefile

  • Loading branch information...
1 parent 55ab59e commit dbb2dcf42fea6bb57d7ca6b089cdae58e6c9e102 @brynary brynary committed Sep 20, 2009
Showing with 40 additions and 31 deletions.
  1. +40 −31 Rakefile
View
71 Rakefile
@@ -1,9 +1,13 @@
require "rubygems"
-require "spec/rake/spectask"
begin
require 'jeweler'
-
+rescue LoadError
+ desc "Install gem using sudo"
+ task(:install) do
+ $stderr.puts "Jeweler not available. `gem install jeweler` to install this gem"
+ end
+else
Jeweler::Tasks.new do |s|
s.name = "arel"
s.authors = ["Bryan Helmkamp", "Nick Kallen"]
@@ -16,42 +20,47 @@ begin
end
Jeweler::RubyforgeTasks.new
-rescue LoadError
- puts "Jeweler not available. Install it with: gem install jeweler"
end
-desc "Run specs using RCov (uses mysql database adapter)"
-Spec::Rake::SpecTask.new(:coverage) do |t|
- t.spec_files =
- ["spec/connections/mysql_connection.rb"] +
- FileList['spec/**/*_spec.rb']
-
- t.rcov = true
- t.rcov_opts << '--exclude' << "spec,gems"
- t.rcov_opts << '--text-summary'
- t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
- t.rcov_opts << '--only-uncovered'
-end
+begin
+ require "spec/rake/spectask"
+rescue LoadError
+ desc "Run specs"
+ task(:spec) { $stderr.puts '`gem install rspec` to run specs' }
+else
+ desc "Run specs using RCov (uses mysql database adapter)"
+ Spec::Rake::SpecTask.new(:coverage) do |t|
+ t.spec_files =
+ ["spec/connections/mysql_connection.rb"] +
+ FileList['spec/**/*_spec.rb']
+
+ t.rcov = true
+ t.rcov_opts << '--exclude' << "spec,gems"
+ t.rcov_opts << '--text-summary'
+ t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
+ t.rcov_opts << '--only-uncovered'
+ end
-namespace :spec do
- for adapter in %w[mysql sqlite3 postgresql]
- desc "Run specs with the #{adapter} database adapter"
- Spec::Rake::SpecTask.new(adapter) do |t|
- t.libs << "#{File.dirname(__FILE__)}/vendor/rails/activerecord/lib"
- t.libs << "#{File.dirname(__FILE__)}/spec"
- t.spec_files =
- ["spec/connections/#{adapter}_connection.rb"] +
- ["spec/schemas/#{adapter}_schema.rb"] +
- FileList['spec/**/*_spec.rb']
+ namespace :spec do
+ for adapter in %w[mysql sqlite3 postgresql]
+ desc "Run specs with the #{adapter} database adapter"
+ Spec::Rake::SpecTask.new(adapter) do |t|
+ t.libs << "#{File.dirname(__FILE__)}/vendor/rails/activerecord/lib"
+ t.libs << "#{File.dirname(__FILE__)}/spec"
+ t.spec_files =
+ ["spec/connections/#{adapter}_connection.rb"] +
+ ["spec/schemas/#{adapter}_schema.rb"] +
+ FileList['spec/**/*_spec.rb']
+ end
end
end
-end
-desc "Run specs with mysql and sqlite3 database adapters (default)"
-task :spec => ["check_dependencies", "spec:sqlite3", "spec:mysql", "spec:postgresql"]
+ desc "Run specs with mysql and sqlite3 database adapters (default)"
+ task :spec => ["check_dependencies", "spec:sqlite3", "spec:mysql", "spec:postgresql"]
-desc "Default task is to run specs"
-task :default => :spec
+ desc "Default task is to run specs"
+ task :default => :spec
+end
desc 'Removes trailing whitespace'
task :whitespace do

0 comments on commit dbb2dcf

Please sign in to comment.