forked from cardinalblue/rest-more
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
67 lines (55 loc) · 1.64 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
# encoding: utf-8
require "#{dir = File.dirname(__FILE__)}/task/gemgem"
Gemgem.dir = dir
($LOAD_PATH << File.expand_path("#{Gemgem.dir}/lib" ) <<
File.expand_path("#{Gemgem.dir}/rest-core/lib")).uniq!
desc 'Generate gemspec'
task 'gem:spec' do
Gemgem.spec = Gemgem.create do |s|
require 'rest-more/version'
s.name = 'rest-more'
s.version = RestMore::VERSION
s.homepage = 'https://github.com/cardinalblue/rest-more'
%w[rest-core].each{ |g| s.add_runtime_dependency(g, '>=1.0.0') }
s.authors = ['Cardinal Blue', 'Lin Jen-Shin (godfat)']
s.email = ['dev (XD) cardinalblue.com']
# exclude rest-core
s.files.reject!{ |f| f.start_with?('rest-core/') }
end
Gemgem.write
end
module Gemgem
module_function
def test_rails *rails
rails.each{ |framework|
opts = Rake.application.options
args = (opts.singleton_methods - [:rakelib, 'rakelib']).map{ |arg|
if arg.to_s !~ /=$/ && opts.send(arg)
"--#{arg}"
else
''
end
}.join(' ')
Rake.sh "cd example/#{framework}; #{Gem.ruby} -S rake test #{args}"
}
end
end
desc 'Run example tests'
task 'test:example' do
Gemgem.test_rails('rails3', 'rails2')
end
desc 'Run all tests'
task 'test:all' => ['test', 'test:example']
desc 'Run different json test'
task 'test:json' do
%w[yajl json].each{ |json|
Rake.sh "#{Gem.ruby} -S rake -r #{json} test"
}
end
task 'test:travis' do
case ENV['RESTMORE']
when 'rails3'; Gemgem.test_rails('rails3')
when 'rails2'; Gemgem.test_rails('rails2')
else ; Rake::Task['test'].invoke
end
end