forked from r18n/r18n
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Rakefile
64 lines (47 loc) · 1.13 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
# encoding: utf-8
require 'rubygems'
begin
require 'bundler/setup'
rescue LoadError
puts "Bundler not available. Install it with: gem install bundler"
end
GEMS = %w{r18n-core r18n-desktop sinatra-r18n r18n-rails-api r18n-rails}.freeze
task :default => :spec
def each_gem(&block)
GEMS.each do |dir|
Dir.chdir(dir, &block)
end
end
def rake(task)
sh "#{Rake::DSL::RUBY} -S bundle exec rake #{task}", :verbose => false
end
def each_rake(task)
each_gem { rake task }
end
require 'rspec/core/rake_task'
class SubgemSpecTask < RSpec::Core::RakeTask
attr_accessor :gem
def initialize(gem)
@gem = gem
super("spec_#{@gem}")
end
def desc(text); end # Monkey patch to hide task desc
def pattern
"#{@gem}/spec{,/*/**}/*_spec.rb"
end
end
GEMS.each { |gem| SubgemSpecTask.new(gem) }
desc 'Run all specs'
task :spec => (GEMS.map { |i| "spec_#{i}" })
desc 'Release to rubygems'
task :release => [:clobber, :build] do
each_gem { sh 'gem push `ls pkg/*`' }
end
desc 'Remove all generated files'
task :clobber do
rm_r 'log' if File.exists? 'log'
each_rake 'clobber'
end
task :build do
each_rake 'build'
end