require 'rubygems' gem 'jeweler', '>= 1.4.0' require 'rake' require 'yaml' $:.unshift File.expand_path(File.join(File.dirname(__FILE__),'lib')) require 'rake/rdoctask' require 'rspec/rails/version' begin require 'jeweler' Jeweler::Tasks.new do |gem| gem.name = "rspec-rails" gem.version = Rspec::Rails::Version::STRING gem.summary = "rspec-rails-#{Rspec::Rails::Version::STRING}" gem.description = "Rspec-2 for Rails-3" gem.email = "dchelimsky@gmail.com;chad.humphries@gmail.com" gem.homepage = "http://github.com/rspec/rspec-rails" gem.authors = ["David Chelimsky", "Chad Humphries"] gem.rubyforge_project = "rspec" gem.add_dependency "rspec", "2.0.0.a10" gem.add_dependency "webrat", ">= 0.7.0" gem.post_install_message = <<-EOM #{"*"*50} Thank you for installing #{gem.summary}! This version of rspec-rails only works with versions of rails >= 3.0.0.pre. The 'a' in #{gem.version} means this is alpha software. If you are looking for a supported production release, please "gem install rspec-rails" (without --pre). #{"*"*50} EOM end rescue LoadError puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler" end namespace :generate do desc "generate a fresh app with rspec installed" task :app => :clobber_app do |t| if File.directory?('./tmp/rails') ruby "./tmp/rails/railties/bin/rails tmp/example_app --dev -m example_app_template.rb" else puts <<-MESSAGE You need to install rails in ./tmp/rails before you can run the #{t.name} task: git clone git://github.com/rails/rails tmp/rails (We'll automate this eventually, but running 'git clone' from rake in this project is mysteriously full of fail) MESSAGE end end desc "generate a bunch of stuff with generators" task :stuff do Dir.chdir("./tmp/example_app/") do sh "rake rails:template LOCATION='../../templates/generate_stuff.rb'" end end end desc "run a variety of specs against the generated app" task :run_specs do Dir.chdir("./tmp/example_app/") do sh "rake rails:template LOCATION='../../templates/run_specs.rb'" end end desc 'clobber generated files' task :clobber do rm_rf "pkg" end task :clobber_app do rm_rf "tmp/example_app" end task :default => ["generate:app", "generate:stuff", :run_specs]