Sha256: ddd60cfb5f599d7534be542de78a48768ca7bbd35e74d559a3587c129205e20d

Contents?: true

Size: 1.68 KB

Versions: 3

Compression:

Stored size: 1.68 KB

Contents

require 'rake'
require 'rake/clean'
require 'rake/testtask'
require 'rspec/core/rake_task'

task :default => [:spec]
task :test => :spec

desc "Run all specs"
RSpec::Core::RakeTask.new('spec') do |t|
  ENV['ENV'] = "test"
  t.pattern = 'spec/**/*_spec.rb'
  t.ruby_opts = ['-rubygems'] if defined? Gem
end

$rubyforge_project = 'pivotalrb'

$spec =
  begin
    require 'rubygems/specification'
    data = File.read('rerun.gemspec')
    spec = nil
    Thread.new { spec = eval("$SAFE = 3\n#{data}") }.join
    spec
  end

def package(ext='')
  "pkg/#{$spec.name}-#{$spec.version}" + ext
end

desc 'Exit if git is dirty'
task :check_git do
  state = `git status 2> /dev/null | tail -n1`
  clean = (state =~ /working directory clean/)
  unless clean
    warn "can't do that on an unclean git dir"
    exit 1
  end
end

desc 'Build packages'
task :package => %w[.gem .tar.gz].map { |e| package(e) }

desc 'Build and install as local gem'
task :install => package('.gem') do
  sh "gem install #{package('.gem')}"
end

directory 'pkg/'
CLOBBER.include('pkg')

file package('.gem') => %W[pkg/ #{$spec.name}.gemspec] + $spec.files do |f|
  sh "gem build #{$spec.name}.gemspec"
  mv File.basename(f.name), f.name
end

file package('.tar.gz') => %w[pkg/] + $spec.files do |f|
  cmd = <<-SH
    git archive \
      --prefix=#{$spec.name}-#{$spec.version}/ \
      --format=tar \
      HEAD | gzip > #{f.name}
  SH
  sh cmd.gsub(/ +/, ' ')
end

desc 'Publish gem and tarball to rubyforge'
task 'release' => [:check_git, package('.gem'), package('.tar.gz')] do |t|
  puts "Releasing #{$spec.version}"
  sh "gem push #{package('.gem')}"
  puts "Tagging and pushing"
  sh "git tag v#{$spec.version}"
  sh "git push && git push --tags"
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rerun-0.6.6 Rakefile
rerun-0.6.5 Rakefile
rerun-0.6.4 Rakefile