require 'rubygems' require 'hoe' require './lib/spec/rails/version' require 'cucumber/rake/task' $:.unshift(File.join(File.dirname(__FILE__), "/../rspec/lib")) require 'spec/rake/spectask' class Hoe def extra_deps @extra_deps.reject! { |x| Array(x).first == 'hoe' } @extra_deps end end Hoe.new('rspec-rails', Spec::Rails::VERSION::STRING) do |p| p.summary = Spec::Rails::VERSION::SUMMARY p.url = 'http://rspec.info/' p.description = "Behaviour Driven Development for Ruby on Rails." p.rubyforge_name = 'rspec' p.developer('RSpec Development Team', 'rspec-devel@rubyforge.org') p.extra_deps = [["rspec","1.1.99.8"],["rack",">=0.4.0"]] p.extra_dev_deps = [["cucumber",">= 0.1.13"]] p.remote_rdoc_dir = "rspec-rails/#{Spec::Rails::VERSION::STRING}" end ['audit','test','test_deps','default','post_blog', 'release'].each do |task| Rake.application.instance_variable_get('@tasks').delete(task) end task :release => [:clean, :package] do |t| version = ENV["VERSION"] or abort "Must supply VERSION=x.y.z" abort "Versions don't match #{version} vs #{Spec::Rails::VERSION::STRING}" unless version == Spec::Rails::VERSION::STRING pkg = "pkg/rspec-rails-#{version}" rubyforge = RubyForge.new.configure puts "Logging in to rubyforge ..." rubyforge.login puts "Releasing rspec-rails version #{version} ..." ["#{pkg}.gem", "#{pkg}.tgz"].each do |file| rubyforge.add_file('rspec', 'rspec', Spec::Rails::VERSION::STRING, file) end end Spec::Rake::SpecTask.new Cucumber::Rake::Task.new task :default => [:features] namespace :update do desc "update the manfest" task :manifest do system %q[touch Manifest.txt; rake check_manifest | grep -v "(in " | patch] end desc "update the gemspec" task :gemspec do system %q[rake debug_gem | grep -v "(in " | grep -v "s.add_dependency(%q `basename \\`pwd\\``.gemspec] end end