Rakefile in renee-0.4.0.pre1 vs Rakefile in renee-0.4.0.pre2

- old
+ new

@@ -1,113 +1,23 @@ require 'rake/testtask' +require 'bundler/gem_tasks' +require 'yard' ROOT = File.expand_path(File.dirname(__FILE__)) task :default => :test -def lsh(cmd, &block) - out, code = lsh_with_code(cmd, &block) - code == 0 ? out : raise(out.empty? ? "Running `#{cmd}' failed. Run this command directly for more detailed output." : out) +Rake::TestTask.new do |t| + t.libs.push "lib" + t.test_files = FileList[File.expand_path("../test/**/*_test.rb", __FILE__)] + t.verbose = true end -def lsh_with_code(cmd, &block) - cmd << " 2>&1" - outbuf = '' - outbuf = `#{cmd}` - if $? == 0 - block.call(outbuf) if block - end - [outbuf, $?] -end - -renee_gems = %w[ - renee-core - renee-render - renee-url-generation - renee-session - renee -].freeze - -desc "build #{renee_gems.join(', ')} gems" -task :build do - renee_gems.each do |g| - lsh "mkdir -p pkg && gem build #{g}.gemspec && mv *.gem pkg" - puts "#{g} built" - end -end - -task :release => [:build, :yard] do - require File.join(ROOT, 'lib', 'renee', 'version') - version_tag = "v#{Renee::VERSION}" - begin - raise("#{version_tag} has already been committed") if lsh('git tag').split(/\n/).include?(version_tag) - sh "git tag #{version_tag}" - puts "adding tag #{version_tag}" - renee_gems.each do |g| - sh "gem push pkg/#{g}-#{Renee::VERSION}.gem" - puts "#{g} pushed" - end - sh "git push" - sh "git push --tags" - rescue - puts "something went wrong" - sh "git tag -d #{version_tag}" - raise - end -end - -task :install => :build do - require File.join(ROOT, 'lib', 'renee', 'version') - renee_gems.each do |g| - lsh "gem install pkg/#{g}-#{Renee::VERSION}.gem" - puts "#{g} installed" - end -end - -task :bundle do - renee_gems.each do |g| - sh "env BUNDLE_GEMFILE=Gemfile-#{g} bundle" - end -end - -renee_gems_tasks = Hash[renee_gems.map{|rg| [rg, :"test_#{rg.gsub('-', '_')}"]}].freeze - -desc "Run tests for all renee stack gems" -task :test do - renee_gems_tasks.values.each do |task| - Rake::Task[task].invoke - end -end - -renee_gems_tasks.each do |g, tn| - desc "Run tests for #{g} (shell out)" - task tn do - sh "env BUNDLE_GEMFILE=Gemfile-#{g} bundle exec rake test-#{g}" - end - - Rake::TestTask.new("test-#{g}") do |t| - t.libs.push "lib" - t.test_files = FileList[File.expand_path("../test/#{g}/**/*_test.rb", __FILE__)] - t.verbose = true - end -end - -desc "Generate YARD documentation" -task :'yard' do - require 'yard' - Dir['*.gemspec'].to_a.each do |gemspec| - spec = Gem::Specification.load(gemspec) - puts "spec #{spec.inspect}" - task_name = :"yard:#{spec.name}" - rb_files = spec.files.select{|f| f[/^lib/]} - readme = spec.name == 'renee' ? "README.md" : "README-#{spec.name}.md" - pid = fork do # yard has some shared state somewhere. poor poor yard. - YARD::Rake::YardocTask.new(task_name) do |t| - t.options = ['-o', File.expand_path("../site/public/docs/#{spec.name}", __FILE__), '--readme', readme, '--no-private', '--markup', 'markdown'] - t.files = rb_files - end - Rake::Task[task_name].execute - end - _, status = Process.waitpid2(pid) - raise unless status.success? - end +YARD::Rake::YardocTask.new do |t| + t.options = [ + '-o', File.expand_path("../site/public/docs/core", __FILE__), + '--readme', 'README.md', + '--no-private', + '--markup', 'markdown' + ] + t.files = 'lib/**/*.rb' end