Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

141 lines (115 sloc) 3.365 kb
# Rakefile for Bacon. -*-ruby-*-
require 'rake/rdoctask'
require 'rake/testtask'
desc "Run all the tests"
task :default => [:test]
desc "Do predistribution stuff"
task :predist => [:chmod, :changelog, :rdoc]
desc "Make an archive as .tar.gz"
task :dist => [:test, :predist] do
sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
sh "pax -waf #{release}.tar -s ':^:#{release}/:' RDOX ChangeLog doc"
sh "gzip -f -9 #{release}.tar"
end
# Helper to retrieve the "revision number" of the git tree.
def git_tree_version
if File.directory?(".git")
@tree_version ||= `git describe`.strip.sub('-', '.')
@tree_version << ".0" unless @tree_version.count('.') == 2
else
$: << "lib"
require 'bacon'
@tree_version = Bacon::VERSION
end
@tree_version
end
def gem_version
git_tree_version.gsub(/-.*/, '')
end
def release
"bacon-#{git_tree_version}"
end
def manifest
`git ls-files`.split("\n") - [".gitignore"]
end
desc "Make binaries executable"
task :chmod do
Dir["bin/*"].each { |binary| File.chmod(0775, binary) }
end
desc "Generate a ChangeLog"
task :changelog do
File.open("ChangeLog", "w") { |out|
`git log -z`.split("\0").map { |chunk|
author = chunk[/Author: (.*)/, 1].strip
date = chunk[/Date: (.*)/, 1].strip
desc, detail = $'.strip.split("\n", 2)
detail ||= ""
detail = detail.gsub(/.*darcs-hash:.*/, '')
detail.rstrip!
out.puts "#{date} #{author}"
out.puts " * #{desc.strip}"
out.puts detail unless detail.empty?
out.puts
}
}
end
desc "Generate RDox"
task "RDOX" do
sh "bin/bacon -Ilib --automatic --specdox >RDOX"
end
desc "Run all the tests"
task :test do
ruby "bin/bacon -Ilib --automatic --quiet"
end
begin
$" << "sources" if defined? FromSrc
require 'rubygems'
require 'rake'
require 'rake/clean'
require 'rake/packagetask'
require 'rake/gempackagetask'
require 'fileutils'
rescue LoadError
# Too bad.
else
spec = Gem::Specification.new do |s|
s.name = "bacon"
s.version = gem_version
s.platform = Gem::Platform::RUBY
s.summary = "a small RSpec clone"
s.description = <<-EOF
Bacon is a small RSpec clone weighing less than 350 LoC but
nevertheless providing all essential features.
http://github.com/chneukirchen/bacon
EOF
s.files = manifest + %w(RDOX ChangeLog)
s.bindir = 'bin'
s.executables << 'bacon'
s.require_path = 'lib'
s.has_rdoc = true
s.extra_rdoc_files = ['README', 'RDOX']
s.test_files = []
s.author = 'Christian Neukirchen'
s.email = 'chneukirchen@gmail.com'
s.homepage = 'http://github.com/chneukirchen/bacon'
end
task :gem => [:chmod, :changelog]
Rake::GemPackageTask.new(spec) do |p|
p.gem_spec = spec
p.need_tar = false
p.need_zip = false
end
end
desc "Generate RDoc documentation"
Rake::RDocTask.new(:rdoc) do |rdoc|
rdoc.options << '--line-numbers' << '--inline-source' <<
'--main' << 'README' <<
'--title' << 'Bacon Documentation' <<
'--charset' << 'utf-8'
rdoc.rdoc_dir = "doc"
rdoc.rdoc_files.include 'README'
rdoc.rdoc_files.include 'COPYING'
rdoc.rdoc_files.include 'RDOX'
rdoc.rdoc_files.include('lib/bacon.rb')
end
task :rdoc => ["RDOX"]
Jump to Line
Something went wrong with that request. Please try again.