require 'rake' require 'rake/packagetask' PROTOTYPE_ROOT = File.expand_path(File.dirname(__FILE__)) PROTOTYPE_SRC_DIR = File.join(PROTOTYPE_ROOT, 'src') PROTOTYPE_DIST_DIR = File.join(PROTOTYPE_ROOT, 'dist') PROTOTYPE_PKG_DIR = File.join(PROTOTYPE_ROOT, 'pkg') PROTOTYPE_VERSION = '1.4.0' task :default => [:dist, :package, :clean_package_source] task :dist do $:.unshift File.join(PROTOTYPE_ROOT, 'lib') require 'protodoc' Dir.chdir(PROTOTYPE_SRC_DIR) do File.open(File.join(PROTOTYPE_DIST_DIR, 'prototype.js'), 'w+') do |dist| dist << Protodoc::Preprocessor.new('prototype.js') end end end Rake::PackageTask.new('prototype', PROTOTYPE_VERSION) do |package| package.need_tar_gz = true package.package_dir = PROTOTYPE_PKG_DIR package.package_files.include( '[A-Z]*', 'dist/prototype.js', 'lib/**', 'src/**', 'test/**' ) end task :test => [:dist, :test_units] require 'test/lib/jstest' desc "Runs all the JavaScript unit tests and collects the results" JavaScriptTestTask.new(:test_units) do |t| t.mount("/dist") t.mount("/test") t.run("/test/unit/enumerable.html") t.browser(:safari) end task :clean_package_source do rm_rf File.join(PROTOTYPE_PKG_DIR, "prototype-#{PROTOTYPE_VERSION}") end