diff --git a/Rakefile b/Rakefile index 386f79e3..42aa4910 100644 --- a/Rakefile +++ b/Rakefile @@ -2,8 +2,8 @@ require 'bundler' Bundler::GemHelper.install_tasks def sources - dependencies = JSON.parse(File.read('src/SourcesList.json')).collect {|f| "src/core/#{f}"} - dependencies + Dir.glob('src/core/*.js').reject {|f| dependencies.include?(f)}.sort + dependencies = JSON.parse(File.read('./src/SourcesList.json')).collect {|f| "./src/core/#{f}"} + dependencies + Dir.glob('./src/core/*.js').reject {|f| dependencies.include?(f)}.sort end def html_sources @@ -11,7 +11,7 @@ def html_sources end def version_hash - @version ||= JSON.parse(File.new("src/core/version.json").read) + @version ||= JSON.parse(File.new("./src/core/version.json").read) end def substitute_version(filename) @@ -28,8 +28,8 @@ task :spec => ["jasmine:build", "spec:node", "spec:browser"] namespace :spec do desc 'Run specs in Node.js' - task :node do - raise "Node is required to run all jasmine specs" unless system("node spec/node_suite.js") + task :node => "jasmine:require_node" do + system("node spec/node_suite.js") end desc "Run specs in the default browser (MacOS only)" @@ -40,6 +40,11 @@ end namespace :jasmine do + task :require_node do + raise "Node.js is required" if `which node` == '' + end + + desc 'Prepares for distribution' task :dist => ['jasmine:build', 'jasmine:doc', @@ -48,7 +53,7 @@ namespace :jasmine do 'jasmine:fill_index_downloads'] desc 'Check jasmine sources for coding problems' - task :lint do + task :lint => "jasmine:require_node" do puts "Running JSHint via Node.js" system("node jshint/run.js") || exit(1) end @@ -72,7 +77,8 @@ jasmine.version_= { "major": #{version['major'].to_json}, "minor": #{version['minor'].to_json}, "build": #{version['build'].to_json}, - "revision": #{Time.now.to_i} + "revision": #{Time.now.to_i}, + "release_candidate": #{version['release_candidate'].to_json} }; } end @@ -114,7 +120,7 @@ jasmine.version_= { FileUtils.rm_r "pages/jsdoc", :force => true JsdocHelper::Rake::Task.new(:lambda_jsdoc) do |t| - t[:files] = jasmine_sources << html_sources + t[:files] = sources << html_sources t[:options] = "-a" t[:out] = "pages/jsdoc" # JsdocHelper bug: template must be relative to the JsdocHelper gem, ick @@ -136,7 +142,7 @@ jasmine.version_= { FileUtils.cp_r File.join(root, 'example/.'), File.join(temp_dir) substitute_version(File.join(temp_dir, "SpecRunner.html")) - lib_dir = File.join(temp_dir, "lib/jasmine-#{jasmine_version}") + lib_dir = File.join(temp_dir, "lib", "jasmine-#{jasmine_version}") FileUtils.mkdir_p(lib_dir) { "lib/jasmine.js" => "jasmine.js", @@ -159,3 +165,5 @@ jasmine.version_= { end end + +task :build => "jasmine:build" diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index 73db05db..4b00f9fd 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -737,7 +737,12 @@ jasmine.Env.prototype.version = function () { jasmine.Env.prototype.versionString = function() { if (jasmine.version_) { var version = this.version(); - return version.major + "." + version.minor + "." + version.build + " revision " + version.revision; + var versionString = version.major + "." + version.minor + "." + version.build; + if (version.release_candidate) { + versionString += ".rc" + version.release_candidate + } + versionString += " revision " + version.revision + return versionString; } else { return "version unknown"; } @@ -991,7 +996,7 @@ jasmine.Block = function(env, func, spec) { this.spec = spec; }; -jasmine.Block.prototype.execute = function(onComplete) { +jasmine.Block.prototype.execute = function(onComplete) { try { this.func.apply(this.spec); } catch (e) { @@ -1031,7 +1036,7 @@ jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) { type: isSuite ? 'suite' : 'spec', children: [] }; - + if (isSuite) { var children = suiteOrSpec.children(); for (var i = 0; i < children.length; i++) { @@ -1647,7 +1652,7 @@ jasmine.PrettyPrinter.prototype.format = function(value) { jasmine.PrettyPrinter.prototype.iterateObject = function(obj, fn) { for (var property in obj) { if (property == '__Jasmine_been_here_before__') continue; - fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) !== jasmine.undefined && + fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) !== jasmine.undefined && obj.__lookupGetter__(property) !== null) : false); } }; @@ -1750,7 +1755,7 @@ jasmine.Queue.prototype.next_ = function() { while (goAgain) { goAgain = false; - + if (self.index < self.blocks.length && !this.abort) { var calledSynchronously = true; var completedSynchronously = false; @@ -1788,7 +1793,7 @@ jasmine.Queue.prototype.next_ = function() { if (completedSynchronously) { onComplete(); } - + } else { self.running = false; if (self.onComplete) { @@ -2465,9 +2470,10 @@ jasmine.getGlobal().clearInterval = function(timeoutKey) { jasmine.version_= { - "major": 1, - "minor": 1, + "major": 2, + "minor": 0, "build": 0, - "revision": 1307546962 + "revision": 1307766763, + "release_candidate": 1 }; - + diff --git a/lib/jasmine-core/version.rb b/lib/jasmine-core/version.rb index f3f0e1f4..d698d472 100644 --- a/lib/jasmine-core/version.rb +++ b/lib/jasmine-core/version.rb @@ -1,7 +1,8 @@ module Jasmine module Core require 'json' - VERSION_HASH = JSON.parse(File.new(File.join(File.dirname(__FILE__), "..", "..", "src/version.json")).read); + VERSION_HASH = JSON.parse(File.new(File.join(File.dirname(__FILE__), "..", "..", "src", "core", "version.json")).read); VERSION = "#{VERSION_HASH['major']}.#{VERSION_HASH['minor']}.#{VERSION_HASH['build']}" + VERSION << ".rc#{VERSION_HASH['release_candidate']}" if VERSION_HASH['release_candidate'] end end diff --git a/spec/core/EnvSpec.js b/spec/core/EnvSpec.js index be7a9fd8..3bd67031 100644 --- a/spec/core/EnvSpec.js +++ b/spec/core/EnvSpec.js @@ -64,9 +64,10 @@ describe("jasmine.Env", function() { "major": 1, "minor": 9, "build": 7, + "release_candidate": "1", "revision": 8 }; - expect(env.versionString()).toEqual("1.9.7 revision 8"); + expect(env.versionString()).toEqual("1.9.7.rc1 revision 8"); }); it("should return a nice string when version is unknown", function() { diff --git a/spec/node_suite.js b/spec/node_suite.js index 1bbc4a0e..695c0ac0 100644 --- a/spec/node_suite.js +++ b/spec/node_suite.js @@ -6,7 +6,7 @@ var path = require('path'); // undefined = "diz be undefined yo"; -var jasmineGlobals = require('../lib/jasmine.js'); +var jasmineGlobals = require('../lib/jasmine-core/jasmine.js'); for (var k in jasmineGlobals) { global[k] = jasmineGlobals[k]; } @@ -124,4 +124,4 @@ jasmine.executeSpecs(domIndependentSpecs, function(runner, log) { } else { process.exit(1); } -}, isVerbose, showColors); \ No newline at end of file +}, isVerbose, showColors); diff --git a/spec/runner.html b/spec/runner.html index aeb23493..5e161643 100644 --- a/spec/runner.html +++ b/spec/runner.html @@ -9,7 +9,7 @@ undefined = "diz be undefined yo"; - + diff --git a/src/core/Env.js b/src/core/Env.js index f469a2e0..b188a4a7 100644 --- a/src/core/Env.js +++ b/src/core/Env.js @@ -53,7 +53,12 @@ jasmine.Env.prototype.version = function () { jasmine.Env.prototype.versionString = function() { if (jasmine.version_) { var version = this.version(); - return version.major + "." + version.minor + "." + version.build + " revision " + version.revision; + var versionString = version.major + "." + version.minor + "." + version.build; + if (version.release_candidate) { + versionString += ".rc" + version.release_candidate + } + versionString += " revision " + version.revision + return versionString; } else { return "version unknown"; } diff --git a/src/core/version.json b/src/core/version.json index a7c2dbdd..c899920f 100644 --- a/src/core/version.json +++ b/src/core/version.json @@ -1,5 +1,6 @@ { - "major": 1, - "minor": 1, - "build": 0 + "major": 2, + "minor": 0, + "build": 0, + "release_candidate": 1 }