Rakefile in sinatra-0.9.1.1 vs Rakefile in sinatra-0.9.2
- old
+ new
@@ -1,23 +1,36 @@
require 'rake/clean'
require 'rake/testtask'
require 'fileutils'
-task :default => [:test]
+task :default => [:test, :compat]
task :spec => :test
# SPECS ===============================================================
+task(:test) { puts "==> Running main test suite" }
+
Rake::TestTask.new(:test) do |t|
t.test_files = FileList['test/*_test.rb']
t.ruby_opts = ['-rubygems'] if defined? Gem
end
-desc 'Run compatibility specs (requires test/spec)'
-task :compat do |t|
- pattern = ENV['TEST'] || '.*'
- sh "specrb --testcase '#{pattern}' -Ilib:test compat/*_test.rb"
+desc "Run < 0.9.x compatibility specs"
+task :compat do
+ begin
+ require 'mocha'
+ require 'test/spec'
+ at_exit { exit 0 } # disable test-spec at_exit runner
+
+ puts "==> Running compat test suite"
+ Rake::TestTask.new(:compat) do |t|
+ t.test_files = FileList['compat/*_test.rb']
+ t.ruby_opts = ['-rubygems'] if defined? Gem
+ end
+ rescue LoadError
+ warn 'Skipping compat tests. mocha and/or test-spec gems not installed.'
+ end
end
# PACKAGING ============================================================
# Load the gemspec using the same limitations as github
@@ -31,30 +44,30 @@
spec
end
end
def package(ext='')
- "dist/sinatra-#{spec.version}" + ext
+ "pkg/sinatra-#{spec.version}" + ext
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 'dist/'
-CLOBBER.include('dist')
+directory 'pkg/'
+CLOBBER.include('pkg')
-file package('.gem') => %w[dist/ sinatra.gemspec] + spec.files do |f|
+file package('.gem') => %w[pkg/ sinatra.gemspec] + spec.files do |f|
sh "gem build sinatra.gemspec"
mv File.basename(f.name), f.name
end
-file package('.tar.gz') => %w[dist/] + spec.files do |f|
+file package('.tar.gz') => %w[pkg/] + spec.files do |f|
sh <<-SH
git archive \
--prefix=sinatra-#{source_version}/ \
--format=tar \
HEAD | gzip > #{f.name}
@@ -62,11 +75,11 @@
end
# Rubyforge Release / Publish Tasks ==================================
desc 'Publish gem and tarball to rubyforge'
-task 'publish:gem' => [package('.gem'), package('.tar.gz')] do |t|
+task 'release' => [package('.gem'), package('.tar.gz')] do |t|
sh <<-end
rubyforge add_release sinatra sinatra #{spec.version} #{package('.gem')} &&
rubyforge add_file sinatra sinatra #{spec.version} #{package('.tar.gz')}
end
end
@@ -93,28 +106,17 @@
#{rb_files.join(' ')}
end
end
CLEAN.include 'doc/api'
-def rdoc_to_html(file_name)
- require 'rdoc/markup/to_html'
- rdoc = RDoc::Markup::ToHtml.new
- rdoc.convert(File.read(file_name))
-end
-
# Gemspec Helpers ====================================================
def source_version
line = File.read('lib/sinatra/base.rb')[/^\s*VERSION = .*/]
line.match(/.*VERSION = '(.*)'/)[1]
end
-project_files =
- FileList[
- '{lib,test,compat,images}/**',
- 'Rakefile', 'CHANGES', 'README.rdoc'
- ]
-file 'sinatra.gemspec' => project_files do |f|
+task 'sinatra.gemspec' => FileList['{lib,test,compat}/**','Rakefile','CHANGES','*.rdoc'] do |f|
# read spec file and split out manifest section
spec = File.read(f.name)
head, manifest, tail = spec.split(" # = MANIFEST =\n")
# replace version and date
head.sub!(/\.version = '.*'/, ".version = '#{source_version}'")