mirror of
				https://github.com/jashkenas/coffeescript.git
				synced 2022-11-09 12:23:24 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'erb'
 | 
						|
require 'fileutils'
 | 
						|
require 'rake/testtask'
 | 
						|
 | 
						|
desc "Build the documentation page"
 | 
						|
task :doc do
 | 
						|
  source = 'documentation/index.html.erb'
 | 
						|
  child = fork { exec "bin/coffee -bcw -o documentation/js documentation/coffee/*.coffee" }
 | 
						|
  at_exit { Process.kill("INT", child) }
 | 
						|
  Signal.trap("INT") { exit }
 | 
						|
  loop do
 | 
						|
    mtime = File.stat(source).mtime
 | 
						|
    if !@mtime || mtime > @mtime
 | 
						|
      rendered = ERB.new(File.read(source)).result(binding)
 | 
						|
      File.open('index.html', 'w+') {|f| f.write(rendered) }
 | 
						|
    end
 | 
						|
    @mtime = mtime
 | 
						|
    sleep 1
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
desc "Build coffee-script-source gem"
 | 
						|
task :gem do
 | 
						|
  require 'rubygems'
 | 
						|
  require 'rubygems/package'
 | 
						|
 | 
						|
  gemspec = Gem::Specification.new do |s|
 | 
						|
    s.name      = 'coffee-script-source'
 | 
						|
    s.version   = '0.9.5'
 | 
						|
    s.date      = '2010-11-21'
 | 
						|
 | 
						|
    s.homepage    = "http://jashkenas.github.com/coffee-script/"
 | 
						|
    s.summary     = "The CoffeeScript Compiler"
 | 
						|
    s.description = <<-EOS
 | 
						|
      CoffeeScript is a little language that compiles into JavaScript.
 | 
						|
      Underneath all of those embarrassing braces and semicolons,
 | 
						|
      JavaScript has always had a gorgeous object model at its heart.
 | 
						|
      CoffeeScript is an attempt to expose the good parts of JavaScript
 | 
						|
      in a simple way.
 | 
						|
    EOS
 | 
						|
 | 
						|
    s.files = [
 | 
						|
      'lib/coffee_script/coffee-script.js',
 | 
						|
      'lib/coffee_script/source.rb'
 | 
						|
    ]
 | 
						|
 | 
						|
    s.authors           = ['Jeremy Ashkenas']
 | 
						|
    s.email             = 'jashkenas@gmail.com'
 | 
						|
    s.rubyforge_project = 'coffee-script-source'
 | 
						|
  end
 | 
						|
 | 
						|
  file = File.open("coffee-script-source.gem", "w")
 | 
						|
  Gem::Package.open(file, 'w') do |pkg|
 | 
						|
    pkg.metadata = gemspec.to_yaml
 | 
						|
 | 
						|
    path = "lib/coffee_script/source.rb"
 | 
						|
    contents = <<-ERUBY
 | 
						|
module CoffeeScript
 | 
						|
  module Source
 | 
						|
    def self.bundled_path
 | 
						|
      File.expand_path("../coffee-script.js", __FILE__)
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
    ERUBY
 | 
						|
    pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
 | 
						|
      tar_io.write(contents)
 | 
						|
    end
 | 
						|
 | 
						|
    contents = File.read("extras/coffee-script.js")
 | 
						|
    path = "lib/coffee_script/coffee-script.js"
 | 
						|
    pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
 | 
						|
      tar_io.write(contents)
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |