123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- require 'rubygems'
- require 'erb'
- require 'fileutils'
- require 'rake/testtask'
- require 'json'
-
- 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 = JSON.parse(File.read('package.json'))["version"]
- s.date = Time.now.strftime("%Y-%m-%d")
-
- 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
|