forked from chrisk/fakeweb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Rakefile
70 lines (61 loc) · 2.03 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
require 'rubygems'
require 'rake/gempackagetask'
require 'rake/testtask'
require 'rake/rdoctask'
task :default => :test
desc "Run All Tests"
Rake::TestTask.new :test do |test|
test.test_files = ["test/**/*.rb"]
test.verbose = true
end
desc "Generate Documentation"
Rake::RDocTask.new do |rdoc|
rdoc.main = "README.rdoc"
rdoc.rdoc_dir = "doc"
rdoc.rdoc_files.include("README.rdoc", "CHANGELOG", "LICENSE.txt", "lib/*.rb")
rdoc.title = "FakeWeb API Documentation"
rdoc.options << '--line-numbers' << '--inline-source'
rdoc.options << '--charset' << 'utf-8'
end
desc %{Update ".manifest" with the latest list of project filenames. Respect\
.gitignore by excluding everything that git ignores. Update `files` and\
`test_files` arrays in "*.gemspec" file if it's present.}
task :manifest do
list = Dir['**/*'].sort
spec_file = Dir['*.gemspec'].first
list -= [spec_file] if spec_file
File.read('.gitignore').each_line do |glob|
glob = glob.chomp.sub(/^\//, '')
list -= Dir[glob]
list -= Dir["#{glob}/**/*"] if File.directory?(glob) and !File.symlink?(glob)
puts "excluding #{glob}"
end
if spec_file
spec = File.read spec_file
spec.gsub! /^(\s* s.(test_)?files \s* = \s* )( \[ [^\]]* \] | %w\( [^)]* \) )/mx do
assignment = $1
bunch = $2 ? list.grep(/^test\//) : list
'%s%%w(%s)' % [assignment, bunch.join(' ')]
end
File.open(spec_file, 'w') {|f| f << spec }
end
File.open('.manifest', 'w') {|f| f << list.join("\n") }
end
if RUBY_PLATFORM =~ /java/
puts "rcov support disabled (running under JRuby)."
elsif RUBY_VERSION =~ /^1\.9/
puts "rcov support disabled (running under Ruby 1.9)"
else
require 'rcov/rcovtask'
Rcov::RcovTask.new do |t|
t.test_files = FileList['test/**/test*.rb']
t.rcov_opts << "--sort coverage"
t.rcov_opts << "--exclude gems"
t.rcov_opts << "--no-validator-links"
end
end
spec = eval(File.read(File.join(File.dirname(__FILE__), "fakeweb.gemspec")))
Rake::GemPackageTask.new(spec) do |pkg|
pkg.need_tar_gz = true
pkg.need_zip = true
end