Rakefile in cliutils-1.0.2 vs Rakefile in cliutils-1.0.3

- old
+ new

@@ -1,45 +1,50 @@ require 'rake/clean' require 'rubygems' -require 'rubygems/package_task' -require 'rdoc/task' -require 'cucumber' -require 'cucumber/rake/task' -Rake::RDocTask.new do |rd| - rd.main = "README.md" - rd.rdoc_files.include("README.md","lib/**/**/*.rb") - rd.title = 'CLIUtils' + +def version + contents = File.read File.expand_path('../lib/cliutils/version.rb', __FILE__) + contents[/VERSION = "([^"]+)"/, 1] end spec = eval(File.read('cliutils.gemspec')) -Gem::PackageTask.new(spec) do |pkg| +require 'yard' +desc 'Create YARD documentation' +YARD::Rake::YardocTask.new do |t| end -CUKE_RESULTS = 'results.html' -CLEAN << CUKE_RESULTS -desc 'Run features' -Cucumber::Rake::Task.new(:features) do |t| - opts = "features --format html -o #{CUKE_RESULTS} --format progress -x" - opts += " --tags #{ENV['TAGS']}" if ENV['TAGS'] - t.cucumber_opts = opts - t.fork = false -end -desc 'Run features tagged as work-in-progress (@wip)' -Cucumber::Rake::Task.new('features:wip') do |t| - tag_opts = ' --tags ~@pending' - tag_opts = ' --tags @wip' - t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}" - t.fork = false -end - -task :cucumber => :features -task 'cucumber:wip' => 'features:wip' -task :wip => 'features:wip' - require 'rake/testtask' +desc 'Run unit tests' Rake::TestTask.new do |t| t.libs << "test" t.test_files = FileList['test/*_test.rb'] end -task :default => [:test] +require 'pry' +desc 'Open up a PRY session with this gem loaded' +task :pry do + puts version +end + +desc "Release CLIUtils version #{version}" +task :release => :build do + unless `git branch` =~ /^\* master$/ + puts "You must be on the master branch to release!" + exit! + end + + sh "git commit --allow-empty -a -m 'Release #{version}'" + sh "git tag v#{version}" + sh "git push origin master" + sh "git push origin v#{version}" + sh "gem push pkg/cliutils-#{version}.gem" +end + +desc "Build the gem" +task :build do + FileUtils.mkdir_p "pkg" + sh "gem build cliutils.gemspec" + FileUtils.mv("./cliutils-#{version}.gem", "pkg") +end + +task :default => :test