3 require 'rake/testtask'
5 require 'yui/compressor'
9 * CoffeeScript Compiler v0.9.4
10 * http://coffeescript.org
12 * Copyright 2010, Jeremy Ashkenas
13 * Released under the MIT License
17 desc "Build the documentation page"
19 source = 'documentation/index.html.erb'
20 child = fork { exec "bin/coffee -bcw -o documentation/js documentation/coffee/*.coffee" }
21 at_exit { Process.kill("INT", child) }
22 Signal.trap("INT") { exit }
24 mtime = File.stat(source).mtime
25 if !@mtime || mtime > @mtime
26 rendered = ERB.new(File.read(source)).result(binding)
27 File.open('index.html', 'w+') {|f| f.write(rendered) }
34 desc "Build the single concatenated and minified script for the browser"
36 sources = %w(helpers rewriter lexer parser scope nodes coffee-script browser)
37 code = sources.inject '' do |js, name|
39 require['./#{name}'] = new function(){
41 #{ File.read "lib/#{name}.js" }
45 code = YUI::JavaScriptCompressor.new.compress(<<-"JS")
46 this.CoffeeScript = function(){
47 function require(path){ return require[path] }
49 return require['./coffee-script']
52 File.open('extras/coffee-script.js', 'wb+') {|f| f.write(HEADER + code) }