Rakefile in rspec_candy-0.2.1 vs Rakefile in rspec_candy-0.2.2

- old
+ new

@@ -1,18 +1,47 @@ require 'rake' require 'spec/rake/spectask' require "bundler/gem_tasks" - desc 'Default: Run all specs.' -task :default => :all_specs +task :default => 'all:spec' -desc "Run all specs" -task :all_specs do - Dir['spec/**/Rakefile'].sort.each do |rakefile| +namespace :all do + + desc "Run specs on all spec apps" + task :spec do + success = true + for_each_directory_of('spec/**/Rakefile') do |directory| + env = "SPEC=../../#{ENV['SPEC']} " if ENV['SPEC'] + success &= system("cd #{directory} && #{env} bundle exec rake spec") + end + fail "Tests failed" unless success + end + + desc "Bundle all spec apps" + task :bundle do + for_each_directory_of('spec/**/Gemfile') do |directory| + system("cd #{directory} && rm -f Gemfile.lock && bundle install") + end + end + +end + +def for_each_directory_of(path, &block) + Dir[path].sort.each do |rakefile| directory = File.dirname(rakefile) puts '', "\033[44m#{directory}\033[0m", '' - env = "SPEC=../../#{ENV['SPEC']} " if ENV['SPEC'] - system("cd #{directory} && #{env} bundle exec rake") + block.call(directory) end end +# +# +#desc "Run all specs" +#task :all_specs do +# Dir['spec/**/Rakefile'].sort.each do |rakefile| +# directory = File.dirname(rakefile) +# puts '', "\033[44m#{directory}\033[0m", '' +# env = "SPEC=../../#{ENV['SPEC']} " if ENV['SPEC'] +# system("cd #{directory} && #{env} bundle exec rake") +# end +#end