evergreen 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/README.rdoc +8 -6
- data/lib/evergreen.rb +8 -6
- data/lib/evergreen/application.rb +2 -5
- data/lib/evergreen/helper.rb +33 -0
- data/lib/evergreen/runner.rb +1 -1
- data/lib/evergreen/server.rb +1 -0
- data/lib/evergreen/suite.rb +6 -0
- data/lib/evergreen/version.rb +1 -1
- data/lib/evergreen/views/run.erb +16 -6
- data/lib/jasmine/Contribute.markdown +8 -7
- data/lib/jasmine/Gemfile +0 -1
- data/lib/jasmine/README.markdown +1 -8
- data/lib/jasmine/Rakefile +26 -15
- data/lib/jasmine/Release.markdown +8 -6
- data/lib/jasmine/config.rb +29 -0
- data/lib/jasmine/jasmine-core.gemspec +9 -2
- data/lib/jasmine/jasmine_dev.thor +1 -0
- data/lib/jasmine/jshint/run.js +1 -1
- data/lib/jasmine/lib/jasmine-core/jasmine-html.js +427 -1
- data/lib/jasmine/lib/jasmine-core/jasmine.css +81 -166
- data/lib/jasmine/lib/jasmine-core/jasmine.js +245 -192
- data/lib/jasmine/lib/jasmine-core/version.rb +1 -1
- data/lib/jasmine/spec/core/MatchersSpec.js +273 -0
- data/lib/jasmine/spec/core/PrettyPrintSpec.js +7 -0
- data/lib/jasmine/spec/html/HTMLReporterSpec.js +209 -0
- data/lib/jasmine/spec/node_suite.js +2 -2
- data/lib/jasmine/spec/runner.html +10 -3
- data/lib/jasmine/spec/spec_helper.rb +51 -0
- data/lib/jasmine/spec/tasks/build_distribution_spec.rb +33 -0
- data/lib/jasmine/spec/tasks/build_github_pages_spec.rb +69 -0
- data/lib/jasmine/spec/tasks/build_standalone_distribution_spec.rb +109 -0
- data/lib/jasmine/spec/tasks/build_standalone_runner_spec.rb +63 -0
- data/lib/jasmine/spec/tasks/count_specs_spec.rb +26 -0
- data/lib/jasmine/spec/tasks/execute_specs_spec.rb +81 -0
- data/lib/jasmine/spec/tasks/jshint_spec.rb +39 -0
- data/lib/jasmine/spec/tasks/release_spec.rb +39 -0
- data/lib/jasmine/spec/tasks/version_spec.rb +55 -0
- data/lib/jasmine/spec/templates/runner.html.erb +3 -3
- data/lib/jasmine/src/core/Env.js +10 -2
- data/lib/jasmine/src/core/Matchers.js +33 -4
- data/lib/jasmine/src/core/PrettyPrinter.js +2 -2
- data/lib/jasmine/src/core/base.js +15 -0
- data/lib/jasmine/src/core/mock-timeout.js +0 -0
- data/lib/jasmine/src/html/HtmlReporter.js +101 -0
- data/lib/jasmine/src/html/HtmlReporterHelpers.js +60 -0
- data/lib/jasmine/src/html/ReporterView.js +164 -0
- data/lib/jasmine/src/html/SpecView.js +79 -0
- data/lib/jasmine/src/html/SuiteView.js +22 -0
- data/lib/jasmine/src/html/TrivialReporter.js +3 -1
- data/lib/jasmine/src/html/_HTMLReporter.scss +302 -0
- data/lib/jasmine/src/html/_TrivialReporter.scss +169 -0
- data/lib/jasmine/src/html/jasmine.css +81 -166
- data/lib/jasmine/src/html/jasmine.scss +2 -0
- data/lib/jasmine/src/templates/version.js.erb +1 -0
- data/lib/jasmine/src/version.js +3 -2
- data/lib/jasmine/src/version.json +1 -1
- data/lib/jasmine/tasks/jasmine_dev.rb +18 -0
- data/lib/jasmine/tasks/jasmine_dev/base.rb +54 -0
- data/lib/jasmine/tasks/jasmine_dev/build_distribution.rb +53 -0
- data/lib/jasmine/tasks/jasmine_dev/build_github_pages.rb +31 -0
- data/lib/jasmine/tasks/jasmine_dev/build_standalone_distribution.rb +49 -0
- data/lib/jasmine/tasks/jasmine_dev/build_standalone_runner.rb +59 -0
- data/lib/jasmine/tasks/jasmine_dev/count_specs.rb +29 -0
- data/lib/jasmine/tasks/jasmine_dev/execute_specs.rb +52 -0
- data/lib/jasmine/tasks/jasmine_dev/js_hint.rb +13 -0
- data/lib/jasmine/tasks/jasmine_dev/release.rb +16 -0
- data/lib/jasmine/tasks/jasmine_dev/sources.rb +32 -0
- data/lib/jasmine/tasks/jasmine_dev/version.rb +62 -0
- data/spec/helper_spec.rb +25 -0
- data/spec/suite1/spec/javascripts/{spec_helper.coffee → helpers/spec_helper.coffee} +0 -0
- data/spec/suite1/spec/javascripts/{spec_helper.js → helpers/spec_helper.js} +0 -0
- data/spec/suite1/spec/javascripts/templates_spec.js +6 -6
- data/spec/suite2/spec/awesome_spec.js +1 -1
- data/spec/suite_spec.rb +6 -0
- metadata +116 -52
- data/lib/jasmine/src/SourcesList.json +0 -7
- data/lib/jasmine/tasks/build_dist.rb +0 -48
- data/lib/jasmine/tasks/build_specs.rb +0 -50
- data/lib/jasmine/tasks/helpers.rb +0 -50
- data/lib/jasmine/tasks/pages.rb +0 -13
- data/lib/jasmine/tasks/spec.rb +0 -37
- data/lib/jasmine/tasks/standalone.rb +0 -91
- data/lib/jasmine/tasks/version.rb +0 -5
@@ -1,48 +0,0 @@
|
|
1
|
-
desc "Build core jasmine.js"
|
2
|
-
task :build_dist => [:lint, :write_version_files] do
|
3
|
-
puts 'Building Jasmine distribution from source'.cyan
|
4
|
-
|
5
|
-
concat_into('./lib/jasmine-core/jasmine.js') { core_sources + version_source_file }
|
6
|
-
concat_into('./lib/jasmine-core/jasmine-html.js') { html_sources }
|
7
|
-
|
8
|
-
FileUtils.cp('./src/html/jasmine.css', './lib/jasmine-core/jasmine.css')
|
9
|
-
end
|
10
|
-
|
11
|
-
def concat_into(output_file, &block)
|
12
|
-
files = yield
|
13
|
-
File.open(output_file, 'w') do |out|
|
14
|
-
files.each do |f|
|
15
|
-
out << File.read(f)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
desc 'Check jasmine sources for coding problems'
|
21
|
-
task :lint => :require_node do
|
22
|
-
puts "Running JSHint via Node.js".cyan
|
23
|
-
system("node jshint/run.js") || exit(1)
|
24
|
-
end
|
25
|
-
|
26
|
-
task :hint => :lint
|
27
|
-
|
28
|
-
task :write_version_files do
|
29
|
-
scope = OpenStruct.new(:major => version_hash["major"],
|
30
|
-
:minor => version_hash["minor"],
|
31
|
-
:build => version_hash["build"],
|
32
|
-
:release_candidate => version_hash["release_candidate"],
|
33
|
-
:revision => Time.now.to_i)
|
34
|
-
|
35
|
-
js_template = Tilt.new('./src/templates/version.js.erb')
|
36
|
-
File.open('./src/version.js', 'w+') do |f|
|
37
|
-
f << js_template.render(scope)
|
38
|
-
end
|
39
|
-
|
40
|
-
rb_template = Tilt.new('./src/templates/version.rb.erb')
|
41
|
-
File.open('./lib/jasmine-core/version.rb', 'w+') do |f|
|
42
|
-
f << rb_template.render(scope)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def version_source_file
|
47
|
-
Dir.glob('src/version.js')
|
48
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
|
3
|
-
#build the browser spec for Jasmine core based on current tree
|
4
|
-
task :build_runner_html do
|
5
|
-
template = Tilt.new('spec/templates/runner.html.erb')
|
6
|
-
|
7
|
-
File.open('spec/runner.html', 'w+') do |f|
|
8
|
-
scope = OpenStruct.new(:title => "Jasmine Spec Runner: Jasmine Core",
|
9
|
-
:favicon => favicon,
|
10
|
-
:jasmine_tags => jasmine_tags,
|
11
|
-
:source_tags => source_tags,
|
12
|
-
:spec_file_tags => spec_file_tags)
|
13
|
-
f << template.render(scope)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def favicon
|
18
|
-
<<HTML
|
19
|
-
<link rel="shortcut icon" type="image/png" href="../images/jasmine_favicon.png">
|
20
|
-
HTML
|
21
|
-
end
|
22
|
-
|
23
|
-
def jasmine_tags
|
24
|
-
tags = %Q{<link href="../lib/jasmine-core/jasmine.css" rel="stylesheet"/>}
|
25
|
-
tags << "\n "
|
26
|
-
tags << script_tags_for("../lib/jasmine-core/jasmine.js")
|
27
|
-
tags << "\n "
|
28
|
-
tags << undefined_catch
|
29
|
-
tags
|
30
|
-
end
|
31
|
-
|
32
|
-
def undefined_catch
|
33
|
-
<<HTML
|
34
|
-
<script type="text/javascript">
|
35
|
-
// yes, really keep this here to keep us honest, but only for jasmine's own runner! [xw]
|
36
|
-
undefined = "diz be undefined yo";
|
37
|
-
</script>
|
38
|
-
HTML
|
39
|
-
end
|
40
|
-
|
41
|
-
def source_tags
|
42
|
-
other_files = html_sources + console_sources
|
43
|
-
script_tags_for other_files.collect { |f| "../#{f}" }
|
44
|
-
end
|
45
|
-
|
46
|
-
def spec_file_tags
|
47
|
-
spec_files = core_specfiles + html_specfiles + console_specfiles
|
48
|
-
script_tags_for spec_files.collect { |f| "../#{f}" }
|
49
|
-
end
|
50
|
-
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
|
-
def core_sources
|
4
|
-
first_sources = JSON.parse(File.read('./src/SourcesList.json')).collect { |f| "./src/core/#{f}" }
|
5
|
-
|
6
|
-
remaining_sources = Dir.glob('./src/core/*.js').reject { |f| first_sources.include?(f) }.sort
|
7
|
-
|
8
|
-
first_sources + remaining_sources
|
9
|
-
end
|
10
|
-
|
11
|
-
def html_sources
|
12
|
-
Dir.glob('./src/html/*.js')
|
13
|
-
end
|
14
|
-
|
15
|
-
def console_sources
|
16
|
-
Dir.glob('./src/console/*.js')
|
17
|
-
end
|
18
|
-
|
19
|
-
def core_specfiles
|
20
|
-
Dir.glob('./spec/core/*.js')
|
21
|
-
end
|
22
|
-
|
23
|
-
def html_specfiles
|
24
|
-
Dir.glob('./spec/html/*.js')
|
25
|
-
end
|
26
|
-
|
27
|
-
def console_specfiles
|
28
|
-
Dir.glob('./spec/console/*.js')
|
29
|
-
end
|
30
|
-
|
31
|
-
def version_string
|
32
|
-
version = "#{version_hash['major']}.#{version_hash['minor']}.#{version_hash['build']}"
|
33
|
-
version += ".rc#{version_hash['release_candidate']}" if version_hash['release_candidate']
|
34
|
-
version
|
35
|
-
end
|
36
|
-
|
37
|
-
def version_hash
|
38
|
-
@version ||= JSON.parse(File.new("./src/version.json").read);
|
39
|
-
end
|
40
|
-
|
41
|
-
def script_tags_for(files)
|
42
|
-
script_tag = Tilt::new('./spec/templates/script_tag.html.erb')
|
43
|
-
|
44
|
-
srcs = (files.is_a?(String) ? [files] : files)
|
45
|
-
srcs.inject([]) do |tags, f|
|
46
|
-
scope = OpenStruct.new :file => f
|
47
|
-
tags << script_tag.render(scope)
|
48
|
-
tags
|
49
|
-
end.join("\n ")
|
50
|
-
end
|
data/lib/jasmine/tasks/pages.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
desc "Build the Github pages HTML"
|
2
|
-
task :build_pages => :require_pages_submodule do
|
3
|
-
Dir.chdir("pages") do
|
4
|
-
FileUtils.rm_r('pages_output') if File.exist?('pages_output')
|
5
|
-
Dir.chdir('pages_source') do
|
6
|
-
system("frank export ../pages_output")
|
7
|
-
end
|
8
|
-
puts "\n"
|
9
|
-
puts "Copying built website to the root of the gh-pages branch".cyan
|
10
|
-
puts "\n\n"
|
11
|
-
system("cp -r pages_output/* .")
|
12
|
-
end
|
13
|
-
end
|
data/lib/jasmine/tasks/spec.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
desc "Run spec suite: Browser, Node, JSHint"
|
2
|
-
task :spec => ["build_dist", "count_specs", "spec:node", "spec:browser"]
|
3
|
-
|
4
|
-
desc 'Run specs in Node.js'
|
5
|
-
task "spec:node" => [:count_specs, :require_node] do
|
6
|
-
puts "Running all appropriate specs via Node.js".cyan
|
7
|
-
|
8
|
-
color = Term::ANSIColor.coloring? ? "--color" : "--noColor"
|
9
|
-
system("node spec/node_suite.js #{color}")
|
10
|
-
end
|
11
|
-
|
12
|
-
desc "Run specs in the default browser (MacOS only)"
|
13
|
-
task "spec:browser" => [:count_specs, :build_runner_html] do
|
14
|
-
puts "Running all appropriate specs via the default web browser".cyan
|
15
|
-
system("open spec/runner.html")
|
16
|
-
end
|
17
|
-
|
18
|
-
#Count number of specs in Jasmine core
|
19
|
-
task :count_specs do
|
20
|
-
core_specs_count = count_specs_in(Dir.glob('spec/core/*.js'))
|
21
|
-
console_spec_count = count_specs_in(Dir.glob('spec/console/*.js'))
|
22
|
-
html_spec_count = count_specs_in(Dir.glob('spec/html/*.js'))
|
23
|
-
|
24
|
-
puts "\n"
|
25
|
-
puts "#{(core_specs_count + console_spec_count).to_s.yellow.bold} specs for Node.js runner (exclude DOM-related specs)"
|
26
|
-
puts "#{(core_specs_count + console_spec_count + html_spec_count).to_s.yellow.bold} specs for Browser runner (all specs)"
|
27
|
-
puts "\n"
|
28
|
-
puts "Please verify that these numbers match the runner output."
|
29
|
-
puts "\n"
|
30
|
-
end
|
31
|
-
|
32
|
-
def count_specs_in(files)
|
33
|
-
files.inject(0) do |count, file|
|
34
|
-
File.read(file).scan(/\sit\(/) {|s| count += 1}
|
35
|
-
count
|
36
|
-
end
|
37
|
-
end
|
@@ -1,91 +0,0 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
|
3
|
-
desc "Build standalone distribution"
|
4
|
-
task :standalone => [:require_pages_submodule, :protect_current_dist_zip, :build_spec_runner_html] do
|
5
|
-
require 'tmpdir'
|
6
|
-
|
7
|
-
zip_root = File.join(Dir.tmpdir, "zip_root")
|
8
|
-
temp_dir = File.join(zip_root, "jasmine-standalone-#{version_string}")
|
9
|
-
puts "Building Example Project in #{temp_dir}"
|
10
|
-
FileUtils.rm_r temp_dir if File.exist?(temp_dir)
|
11
|
-
FileUtils.mkdir_p(temp_dir)
|
12
|
-
|
13
|
-
root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
14
|
-
FileUtils.mkdir_p(File.join(root, "example"))
|
15
|
-
FileUtils.cp_r(File.join(root, 'example/.'), File.join(temp_dir))
|
16
|
-
|
17
|
-
lib_dir = File.join(temp_dir, "lib/jasmine-#{version_string}")
|
18
|
-
FileUtils.mkdir_p(lib_dir)
|
19
|
-
{
|
20
|
-
"images/jasmine_favicon.png" => "jasmine_favicon.png",
|
21
|
-
"lib/jasmine-core/jasmine.js" => "jasmine.js",
|
22
|
-
"lib/jasmine-core/jasmine-html.js" => "jasmine-html.js",
|
23
|
-
"lib/jasmine-core/jasmine.css" => "jasmine.css",
|
24
|
-
"MIT.LICENSE" => "MIT.LICENSE"
|
25
|
-
}.each_pair do |src, dest|
|
26
|
-
FileUtils.cp(File.join(root, src), File.join(lib_dir, dest))
|
27
|
-
end
|
28
|
-
|
29
|
-
dist_dir = File.join(root, 'pages/downloads')
|
30
|
-
zip_file_name = File.join(dist_dir, "jasmine-standalone-#{version_string}.zip")
|
31
|
-
|
32
|
-
puts "Zipping Example Project and moving to #{zip_file_name}"
|
33
|
-
exec "cd #{zip_root} && zip #{zip_file_name} -r . -x .[a-zA-Z0-9]*"
|
34
|
-
end
|
35
|
-
|
36
|
-
#Build SpecRunner.html for standalone dist example project
|
37
|
-
task :build_spec_runner_html do
|
38
|
-
template = Tilt.new('spec/templates/runner.html.erb')
|
39
|
-
|
40
|
-
File.open('lib/jasmine-core/example/SpecRunner.html', 'w+') do |f|
|
41
|
-
scope = OpenStruct.new(:title => "Jasmine Spec Runner",
|
42
|
-
:favicon => example_favicon,
|
43
|
-
:jasmine_tags => example_jasmine_tags,
|
44
|
-
:source_tags => example_source_tags,
|
45
|
-
:spec_file_tags => example_spec_tags)
|
46
|
-
f << template.render(scope)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def example_path
|
51
|
-
"lib/jasmine-#{version_string}"
|
52
|
-
end
|
53
|
-
|
54
|
-
def example_favicon
|
55
|
-
<<HTML
|
56
|
-
<link rel="shortcut icon" type="image/png" href="#{example_path}/jasmine_favicon.png">
|
57
|
-
HTML
|
58
|
-
end
|
59
|
-
|
60
|
-
def example_jasmine_tags
|
61
|
-
tags = %Q{<link rel="stylesheet" type="text/css" href="#{example_path}/jasmine.css">}
|
62
|
-
tags << "\n "
|
63
|
-
tags << script_tags_for(["#{example_path}/jasmine.js", "#{example_path}/jasmine-html.js"])
|
64
|
-
tags
|
65
|
-
end
|
66
|
-
|
67
|
-
def example_source_tags
|
68
|
-
script_tags_for ['spec/SpecHelper.js', 'spec/PlayerSpec.js']
|
69
|
-
end
|
70
|
-
|
71
|
-
def example_spec_tags
|
72
|
-
script_tags_for ['src/Player.js', 'src/Song.js']
|
73
|
-
end
|
74
|
-
|
75
|
-
|
76
|
-
task :protect_current_dist_zip do
|
77
|
-
root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
78
|
-
dist_dir = File.join(root, 'pages/downloads')
|
79
|
-
zip_file_name = File.join(dist_dir, "jasmine-standalone-#{version_string}.zip")
|
80
|
-
|
81
|
-
zip_present_message = "\n\n"
|
82
|
-
zip_present_message << "==> STOPPED <==".red
|
83
|
-
zip_present_message << "\n\n"
|
84
|
-
zip_present_message << "The file ".red + "#{zip_file_name}" + " already exists.".red + "\n"
|
85
|
-
zip_present_message << "If you should be building the next version, update src/version.json"
|
86
|
-
zip_present_message << "\n"
|
87
|
-
zip_present_message << "If the version is correct, you must be trying to re-build the standalone ZIP. Delete the ZIP and rebuild."
|
88
|
-
zip_present_message << "\n"
|
89
|
-
|
90
|
-
raise zip_present_message if File.exist?(zip_file_name)
|
91
|
-
end
|