Rakefile in sinatra-1.1.4 vs Rakefile in sinatra-1.2.0.a
- old
+ new
@@ -4,60 +4,56 @@
require 'date'
task :default => :test
task :spec => :test
-CLEAN.include "**/*.rbc"
-
def source_version
- @source_version ||= begin
- line = File.read('lib/sinatra/base.rb')[/^\s*VERSION = .*/]
- line.match(/.*VERSION = '(.*)'/)[1]
- end
+ line = File.read('lib/sinatra/base.rb')[/^\s*VERSION = .*/]
+ line.match(/.*VERSION = '(.*)'/)[1]
end
-def prev_feature
- source_version.gsub(/^(\d\.)(\d+)\..*$/) { $1 + ($2.to_i - 1).to_s }
-end
-
-def prev_version
- return prev_feature + '.0' if source_version.end_with? '.0'
- source_version.gsub(/\d+$/) { |s| s.to_i - 1 }
-end
-
# SPECS ===============================================================
-
task :test do
ENV['LANG'] = 'C'
ENV.delete 'LC_CTYPE'
end
-Rake::TestTask.new(:test) do |t|
- t.test_files = FileList['test/*_test.rb']
- t.ruby_opts = ['-rubygems'] if defined? Gem
- t.ruby_opts << '-I.'
+if !ENV['NO_TEST_FIX'] and RUBY_VERSION == '1.9.2' and RUBY_PATCHLEVEL == 0
+ # Avoids seg fault
+ task(:test) do
+ second_run = %w[settings rdoc markaby templates static textile].map { |l| "test/#{l}_test.rb" }
+ first_run = Dir.glob('test/*_test.rb') - second_run
+ [first_run, second_run].each { |f| sh "testrb #{f.join ' '}" }
+ end
+else
+ Rake::TestTask.new(:test) do |t|
+ t.test_files = FileList['test/*_test.rb']
+ t.ruby_opts = ['-rubygems'] if defined? Gem
+ t.ruby_opts << '-I.'
+ end
end
# Rcov ================================================================
-
namespace :test do
desc 'Mesures test coverage'
task :coverage do
rm_f "coverage"
- sh "rcov -Ilib test/*_test.rb"
+ rcov = "rcov --text-summary -Ilib"
+ system("#{rcov} --no-html --no-color test/*_test.rb")
end
end
# Website =============================================================
+# Building docs requires HAML and the hanna gem:
+# gem install mislav-hanna --source=http://gems.github.com
desc 'Generate RDoc under doc/api'
task 'doc' => ['doc:api']
task('doc:api') { sh "yardoc -o doc/api" }
CLEAN.include 'doc/api'
# README ===============================================================
-
task :add_template, [:name] do |t, args|
Dir.glob('README.*') do |file|
code = File.read(file)
if code =~ /^===.*#{args.name.capitalize}/
puts "Already covered in #{file}"
@@ -73,40 +69,10 @@
end
end
end
end
-# Thanks in announcement ===============================================
-
-team = ["Ryan Tomayko", "Blake Mizerany", "Simon Rozet", "Konstantin Haase"]
-desc "list of contributors"
-task :thanks, [:release,:backports] do |t, a|
- a.with_defaults :release => "#{prev_version}..HEAD",
- :backports => "#{prev_feature}.0..#{prev_feature}.x"
- included = `git log --format=format:"%aN\t%s" #{a.release}`.lines.to_a
- excluded = `git log --format=format:"%aN\t%s" #{a.backports}`.lines.to_a
- commits = (included - excluded).group_by { |c| c[/^[^\t]+/] }
- authors = commits.keys.sort_by { |n| - commits[n].size } - team
- puts authors[0..-2].join(', ') << " and " << authors.last,
- "(based on commits included in #{a.release}, but not in #{a.backports})"
-end
-
-task :authors, [:format, :sep] do |t, a|
- a.with_defaults :format => "%s (%d)", :sep => ', '
- authors = Hash.new { |h,k| h[k] = 0 }
- blake = "Blake Mizerany"
- mapping = {
- "blake.mizerany@gmail.com" => blake, "bmizerany" => blake,
- "a_user@mac.com" => blake, "ichverstehe" => "Harry Vangberg",
- "Wu Jiang (nouse)" => "Wu Jiang" }
- `git shortlog -s`.lines.map do |line|
- num, name = line.split("\t", 2).map(&:strip)
- authors[mapping[name] || name] += num.to_i
- end
- puts authors.sort_by { |n,c| -c }.map { |e| a.format % e }.join(a.sep)
-end
-
# PACKAGING ============================================================
if defined?(Gem)
# Load the gemspec using the same limitations as github
def spec
@@ -167,11 +133,11 @@
task 'release' => package('.gem') do
sh <<-SH
gem install #{package('.gem')} --local &&
gem push #{package('.gem')} &&
- git commit --allow-empty -a -m '#{source_version} release' &&
- git tag -s v#{source_version} -m '#{source_version} release' &&
+ git add sinatra.gemspec &&
+ git commit --allow-empty -m '#{source_version} release' &&
git tag -s #{source_version} -m '#{source_version} release' &&
git push && (git push sinatra || true) &&
git push --tags && (git push sinatra --tags || true)
SH
end