require 'rake/rdoctask' readme = Dir['*'].grep(/README/)[0] files = [ readme, 'LICENSE', 'lib' ] files.push('CONTRIBUTORS') if Dir['*'].include?('CONTRIBUTORS') Rake::RDocTask.new do |rdoc| rdoc.main = readme rdoc.rdoc_files = files rdoc.rdoc_dir = 'docs' end namespace :pages do task :publish => [ :check_dirty, :rerdoc ] do `git checkout gh-pages` `ls -1 | grep -v docs | xargs rm -rf; mv docs/* .; rm -rf docs` `git add .; git commit -m "update docs"; git push origin gh-pages` `git checkout master` puts :done end desc "Initialize GitHub Pages with documentation" task :init => [ :check_dirty, :rerdoc ] do `git symbolic-ref HEAD refs/heads/gh-pages` `rm .git/index` `ls -1 | grep -v docs | xargs rm -rf; mv docs/* .; rm -rf docs` `git add .;git commit -m "create docs"; git push origin gh-pages` `git checkout master` puts :done end task :check_dirty do if !`git status`.include?('nothing to commit') abort "dirty index - not publishing!" end end end desc "Build and publish documentation using GitHub Pages." task :pages => "pages:publish"