evergreen 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +30 -4
- data/config/routes.rb +1 -1
- data/lib/evergreen.rb +14 -50
- data/lib/evergreen/application.rb +46 -0
- data/lib/evergreen/cli.rb +2 -2
- data/lib/evergreen/rails.rb +4 -0
- data/lib/evergreen/resources/evergreen.css +3 -1
- data/lib/evergreen/resources/evergreen.js +3 -0
- data/lib/evergreen/runner.rb +124 -36
- data/lib/evergreen/server.rb +9 -18
- data/lib/evergreen/spec.rb +26 -14
- data/lib/evergreen/suite.rb +44 -0
- data/lib/evergreen/tasks.rb +6 -0
- data/lib/evergreen/template.rb +7 -10
- data/lib/evergreen/version.rb +1 -1
- data/lib/evergreen/views/layout.erb +1 -0
- data/lib/evergreen/views/list.erb +2 -2
- data/lib/evergreen/views/spec.erb +18 -10
- data/lib/jasmine/Gemfile +6 -0
- data/lib/jasmine/MIT.LICENSE +2 -2
- data/lib/jasmine/README.markdown +5 -459
- data/lib/jasmine/Rakefile +22 -16
- data/lib/jasmine/example/SpecRunner.html +1 -1
- data/lib/jasmine/jsdoc-template/allclasses.tmpl +17 -0
- data/lib/jasmine/jsdoc-template/allfiles.tmpl +56 -0
- data/lib/jasmine/jsdoc-template/class.tmpl +646 -0
- data/lib/jasmine/jsdoc-template/index.tmpl +39 -0
- data/lib/jasmine/jsdoc-template/publish.js +184 -0
- data/lib/jasmine/jsdoc-template/static/default.css +162 -0
- data/lib/jasmine/jsdoc-template/static/header.html +2 -0
- data/lib/jasmine/jsdoc-template/static/index.html +19 -0
- data/lib/jasmine/jsdoc-template/symbol.tmpl +35 -0
- data/lib/jasmine/lib/jasmine-html.js +12 -6
- data/lib/jasmine/lib/jasmine.js +122 -44
- data/lib/jasmine/spec/runner.html +0 -1
- data/lib/jasmine/spec/suites/CustomMatchersSpec.js +18 -9
- data/lib/jasmine/spec/suites/MatchersSpec.js +241 -162
- data/lib/jasmine/spec/suites/SpecRunningSpec.js +120 -62
- data/lib/jasmine/spec/suites/TrivialReporterSpec.js +3 -0
- data/lib/jasmine/spec/suites/WaitsForBlockSpec.js +9 -9
- data/lib/jasmine/src/Env.js +1 -0
- data/lib/jasmine/src/Matchers.js +35 -17
- data/lib/jasmine/src/Queue.js +6 -1
- data/lib/jasmine/src/Spec.js +34 -2
- data/lib/jasmine/src/WaitsForBlock.js +28 -13
- data/lib/jasmine/src/base.js +15 -8
- data/lib/jasmine/src/html/TrivialReporter.js +12 -6
- data/lib/jasmine/src/version.json +2 -2
- data/lib/tasks/evergreen.rake +1 -1
- data/spec/meta_spec.rb +21 -2
- data/spec/runner_spec.rb +16 -18
- data/spec/spec_helper.rb +12 -4
- data/spec/spec_spec.rb +4 -11
- data/spec/suite1/spec/javascripts/invalid_coffee_spec.coffee +1 -0
- data/spec/suite1/spec/javascripts/spec_helper.coffee +1 -1
- data/spec/suite2/config/evergreen.rb +5 -0
- data/spec/suite2/public_html/foo.js +1 -0
- data/spec/suite2/spec/awesome_spec.js +12 -0
- data/spec/suite2/spec/failing_spec.js +5 -0
- data/spec/suite2/templates/foo.html +1 -0
- data/spec/suite_spec.rb +26 -0
- data/spec/template_spec.rb +3 -9
- metadata +52 -20
- data/lib/jasmine/lib/consolex.js +0 -28
data/lib/jasmine/Rakefile
CHANGED
@@ -22,6 +22,7 @@ task :default => 'jasmine:dist'
|
|
22
22
|
def substitute_jasmine_version(filename)
|
23
23
|
contents = File.read(filename)
|
24
24
|
contents = contents.gsub(/##JASMINE_VERSION##/, (jasmine_version))
|
25
|
+
contents = contents.gsub(/[^\n]*REMOVE_THIS_LINE_FROM_BUILD[^\n]*/, '')
|
25
26
|
File.open(filename, 'w') { |f| f.write(contents) }
|
26
27
|
end
|
27
28
|
|
@@ -73,9 +74,9 @@ namespace :jasmine do
|
|
73
74
|
|
74
75
|
jasmine.puts %{
|
75
76
|
jasmine.version_= {
|
76
|
-
"major": #{version['major']},
|
77
|
-
"minor": #{version['minor']},
|
78
|
-
"build": #{version['build']},
|
77
|
+
"major": #{version['major'].to_json},
|
78
|
+
"minor": #{version['minor'].to_json},
|
79
|
+
"build": #{version['build'].to_json},
|
79
80
|
"revision": #{Time.now.to_i}
|
80
81
|
};
|
81
82
|
}
|
@@ -90,8 +91,9 @@ jasmine.version_= {
|
|
90
91
|
FileUtils.cp("src/html/jasmine.css", "lib/jasmine.css")
|
91
92
|
end
|
92
93
|
|
94
|
+
downloads_file = 'pages/download.html.md'
|
93
95
|
task :need_pages_submodule do
|
94
|
-
unless File.exists?(
|
96
|
+
unless File.exists?(downloads_file)
|
95
97
|
raise "Jasmine pages submodule isn't present. Run git submodule update --init"
|
96
98
|
end
|
97
99
|
end
|
@@ -100,7 +102,6 @@ jasmine.version_= {
|
|
100
102
|
task :doc => :need_pages_submodule do
|
101
103
|
puts 'Creating Jasmine Documentation'
|
102
104
|
require 'rubygems'
|
103
|
-
#sudo gem install ragaskar-jsdoc_helper
|
104
105
|
require 'jsdoc_helper'
|
105
106
|
|
106
107
|
FileUtils.rm_r "pages/jsdoc", :force => true
|
@@ -109,6 +110,8 @@ jasmine.version_= {
|
|
109
110
|
t[:files] = jasmine_sources << jasmine_html_sources
|
110
111
|
t[:options] = "-a"
|
111
112
|
t[:out] = "pages/jsdoc"
|
113
|
+
# JsdocHelper bug: template must be relative to the JsdocHelper gem, ick
|
114
|
+
t[:template] = File.join("../".*(100), Dir::getwd, "jsdoc-template")
|
112
115
|
end
|
113
116
|
Rake::Task[:lambda_jsdoc].invoke
|
114
117
|
end
|
@@ -131,7 +134,8 @@ jasmine.version_= {
|
|
131
134
|
{
|
132
135
|
"lib/jasmine.js" => "jasmine.js",
|
133
136
|
"lib/jasmine-html.js" => "jasmine-html.js",
|
134
|
-
"src/html/jasmine.css" => "jasmine.css"
|
137
|
+
"src/html/jasmine.css" => "jasmine.css",
|
138
|
+
"MIT.LICENSE" => "MIT.LICENSE"
|
135
139
|
}.each_pair do |src, dest|
|
136
140
|
FileUtils.cp(File.join(root, src), File.join(lib_dir, dest))
|
137
141
|
end
|
@@ -151,24 +155,26 @@ jasmine.version_= {
|
|
151
155
|
require 'digest/sha1'
|
152
156
|
|
153
157
|
download_html = "<!-- START_DOWNLOADS -->\n"
|
154
|
-
download_html += "<table>\n<tr><th/><th>Version</th><th>Size</th><th>Date</th><th>SHA1</th></tr>\n"
|
155
158
|
Dir.glob('pages/downloads/*.zip').sort.reverse.each do |f|
|
156
159
|
sha1 = Digest::SHA1.hexdigest File.read(f)
|
157
160
|
|
158
161
|
fn = f.sub(/^pages\//, '')
|
159
162
|
version = /jasmine-standalone-(.*).zip/.match(f)[1]
|
160
|
-
|
161
|
-
download_html += "<
|
162
|
-
download_html += "<td>#{
|
163
|
-
download_html += "<td>#{
|
164
|
-
download_html += "<td>#{
|
163
|
+
prerelease = /\.rc/.match(f)
|
164
|
+
download_html += prerelease ? "<tr class=\"rc\">\n" : "<tr>\n"
|
165
|
+
download_html += " <td class=\"link\"><a href=\"#{fn}\">#{fn.sub(/downloads\//, '')}</a></td>\n"
|
166
|
+
download_html += " <td class=\"version\">#{version}</td>\n"
|
167
|
+
download_html += " <td class=\"size\">#{File.size(f) / 1024}k</td>\n"
|
168
|
+
download_html += " <td class=\"date\">#{File.mtime(f).strftime("%Y/%m/%d %H:%M:%S %Z")}</td>\n"
|
169
|
+
download_html += " <td class=\"sha\">#{sha1}</td>\n"
|
170
|
+
download_html += "</tr>\n"
|
165
171
|
end
|
166
|
-
download_html += "
|
172
|
+
download_html += "<!-- END_DOWNLOADS -->"
|
167
173
|
|
168
|
-
|
174
|
+
downloads_page = File.read(downloads_file)
|
169
175
|
matcher = /<!-- START_DOWNLOADS -->.*<!-- END_DOWNLOADS -->/m
|
170
|
-
|
171
|
-
File.open(
|
176
|
+
downloads_page = downloads_page.sub(matcher, download_html)
|
177
|
+
File.open(downloads_file, 'w') {|f| f.write(downloads_page)}
|
172
178
|
puts "rewrote that file"
|
173
179
|
end
|
174
180
|
end
|
@@ -17,6 +17,7 @@
|
|
17
17
|
|
18
18
|
</head>
|
19
19
|
<body>
|
20
|
+
<div id="REMOVE_THIS_LINE_FROM_BUILD"><p>You must be trying to look at examples in the Jasmine source tree.</p><p>Please download a distribution version of Jasmine at <a href="http://pivotal.github.com/jasmine/">http://pivotal.github.com/jasmine/</a>.</p></div>
|
20
21
|
<script type="text/javascript">
|
21
22
|
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
|
22
23
|
jasmine.getEnv().execute();
|
@@ -24,4 +25,3 @@
|
|
24
25
|
|
25
26
|
</body>
|
26
27
|
</html>
|
27
|
-
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div align="center">{+new Link().toFile("index.html").withText("Class Index")+}
|
2
|
+
| {+new Link().toFile("files.html").withText("File Index")+}</div>
|
3
|
+
<hr />
|
4
|
+
<h2>Classes</h2>
|
5
|
+
<ul class="classList">
|
6
|
+
<for each="thisClass" in="data">
|
7
|
+
<li>{!
|
8
|
+
if (thisClass.alias == "_global_") {
|
9
|
+
output += "<i>"+new Link().toClass(thisClass.alias)+"</i>";
|
10
|
+
}
|
11
|
+
else {
|
12
|
+
output += new Link().toClass(thisClass.alias);
|
13
|
+
}
|
14
|
+
!}</li>
|
15
|
+
</for>
|
16
|
+
</ul>
|
17
|
+
<hr />
|
@@ -0,0 +1,56 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}"" />
|
6
|
+
{! Link.base = ""; /* all generated links will be relative to this */ !}
|
7
|
+
<title>JsDoc Reference - File Index</title>
|
8
|
+
<meta name="generator" content="JsDoc Toolkit" />
|
9
|
+
|
10
|
+
<style type="text/css">
|
11
|
+
{+include("static/default.css")+}
|
12
|
+
</style>
|
13
|
+
</head>
|
14
|
+
|
15
|
+
<body>
|
16
|
+
{+include("static/header.html")+}
|
17
|
+
|
18
|
+
<div id="index">
|
19
|
+
{+publish.classesIndex+}
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div id="content">
|
23
|
+
<h1 class="classTitle">File Index</h1>
|
24
|
+
|
25
|
+
<for each="item" in="data">
|
26
|
+
<div>
|
27
|
+
<h2>{+new Link().toSrc(item.alias).withText(item.name)+}</h2>
|
28
|
+
<if test="item.desc">{+resolveLinks(summarize(item.desc))+}</if>
|
29
|
+
<dl>
|
30
|
+
<if test="item.author">
|
31
|
+
<dt class="heading">Author:</dt>
|
32
|
+
<dd>{+item.author+}</dd>
|
33
|
+
</if>
|
34
|
+
<if test="item.version">
|
35
|
+
<dt class="heading">Version:</dt>
|
36
|
+
<dd>{+item.version+}</dd>
|
37
|
+
</if>
|
38
|
+
{! var locations = item.comment.getTag('location').map(function($){return $.toString().replace(/(^\$ ?| ?\$$)/g, '').replace(/^HeadURL: https:/g, 'http:');}) !}
|
39
|
+
<if test="locations.length">
|
40
|
+
<dt class="heading">Location:</dt>
|
41
|
+
<for each="location" in="locations">
|
42
|
+
<dd><a href="{+location+}">{+location+}</a></dd>
|
43
|
+
</for>
|
44
|
+
</if>
|
45
|
+
</dl>
|
46
|
+
</div>
|
47
|
+
<hr />
|
48
|
+
</for>
|
49
|
+
|
50
|
+
</div>
|
51
|
+
<div class="fineprint" style="clear:both">
|
52
|
+
<if test="JSDOC.opt.D.copyright">©{+JSDOC.opt.D.copyright+}<br /></if>
|
53
|
+
Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
|
54
|
+
</div>
|
55
|
+
</body>
|
56
|
+
</html>
|
@@ -0,0 +1,646 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}" />
|
6
|
+
<meta name="generator" content="JsDoc Toolkit" />
|
7
|
+
{! Link.base = "../"; /* all generated links will be relative to this */ !}
|
8
|
+
<title>JsDoc Reference - {+data.alias+}</title>
|
9
|
+
|
10
|
+
<style type="text/css">
|
11
|
+
{+include("static/default.css")+}
|
12
|
+
</style>
|
13
|
+
</head>
|
14
|
+
|
15
|
+
<body>
|
16
|
+
<!-- ============================== header ================================= -->
|
17
|
+
<!-- begin static/header.html -->
|
18
|
+
{+include("static/header.html")+}
|
19
|
+
<!-- end static/header.html -->
|
20
|
+
|
21
|
+
<!-- ============================== classes index ============================ -->
|
22
|
+
<div id="index">
|
23
|
+
<!-- begin publish.classesIndex -->
|
24
|
+
{+publish.classesIndex+}
|
25
|
+
<!-- end publish.classesIndex -->
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div id="content">
|
29
|
+
<!-- ============================== class title ============================ -->
|
30
|
+
<h1 class="classTitle">
|
31
|
+
{!
|
32
|
+
var classType = "";
|
33
|
+
|
34
|
+
if (data.isBuiltin()) {
|
35
|
+
classType += "Built-In ";
|
36
|
+
}
|
37
|
+
|
38
|
+
if (data.isNamespace) {
|
39
|
+
if (data.is('FUNCTION')) {
|
40
|
+
classType += "Function ";
|
41
|
+
}
|
42
|
+
classType += "Namespace ";
|
43
|
+
}
|
44
|
+
else {
|
45
|
+
classType += "Class ";
|
46
|
+
}
|
47
|
+
!}
|
48
|
+
{+classType+}{+data.alias+}
|
49
|
+
</h1>
|
50
|
+
|
51
|
+
<!-- ============================== class summary ========================== -->
|
52
|
+
<p class="description">
|
53
|
+
<if test="data.augments.length"><br />Extends
|
54
|
+
{+
|
55
|
+
data.augments
|
56
|
+
.sort()
|
57
|
+
.map(
|
58
|
+
function($) { return new Link().toSymbol($); }
|
59
|
+
)
|
60
|
+
.join(", ")
|
61
|
+
+}.<br />
|
62
|
+
</if>
|
63
|
+
|
64
|
+
{+resolveLinks(data.classDesc)+}
|
65
|
+
|
66
|
+
<if test="!data.isBuiltin()">{# isn't defined in any file #}
|
67
|
+
<br /><i>Defined in: </i> {+new Link().toSrc(data.srcFile)+}.
|
68
|
+
</if>
|
69
|
+
</p>
|
70
|
+
|
71
|
+
<!-- ============================== constructor summary ==================== -->
|
72
|
+
<if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
|
73
|
+
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class {+data.alias+}.">
|
74
|
+
<caption>{+classType+}Summary</caption>
|
75
|
+
<thead>
|
76
|
+
<tr>
|
77
|
+
<th scope="col">Constructor Attributes</th>
|
78
|
+
<th scope="col">Constructor Name and Description</th>
|
79
|
+
</tr>
|
80
|
+
</thead>
|
81
|
+
<tbody>
|
82
|
+
<tr>
|
83
|
+
<td class="attributes">{!
|
84
|
+
if (data.isPrivate) output += "<private> ";
|
85
|
+
if (data.isInner) output += "<inner> ";
|
86
|
+
!} </td>
|
87
|
+
<td class="nameDescription" {!if (data.comment.getTag("hilited").length){output += 'style="color: red"'}!}>
|
88
|
+
<div class="fixedFont">
|
89
|
+
<b>{+ new Link().toSymbol(data.alias).inner('constructor')+}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
|
90
|
+
</div>
|
91
|
+
<div class="description">{+resolveLinks(summarize(data.desc))+}</div>
|
92
|
+
</td>
|
93
|
+
</tr>
|
94
|
+
</tbody>
|
95
|
+
</table>
|
96
|
+
</if>
|
97
|
+
|
98
|
+
<!-- ============================== properties summary ===================== -->
|
99
|
+
<if test="data.properties.length">
|
100
|
+
{! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
|
101
|
+
<if test="ownProperties.length">
|
102
|
+
<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class {+data.alias+}.">
|
103
|
+
<caption>Field Summary</caption>
|
104
|
+
<thead>
|
105
|
+
<tr>
|
106
|
+
<th scope="col">Field Attributes</th>
|
107
|
+
<th scope="col">Field Name and Description</th>
|
108
|
+
</tr>
|
109
|
+
</thead>
|
110
|
+
<tbody>
|
111
|
+
<for each="member" in="ownProperties">
|
112
|
+
<tr>
|
113
|
+
<td class="attributes">{!
|
114
|
+
if (member.isPrivate) output += "<private> ";
|
115
|
+
if (member.isInner) output += "<inner> ";
|
116
|
+
if (member.isStatic) output += "<static> ";
|
117
|
+
if (member.isConstant) output += "<constant> ";
|
118
|
+
!} </td>
|
119
|
+
<td class="nameDescription">
|
120
|
+
<div class="fixedFont">
|
121
|
+
<if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
|
122
|
+
</div>
|
123
|
+
<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
|
124
|
+
</td>
|
125
|
+
</tr>
|
126
|
+
</for>
|
127
|
+
</tbody>
|
128
|
+
</table>
|
129
|
+
</if>
|
130
|
+
|
131
|
+
<if test="data.inheritsFrom.length">
|
132
|
+
<dl class="inheritsList">
|
133
|
+
{!
|
134
|
+
var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias});
|
135
|
+
|
136
|
+
var contributers = [];
|
137
|
+
borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
|
138
|
+
for (var i = 0, l = contributers.length; i < l; i++) {
|
139
|
+
output +=
|
140
|
+
"<dt>Fields borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
|
141
|
+
+
|
142
|
+
"<dd>" +
|
143
|
+
borrowedMembers
|
144
|
+
.filter(
|
145
|
+
function($) { return $.memberOf == contributers[i] }
|
146
|
+
)
|
147
|
+
.sort(makeSortby("name"))
|
148
|
+
.map(
|
149
|
+
function($) { return new Link().toSymbol($.alias).withText($.name) }
|
150
|
+
)
|
151
|
+
.join(", ")
|
152
|
+
+
|
153
|
+
"</dd>";
|
154
|
+
}
|
155
|
+
!}
|
156
|
+
</dl>
|
157
|
+
</if>
|
158
|
+
</if>
|
159
|
+
|
160
|
+
<!-- ============================== methods summary ======================== -->
|
161
|
+
<if test="data.methods.length">
|
162
|
+
{! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
|
163
|
+
<if test="ownMethods.length">
|
164
|
+
<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class {+data.alias+}.">
|
165
|
+
<caption>Method Summary</caption>
|
166
|
+
<thead>
|
167
|
+
<tr>
|
168
|
+
<th scope="col">Method Attributes</th>
|
169
|
+
<th scope="col">Method Name and Description</th>
|
170
|
+
</tr>
|
171
|
+
</thead>
|
172
|
+
<tbody>
|
173
|
+
<for each="member" in="ownMethods">
|
174
|
+
<tr>
|
175
|
+
<td class="attributes">{!
|
176
|
+
if (member.isPrivate) output += "<private> ";
|
177
|
+
if (member.isInner) output += "<inner> ";
|
178
|
+
if (member.isStatic) output += "<static> ";
|
179
|
+
!} </td>
|
180
|
+
<td class="nameDescription">
|
181
|
+
<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>{+makeSignature(member.params)+}
|
182
|
+
</div>
|
183
|
+
<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
|
184
|
+
</td>
|
185
|
+
</tr>
|
186
|
+
</for>
|
187
|
+
</tbody>
|
188
|
+
</table>
|
189
|
+
</if>
|
190
|
+
|
191
|
+
<if test="data.inheritsFrom.length">
|
192
|
+
<dl class="inheritsList">
|
193
|
+
{!
|
194
|
+
var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias});
|
195
|
+
var contributers = [];
|
196
|
+
borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
|
197
|
+
for (var i = 0, l = contributers.length; i < l; i++) {
|
198
|
+
output +=
|
199
|
+
"<dt>Methods borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
|
200
|
+
+
|
201
|
+
"<dd>" +
|
202
|
+
borrowedMembers
|
203
|
+
.filter(
|
204
|
+
function($) { return $.memberOf == contributers[i] }
|
205
|
+
)
|
206
|
+
.sort(makeSortby("name"))
|
207
|
+
.map(
|
208
|
+
function($) { return new Link().toSymbol($.alias).withText($.name) }
|
209
|
+
)
|
210
|
+
.join(", ")
|
211
|
+
+
|
212
|
+
"</dd>";
|
213
|
+
}
|
214
|
+
|
215
|
+
!}
|
216
|
+
</dl>
|
217
|
+
</if>
|
218
|
+
</if>
|
219
|
+
<!-- ============================== events summary ======================== -->
|
220
|
+
<if test="data.events.length">
|
221
|
+
{! var ownEvents = data.events.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
|
222
|
+
<if test="ownEvents.length">
|
223
|
+
<table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class {+data.alias+}.">
|
224
|
+
<caption>Event Summary</caption>
|
225
|
+
<thead>
|
226
|
+
<tr>
|
227
|
+
<th scope="col">Event Attributes</th>
|
228
|
+
<th scope="col">Event Name and Description</th>
|
229
|
+
</tr>
|
230
|
+
</thead>
|
231
|
+
<tbody>
|
232
|
+
<for each="member" in="ownEvents">
|
233
|
+
<tr>
|
234
|
+
<td class="attributes">{!
|
235
|
+
if (member.isPrivate) output += "<private> ";
|
236
|
+
if (member.isInner) output += "<inner> ";
|
237
|
+
if (member.isStatic) output += "<static> ";
|
238
|
+
!} </td>
|
239
|
+
<td class="nameDescription">
|
240
|
+
<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>{+makeSignature(member.params)+}
|
241
|
+
</div>
|
242
|
+
<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
|
243
|
+
</td>
|
244
|
+
</tr>
|
245
|
+
</for>
|
246
|
+
</tbody>
|
247
|
+
</table>
|
248
|
+
</if>
|
249
|
+
|
250
|
+
<if test="data.inheritsFrom.length">
|
251
|
+
<dl class="inheritsList">
|
252
|
+
{!
|
253
|
+
var borrowedMembers = data.events.filter(function($) {return $.memberOf != data.alias});
|
254
|
+
var contributers = [];
|
255
|
+
borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
|
256
|
+
for (var i = 0, l = contributers.length; i < l; i++) {
|
257
|
+
output +=
|
258
|
+
"<dt>Events borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
|
259
|
+
+
|
260
|
+
"<dd>" +
|
261
|
+
borrowedMembers
|
262
|
+
.filter(
|
263
|
+
function($) { return $.memberOf == contributers[i] }
|
264
|
+
)
|
265
|
+
.sort(makeSortby("name"))
|
266
|
+
.map(
|
267
|
+
function($) { return new Link().toSymbol($.alias).withText($.name) }
|
268
|
+
)
|
269
|
+
.join(", ")
|
270
|
+
+
|
271
|
+
"</dd>";
|
272
|
+
}
|
273
|
+
|
274
|
+
!}
|
275
|
+
</dl>
|
276
|
+
</if>
|
277
|
+
</if>
|
278
|
+
|
279
|
+
<!-- ============================== constructor details ==================== -->
|
280
|
+
<if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
|
281
|
+
<div class="details"><a name="constructor"> </a>
|
282
|
+
<div class="sectionTitle">
|
283
|
+
{+classType+}Detail
|
284
|
+
</div>
|
285
|
+
|
286
|
+
<div class="fixedFont">{!
|
287
|
+
if (data.isPrivate) output += "<private> ";
|
288
|
+
if (data.isInner) output += "<inner> ";
|
289
|
+
!}
|
290
|
+
<b>{+ data.alias +}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
|
291
|
+
</div>
|
292
|
+
|
293
|
+
<div class="description">
|
294
|
+
{+resolveLinks(data.desc)+}
|
295
|
+
<if test="data.author"><br /><i>Author: </i>{+data.author+}.</if>
|
296
|
+
</div>
|
297
|
+
|
298
|
+
<if test="data.example.length">
|
299
|
+
<for each="example" in="data.example">
|
300
|
+
<pre class="code">{+example+}</pre>
|
301
|
+
</for>
|
302
|
+
</if>
|
303
|
+
|
304
|
+
|
305
|
+
<if test="data.params.length">
|
306
|
+
<dl class="detailList">
|
307
|
+
<dt class="heading">Parameters:</dt>
|
308
|
+
<for each="item" in="data.params">
|
309
|
+
<dt>
|
310
|
+
{+((item.type)?""+("<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type)+"}</span> ")) : "")+} <b>{+item.name+}</b>
|
311
|
+
<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
|
312
|
+
</dt>
|
313
|
+
<dd>{+resolveLinks(item.desc)+}</dd>
|
314
|
+
</for>
|
315
|
+
</dl>
|
316
|
+
</if>
|
317
|
+
<if test="data.deprecated">
|
318
|
+
<dl class="detailList">
|
319
|
+
<dt class="heading">Deprecated:</dt>
|
320
|
+
<dt>
|
321
|
+
{+resolveLinks(data.deprecated)+}
|
322
|
+
</dt>
|
323
|
+
</dl>
|
324
|
+
</if>
|
325
|
+
<if test="data.since">
|
326
|
+
<dl class="detailList">
|
327
|
+
<dt class="heading">Since:</dt>
|
328
|
+
<dd>{+ data.since +}</dd>
|
329
|
+
</dl>
|
330
|
+
</if>
|
331
|
+
<if test="data.exceptions.length">
|
332
|
+
<dl class="detailList">
|
333
|
+
<dt class="heading">Throws:</dt>
|
334
|
+
<for each="item" in="data.exceptions">
|
335
|
+
<dt>
|
336
|
+
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
|
337
|
+
</dt>
|
338
|
+
<dd>{+resolveLinks(item.desc)+}</dd>
|
339
|
+
</for>
|
340
|
+
</dl>
|
341
|
+
</if>
|
342
|
+
<if test="data.returns.length">
|
343
|
+
<dl class="detailList">
|
344
|
+
<dt class="heading">Returns:</dt>
|
345
|
+
<for each="item" in="data.returns">
|
346
|
+
<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
|
347
|
+
</for>
|
348
|
+
</dl>
|
349
|
+
</if>
|
350
|
+
<if test="data.requires.length">
|
351
|
+
<dl class="detailList">
|
352
|
+
<dt class="heading">Requires:</dt>
|
353
|
+
<for each="item" in="data.requires">
|
354
|
+
<dd>{+ resolveLinks(item) +}</dd>
|
355
|
+
</for>
|
356
|
+
</dl>
|
357
|
+
</if>
|
358
|
+
<if test="data.see.length">
|
359
|
+
<dl class="detailList">
|
360
|
+
<dt class="heading">See:</dt>
|
361
|
+
<for each="item" in="data.see">
|
362
|
+
<dd>{+ new Link().toSymbol(item) +}</dd>
|
363
|
+
</for>
|
364
|
+
</dl>
|
365
|
+
</if>
|
366
|
+
|
367
|
+
</div>
|
368
|
+
</if>
|
369
|
+
|
370
|
+
<!-- ============================== field details ========================== -->
|
371
|
+
<if test="defined(ownProperties) && ownProperties.length">
|
372
|
+
<div class="sectionTitle">
|
373
|
+
Field Detail
|
374
|
+
</div>
|
375
|
+
<for each="member" in="ownProperties">
|
376
|
+
<a name="{+Link.symbolNameToLinkName(member)+}"> </a>
|
377
|
+
<div class="fixedFont">{!
|
378
|
+
if (member.isPrivate) output += "<private> ";
|
379
|
+
if (member.isInner) output += "<inner> ";
|
380
|
+
if (member.isStatic) output += "<static> ";
|
381
|
+
if (member.isConstant) output += "<constant> ";
|
382
|
+
!}
|
383
|
+
|
384
|
+
<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
|
385
|
+
<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>
|
386
|
+
|
387
|
+
</div>
|
388
|
+
<div class="description">
|
389
|
+
{+resolveLinks(member.desc)+}
|
390
|
+
<if test="member.srcFile != data.srcFile">
|
391
|
+
<br />
|
392
|
+
<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
|
393
|
+
</if>
|
394
|
+
<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
|
395
|
+
</div>
|
396
|
+
|
397
|
+
<if test="member.example.length">
|
398
|
+
<for each="example" in="member.example">
|
399
|
+
<pre class="code">{+example+}</pre>
|
400
|
+
</for>
|
401
|
+
</if>
|
402
|
+
|
403
|
+
<if test="member.deprecated">
|
404
|
+
<dl class="detailList">
|
405
|
+
<dt class="heading">Deprecated:</dt>
|
406
|
+
<dt>
|
407
|
+
{+ member.deprecated +}
|
408
|
+
</dt>
|
409
|
+
</dl>
|
410
|
+
</if>
|
411
|
+
<if test="member.since">
|
412
|
+
<dl class="detailList">
|
413
|
+
<dt class="heading">Since:</dt>
|
414
|
+
<dd>{+ member.since +}</dd>
|
415
|
+
</dl>
|
416
|
+
</if>
|
417
|
+
<if test="member.see.length">
|
418
|
+
<dl class="detailList">
|
419
|
+
<dt class="heading">See:</dt>
|
420
|
+
<for each="item" in="member.see">
|
421
|
+
<dd>{+ new Link().toSymbol(item) +}</dd>
|
422
|
+
</for>
|
423
|
+
</dl>
|
424
|
+
</if>
|
425
|
+
<if test="member.defaultValue">
|
426
|
+
<dl class="detailList">
|
427
|
+
<dt class="heading">Default Value:</dt>
|
428
|
+
<dd>
|
429
|
+
{+resolveLinks(member.defaultValue)+}
|
430
|
+
</dd>
|
431
|
+
</dl>
|
432
|
+
</if>
|
433
|
+
|
434
|
+
<if test="!$member_last"><hr /></if>
|
435
|
+
</for>
|
436
|
+
</if>
|
437
|
+
|
438
|
+
<!-- ============================== method details ========================= -->
|
439
|
+
<if test="defined(ownMethods) && ownMethods.length">
|
440
|
+
<div class="sectionTitle">
|
441
|
+
Method Detail
|
442
|
+
</div>
|
443
|
+
<for each="member" in="ownMethods">
|
444
|
+
<a name="{+Link.symbolNameToLinkName(member)+}"> </a>
|
445
|
+
<div class="fixedFont">{!
|
446
|
+
if (member.isPrivate) output += "<private> ";
|
447
|
+
if (member.isInner) output += "<inner> ";
|
448
|
+
if (member.isStatic) output += "<static> ";
|
449
|
+
!}
|
450
|
+
|
451
|
+
<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
|
452
|
+
<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>{+makeSignature(member.params)+}
|
453
|
+
|
454
|
+
</div>
|
455
|
+
<div class="description">
|
456
|
+
{+resolveLinks(member.desc)+}
|
457
|
+
<if test="member.srcFile != data.srcFile">
|
458
|
+
<br />
|
459
|
+
<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
|
460
|
+
</if>
|
461
|
+
<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
|
462
|
+
</div>
|
463
|
+
|
464
|
+
<if test="member.example.length">
|
465
|
+
<for each="example" in="member.example">
|
466
|
+
<pre class="code">{+example+}</pre>
|
467
|
+
</for>
|
468
|
+
</if>
|
469
|
+
|
470
|
+
<if test="member.params.length">
|
471
|
+
<dl class="detailList">
|
472
|
+
<dt class="heading">Parameters:</dt>
|
473
|
+
<for each="item" in="member.params">
|
474
|
+
<dt>
|
475
|
+
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
|
476
|
+
<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
|
477
|
+
</dt>
|
478
|
+
<dd>{+resolveLinks(item.desc)+}</dd>
|
479
|
+
</for>
|
480
|
+
</dl>
|
481
|
+
</if>
|
482
|
+
<if test="member.deprecated">
|
483
|
+
<dl class="detailList">
|
484
|
+
<dt class="heading">Deprecated:</dt>
|
485
|
+
<dt>
|
486
|
+
{+member.deprecated+}
|
487
|
+
</dt>
|
488
|
+
</dl>
|
489
|
+
</if>
|
490
|
+
<if test="member.since">
|
491
|
+
<dl class="detailList">
|
492
|
+
<dt class="heading">Since:</dt>
|
493
|
+
<dd>{+ member.since +}</dd>
|
494
|
+
</dl>
|
495
|
+
</dl>
|
496
|
+
</if>
|
497
|
+
<if test="member.exceptions.length">
|
498
|
+
<dl class="detailList">
|
499
|
+
<dt class="heading">Throws:</dt>
|
500
|
+
<for each="item" in="member.exceptions">
|
501
|
+
<dt>
|
502
|
+
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
|
503
|
+
</dt>
|
504
|
+
<dd>{+resolveLinks(item.desc)+}</dd>
|
505
|
+
</for>
|
506
|
+
</dl>
|
507
|
+
</if>
|
508
|
+
<if test="member.returns.length">
|
509
|
+
<dl class="detailList">
|
510
|
+
<dt class="heading">Returns:</dt>
|
511
|
+
<for each="item" in="member.returns">
|
512
|
+
<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
|
513
|
+
</for>
|
514
|
+
</dl>
|
515
|
+
</if>
|
516
|
+
<if test="member.requires.length">
|
517
|
+
<dl class="detailList">
|
518
|
+
<dt class="heading">Requires:</dt>
|
519
|
+
<for each="item" in="member.requires">
|
520
|
+
<dd>{+ resolveLinks(item) +}</dd>
|
521
|
+
</for>
|
522
|
+
</dl>
|
523
|
+
</if>
|
524
|
+
<if test="member.see.length">
|
525
|
+
<dl class="detailList">
|
526
|
+
<dt class="heading">See:</dt>
|
527
|
+
<for each="item" in="member.see">
|
528
|
+
<dd>{+ new Link().toSymbol(item) +}</dd>
|
529
|
+
</for>
|
530
|
+
</dl>
|
531
|
+
</if>
|
532
|
+
|
533
|
+
<if test="!$member_last"><hr /></if>
|
534
|
+
</for>
|
535
|
+
</if>
|
536
|
+
|
537
|
+
<!-- ============================== event details ========================= -->
|
538
|
+
<if test="defined(ownEvents) && ownEvents.length">
|
539
|
+
<div class="sectionTitle">
|
540
|
+
Event Detail
|
541
|
+
</div>
|
542
|
+
<for each="member" in="ownEvents">
|
543
|
+
<a name="event:{+Link.symbolNameToLinkName(member)+}"> </a>
|
544
|
+
<div class="fixedFont">{!
|
545
|
+
if (member.isPrivate) output += "<private> ";
|
546
|
+
if (member.isInner) output += "<inner> ";
|
547
|
+
if (member.isStatic) output += "<static> ";
|
548
|
+
!}
|
549
|
+
|
550
|
+
<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
|
551
|
+
<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>{+makeSignature(member.params)+}
|
552
|
+
|
553
|
+
</div>
|
554
|
+
<div class="description">
|
555
|
+
{+resolveLinks(member.desc)+}
|
556
|
+
<if test="member.srcFile != data.srcFile">
|
557
|
+
<br />
|
558
|
+
<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
|
559
|
+
</if>
|
560
|
+
<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
|
561
|
+
</div>
|
562
|
+
|
563
|
+
<if test="member.example.length">
|
564
|
+
<for each="example" in="member.example">
|
565
|
+
<pre class="code">{+example+}</pre>
|
566
|
+
</for>
|
567
|
+
</if>
|
568
|
+
|
569
|
+
<if test="member.params.length">
|
570
|
+
<dl class="detailList">
|
571
|
+
<dt class="heading">Parameters:</dt>
|
572
|
+
<for each="item" in="member.params">
|
573
|
+
<dt>
|
574
|
+
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
|
575
|
+
<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
|
576
|
+
</dt>
|
577
|
+
<dd>{+resolveLinks(item.desc)+}</dd>
|
578
|
+
</for>
|
579
|
+
</dl>
|
580
|
+
</if>
|
581
|
+
<if test="member.deprecated">
|
582
|
+
<dl class="detailList">
|
583
|
+
<dt class="heading">Deprecated:</dt>
|
584
|
+
<dt>
|
585
|
+
{+member.deprecated+}
|
586
|
+
</dt>
|
587
|
+
</dl>
|
588
|
+
</if>
|
589
|
+
<if test="member.since">
|
590
|
+
<dl class="detailList">
|
591
|
+
<dt class="heading">Since:</dt>
|
592
|
+
<dd>{+ member.since +}</dd>
|
593
|
+
</dl>
|
594
|
+
</dl>
|
595
|
+
</if>
|
596
|
+
<if test="member.exceptions.length">
|
597
|
+
<dl class="detailList">
|
598
|
+
<dt class="heading">Throws:</dt>
|
599
|
+
<for each="item" in="member.exceptions">
|
600
|
+
<dt>
|
601
|
+
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
|
602
|
+
</dt>
|
603
|
+
<dd>{+resolveLinks(item.desc)+}</dd>
|
604
|
+
</for>
|
605
|
+
</dl>
|
606
|
+
</if>
|
607
|
+
<if test="member.returns.length">
|
608
|
+
<dl class="detailList">
|
609
|
+
<dt class="heading">Returns:</dt>
|
610
|
+
<for each="item" in="member.returns">
|
611
|
+
<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
|
612
|
+
</for>
|
613
|
+
</dl>
|
614
|
+
</if>
|
615
|
+
<if test="member.requires.length">
|
616
|
+
<dl class="detailList">
|
617
|
+
<dt class="heading">Requires:</dt>
|
618
|
+
<for each="item" in="member.requires">
|
619
|
+
<dd>{+ resolveLinks(item) +}</dd>
|
620
|
+
</for>
|
621
|
+
</dl>
|
622
|
+
</if>
|
623
|
+
<if test="member.see.length">
|
624
|
+
<dl class="detailList">
|
625
|
+
<dt class="heading">See:</dt>
|
626
|
+
<for each="item" in="member.see">
|
627
|
+
<dd>{+ new Link().toSymbol(item) +}</dd>
|
628
|
+
</for>
|
629
|
+
</dl>
|
630
|
+
</if>
|
631
|
+
|
632
|
+
<if test="!$member_last"><hr /></if>
|
633
|
+
</for>
|
634
|
+
</if>
|
635
|
+
|
636
|
+
<hr />
|
637
|
+
</div>
|
638
|
+
|
639
|
+
|
640
|
+
<!-- ============================== footer ================================= -->
|
641
|
+
<div class="fineprint" style="clear:both">
|
642
|
+
<if test="JSDOC.opt.D.copyright">©{+JSDOC.opt.D.copyright+}<br /></if>
|
643
|
+
Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
|
644
|
+
</div>
|
645
|
+
</body>
|
646
|
+
</html>
|