Sha256: df1f32e4fa29f4568ebfdc3ae1e7af72071ae30260cf13076ddc870a6fa8a62f

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 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.rspec_opts = ['--color']
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 = eval data
    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|tree) clean/)
  unless clean
    puts state
    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

desc 'download github issues and pull requests'
task 'github' do
  %w(issues pulls).each do |type|
    sh "curl -o #{type}.json https://api.github.com/repos/alexch/rerun/#{type}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rerun-0.13.0 Rakefile