Rakefile in ingamer_rhc-1.2.6 vs Rakefile in ingamer_rhc-1.3.0

- old
+ new

@@ -1,74 +1,34 @@ 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' -require 'hoe' include FileUtils require File.join(File.dirname(__FILE__), 'lib', 'right_http_connection') -AUTHOR = 'RightScale' # can also be an array of Authors -EMAIL = "rubygems@rightscale.com" -DESCRIPTION = "RightScale's robust HTTP/S connection module" -GEM_NAME = 'right_http_connection' # what ppl will type to install your gem -RUBYFORGE_PROJECT = 'rightscale' # The unix name for your project -HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org" -DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}" +Bundler::GemHelper.install_tasks -NAME = "right_http_connection" -REV = nil # UNCOMMENT IF REQUIRED: File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil -VERS = RightHttpConnection::VERSION::STRING + (REV ? ".#{REV}" : "") -CLEAN.include ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] -RDOC_OPTS = ['--quiet', '--title', 'right_http_connection documentation', - "--opname", "index.html", - "--line-numbers", - "--main", "README", - "--inline-source"] +# == Gem == # -# Suppress Hoe's self-inclusion as a dependency for our Gem. This also keeps -# Rake & rubyforge out of the dependency list. Users must manually install -# these gems to run tests, etc. -# TRB 2/19/09: also do this for the extra_dev_deps array present in newer hoes. -# Older versions of RubyGems will try to install developer-dependencies as -# required runtime dependencies.... -class Hoe - def extra_deps - @extra_deps.reject do |x| - Array(x).first == 'hoe' - end - end - def extra_dev_deps - @extra_dev_deps.reject do |x| - Array(x).first == 'hoe' - end - end +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 -# Generate all the Rake tasks -# Run 'rake -T' to see list of generated tasks (from gem root directory) -hoe = Hoe.new(GEM_NAME, VERS) do |p| - p.author = AUTHOR - p.description = DESCRIPTION - p.email = EMAIL - p.summary = DESCRIPTION - p.url = HOMEPATH - p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT - p.test_globs = ["test/**/test_*.rb"] - p.clean_globs = CLEAN #An array of file patterns to delete on clean. - p.remote_rdoc_dir = "right_http_gem_doc" - - # == Optional - p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n") - #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ] - #p.spec_extras = {} # A hash of extra values to set in the gemspec. -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 %{ ruby scripts/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} } @@ -98,6 +58,32 @@ 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