jasmine/Rakefile

85 lines
2.1 KiB
Ruby
Raw Normal View History

desc 'Builds lib/jasmine from source'
namespace :build do
task :jasmine => 'build:doc' do
require 'json'
sources = jasmine_sources
version = version_hash
old_jasmine_files = Dir.glob('lib/jasmine*.js')
old_jasmine_files.each do |file|
File.delete(file)
end
jasmine = File.new("lib/#{jasmine_filename version}", 'w')
jasmine.puts(File.read(sources.shift))
jasmine.puts %{
2009-08-21 05:16:14 +00:00
jasmine.version_= {
"major": #{version['major']},
"minor": #{version['minor']},
"build": #{version['build']},
"revision": #{Time.now.to_i}
2009-08-21 05:16:14 +00:00
};
}
sources.each do |source_filename|
jasmine.puts(File.read(source_filename))
end
end
desc "Build jasmine documentation"
task :doc do
require 'rubygems'
#sudo gem install ragaskar-jsdoc_helper
require 'jsdoc_helper'
JsdocHelper::Rake::Task.new(:lambda_jsdoc)
Rake::Task[:lambda_jsdoc].invoke
end
end
def jasmine_sources
sources = ["src/base.js", "src/util.js", "src/Env.js", "src/Reporter.js", "src/Block.js"]
sources += Dir.glob('src/*.js').reject{|f| f == 'src/base.js' || sources.include?(f)}.sort
end
def jasmine_filename(version)
"jasmine-#{version['major']}.#{version['minor']}.#{version['build']}.js"
end
def version_hash
JSON.parse(File.new("src/version.json").read);
end
namespace :test do
desc "Run continuous integration tests"
task :ci => 'build:jasmine' do
require "spec"
require 'spec/rake/spectask'
Spec::Rake::SpecTask.new(:lambda_ci) do |t|
t.spec_opts = ["--color", "--format", "specdoc"]
t.spec_files = ["spec/jasmine_spec.rb"]
end
2009-08-27 05:41:19 +00:00
Rake::Task[:lambda_ci].invoke
end
2009-08-27 05:41:19 +00:00
end
2009-08-27 05:41:19 +00:00
desc "Run jasmine tests via server"
task :jasmine_server do
require File.expand_path(File.join(File.dirname(__FILE__), "contrib/ruby/jasmine_spec_builder"))
2009-09-04 17:57:08 +00:00
includes = lambda do
jasmine_sources + ['lib/TrivialReporter.js'] + Dir.glob("spec/**/*.js")
end
2009-08-27 05:41:19 +00:00
dir_mappings = {
"/spec" => "spec",
"/lib" => "lib",
"/src" => 'src'
}
2009-08-27 05:41:19 +00:00
puts "your tests are here:"
puts " http://localhost:8888/run.html"
2009-09-04 17:57:08 +00:00
Jasmine::SimpleServer.start(8888, includes, dir_mappings)
end