require 'rubygems' require 'bundler' Bundler::GemHelper.install_tasks require 'rake' require 'rake/clean' require 'rake/testtask' require 'rake/packagetask' require 'rake/gempackagetask' require 'rake/rdoctask' require 'rake/contrib/rubyforgepublisher' require 'rspec/core/rake_task' require 'cucumber/rake/task' require 'fileutils' include FileUtils require File.join(File.dirname(__FILE__), 'lib', 'right_http_connection')

Bundler::GemHelper.install_tasks

# == Gem == #

gemtask = Rake::GemPackageTask.new(Gem::Specification.load(“right_http_connection.gemspec”)) do |package|

package.package_dir = ENV['PACKAGE_DIR'] || 'pkg'
package.need_zip = true
package.need_tar = true

end

directory gemtask.package_dir

CLEAN.include(gemtask.package_dir)

desc 'Generate website files' task :website_generate do

Dir['website   /*.txt'].each do |txt|
  sh %Q{ ruby scripts/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
end

end

desc 'Upload website files to rubyforge' task :website_upload do

config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
host = "#{config["username"]}@rubyforge.org"
remote_dir = "/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/"
# remote_dir = "/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
local_dir = 'website'
sh %{rsync -av #{local_dir}/ #{host}:#{remote_dir}}

end

desc 'Generate and upload website files' task :website => [:website_generate, :website_upload]

desc 'Release the website and new gem version' task :deploy => [:check_version, :website, :release]

task :check_version do

unless ENV['VERSION']
  puts 'Must pass a VERSION=x.y.z release version'
  exit
end
unless ENV['VERSION'] == VERS
  puts "Please update your version.rb to match the release version, currently #{VERS}"
  exit
end

end

task :default => 'spec'

# == Unit Tests == #

desc “Run unit tests” RSpec::Core::RakeTask.new

namespace :spec do

desc "Run unit tests with RCov"
RSpec::Core::RakeTask.new(:rcov) do |t|
  t.rcov = true
  t.rcov_opts = %q[--exclude "spec"]
end

desc "Print Specdoc for unit tests"
RSpec::Core::RakeTask.new(:doc) do |t|
  t.rspec_opts = ["--format", "documentation"]
end

end

# == Functional tests == # desc “Run functional tests” Cucumber::Rake::Task.new do |t|

t.cucumber_opts = %w{--color --format pretty}

end