require "bundler/setup" task :default => :watch desc "Publish \"marketing\" docs" task :publish do sh("git rebase master gh-pages") sh("git checkout master") sh("git push origin master") sh("git push origin gh-pages") sh("git push --tags") end desc "Build everything" task :build do rebuild_coffee end desc "Watch for changes and test the site" task :watch => :build do sh("open test/index.html") monitor end desc "Open your default browser with the test page" task :test do sh("open test/index.html") end def rebuild_coffee(base = nil, relative = "**/*.coffee") sh("coffee -c #{relative}") end def monitor require "fssm" puts ">>> Monitoring for changes. Press Ctrl-C to Stop." FSSM.monitor do path "." do glob "**/*.coffee" update &method(:rebuild_coffee) delete &method(:rebuild_coffee) create &method(:rebuild_coffee) end end end