sproutcore 0.9.13 → 0.9.14
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/History.txt +19 -0
- data/Manifest.txt +103 -26
- data/app_generators/sproutcore/templates/README +1 -1
- data/bin/sc-build +1 -1
- data/bin/sc-gen +0 -0
- data/bin/sc-ide +278 -0
- data/bin/sc-init +38 -0
- data/bin/sc-install +96 -0
- data/bin/sc-remove +94 -0
- data/bin/sc-server +4 -0
- data/bin/sc-update +94 -0
- data/bin/sproutcore +3 -14
- data/clients/sc_docs/controllers/docs.js +1 -1
- data/clients/sc_docs/models/doc.js +6 -0
- data/clients/sc_docs/views/doc_frame.js +1 -1
- data/clients/sc_test_runner/english.lproj/icons/small/next.png +0 -0
- data/clients/sc_test_runner/english.lproj/icons/small/reset.png +0 -0
- data/frameworks/sproutcore/HISTORY +34 -2
- data/frameworks/sproutcore/controllers/array.js +1 -1
- data/frameworks/sproutcore/controllers/controller.js +1 -1
- data/frameworks/sproutcore/controllers/object.js +9 -6
- data/frameworks/sproutcore/core.js +19 -4
- data/frameworks/sproutcore/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/english.lproj/core.css +1 -0
- data/frameworks/sproutcore/english.lproj/menu.css +1 -0
- data/frameworks/sproutcore/foundation/application.js +3 -3
- data/frameworks/sproutcore/foundation/benchmark.js +1 -1
- data/frameworks/sproutcore/foundation/node_descriptor.js +13 -1
- data/frameworks/sproutcore/foundation/page.js +3 -2
- data/frameworks/sproutcore/foundation/path_module.js +33 -16
- data/frameworks/sproutcore/foundation/run_loop.js +1 -1
- data/frameworks/sproutcore/foundation/server.js +68 -18
- data/frameworks/sproutcore/foundation/string.js +1 -1
- data/frameworks/sproutcore/globals/window.js +62 -15
- data/frameworks/sproutcore/lib/core_views.rb +1 -0
- data/frameworks/sproutcore/lib/index.rhtml +4 -3
- data/frameworks/sproutcore/lib/menu_views.rb +2 -2
- data/frameworks/sproutcore/models/collection.js +122 -107
- data/frameworks/sproutcore/models/record.js +2 -2
- data/frameworks/sproutcore/panes/manager.js +1 -1
- data/frameworks/sproutcore/panes/overlay.js +3 -3
- data/frameworks/sproutcore/tests/controllers/object.rhtml +26 -0
- data/frameworks/sproutcore/tests/views/collection/incremental_rendering.rhtml +2 -2
- data/frameworks/sproutcore/views/button/disclosure.js +1 -1
- data/frameworks/sproutcore/views/collection/collection.js +19 -15
- data/frameworks/sproutcore/views/collection/source_list.js +1 -1
- data/frameworks/sproutcore/views/collection/table.js +2 -2
- data/frameworks/sproutcore/views/error_explanation.js +1 -1
- data/frameworks/sproutcore/views/field/checkbox_field.js +1 -1
- data/frameworks/sproutcore/views/field/field.js +1 -1
- data/frameworks/sproutcore/views/field/radio_field.js +1 -1
- data/frameworks/sproutcore/views/field/select_field.js +1 -1
- data/frameworks/sproutcore/views/form.js +1 -1
- data/frameworks/sproutcore/views/image.js +1 -1
- data/frameworks/sproutcore/views/menu_item.js +1 -1
- data/frameworks/sproutcore/views/popup_button.js +1 -1
- data/frameworks/sproutcore/views/popup_menu.js +1 -1
- data/frameworks/sproutcore/views/progress.js +4 -2
- data/frameworks/sproutcore/views/radio_group.js +1 -1
- data/frameworks/sproutcore/views/scroll.js +1 -1
- data/frameworks/sproutcore/views/source_list_group.js +1 -1
- data/frameworks/sproutcore/views/split.js +1 -1
- data/frameworks/sproutcore/views/tab.js +3 -1
- data/frameworks/sproutcore/views/view.js +19 -3
- data/jsdoc/README.txt +89 -57
- data/jsdoc/app/frame/Chain.js +102 -0
- data/jsdoc/app/frame/Dumper.js +144 -0
- data/jsdoc/app/frame/Hash.js +47 -0
- data/jsdoc/app/frame/Link.js +142 -0
- data/jsdoc/app/frame/Namespace.js +10 -0
- data/jsdoc/app/frame/Opt.js +134 -0
- data/jsdoc/app/frame/Reflection.js +26 -0
- data/jsdoc/app/frame/String.js +93 -0
- data/jsdoc/app/frame/Testrun.js +129 -0
- data/jsdoc/app/frame.js +33 -0
- data/jsdoc/app/handlers/FOODOC.js +26 -0
- data/jsdoc/app/handlers/XMLDOC/DomReader.js +159 -0
- data/jsdoc/app/handlers/XMLDOC/XMLDoc.js +16 -0
- data/jsdoc/app/handlers/XMLDOC/XMLParse.js +292 -0
- data/jsdoc/app/handlers/XMLDOC.js +26 -0
- data/jsdoc/app/lib/JSDOC/DocComment.js +200 -0
- data/jsdoc/app/lib/JSDOC/DocTag.js +294 -0
- data/jsdoc/app/lib/JSDOC/JsDoc.js +180 -0
- data/jsdoc/app/lib/JSDOC/JsPlate.js +100 -0
- data/jsdoc/app/lib/JSDOC/Lang.js +144 -0
- data/jsdoc/app/lib/JSDOC/Parser.js +109 -0
- data/jsdoc/app/lib/JSDOC/PluginManager.js +33 -0
- data/jsdoc/app/lib/JSDOC/Symbol.js +600 -0
- data/jsdoc/app/lib/JSDOC/SymbolSet.js +220 -0
- data/jsdoc/app/lib/JSDOC/TextStream.js +41 -0
- data/jsdoc/app/lib/JSDOC/Token.js +18 -0
- data/jsdoc/app/lib/JSDOC/TokenReader.js +323 -0
- data/jsdoc/app/lib/JSDOC/TokenStream.js +133 -0
- data/jsdoc/app/lib/JSDOC/Util.js +32 -0
- data/jsdoc/app/lib/JSDOC/Walker.js +416 -0
- data/jsdoc/app/lib/JSDOC.js +97 -0
- data/jsdoc/app/main.js +74 -0
- data/jsdoc/app/plugins/commentSrcJson.js +19 -0
- data/jsdoc/app/plugins/frameworkPrototype.js +16 -0
- data/jsdoc/app/plugins/functionCall.js +10 -0
- data/jsdoc/app/plugins/publishSrcHilite.js +62 -0
- data/jsdoc/app/plugins/sproutcoreTags.js +26 -0
- data/jsdoc/app/plugins/symbolLink.js +9 -0
- data/jsdoc/app/plugins/tagParamConfig.js +31 -0
- data/jsdoc/app/plugins/tagSynonyms.js +43 -0
- data/jsdoc/app/run.js +339 -137
- data/jsdoc/changes.txt +47 -0
- data/jsdoc/conf/sample.conf +31 -0
- data/jsdoc/java/build.xml +36 -0
- data/jsdoc/java/build_1.4.xml +36 -0
- data/jsdoc/java/classes/js.jar +0 -0
- data/jsdoc/java/src/JsDebugRun.java +21 -0
- data/jsdoc/java/src/JsRun.java +21 -0
- data/jsdoc/jsdebug.jar +0 -0
- data/jsdoc/jsrun.jar +0 -0
- data/jsdoc/t/TestDoc.js +144 -0
- data/jsdoc/t/runner.js +13 -0
- data/jsdoc/templates/sproutcore/allclasses.tmpl +17 -0
- data/jsdoc/templates/sproutcore/allfiles.tmpl +56 -0
- data/jsdoc/templates/sproutcore/class.tmpl +408 -326
- data/jsdoc/templates/sproutcore/index.tmpl +30 -31
- data/jsdoc/templates/sproutcore/publish.js +173 -81
- data/jsdoc/templates/sproutcore/static/default.css +191 -0
- data/jsdoc/templates/sproutcore/static/header.html +2 -0
- data/jsdoc/templates/sproutcore/static/index.html +19 -0
- data/jsdoc/templates/sproutcore/symbol.tmpl +35 -0
- data/jsdoc/test/addon.js +24 -0
- data/jsdoc/test/anon_inner.js +14 -0
- data/jsdoc/test/augments.js +31 -0
- data/jsdoc/test/augments2.js +26 -0
- data/jsdoc/test/borrows.js +41 -0
- data/jsdoc/test/borrows2.js +23 -0
- data/jsdoc/test/config.js +22 -0
- data/jsdoc/test/constructs.js +18 -0
- data/jsdoc/test/encoding.js +10 -0
- data/jsdoc/test/encoding_other.js +12 -0
- data/jsdoc/test/functions_anon.js +39 -0
- data/jsdoc/test/functions_nested.js +33 -0
- data/jsdoc/test/global.js +13 -0
- data/jsdoc/test/globals.js +25 -0
- data/jsdoc/test/ignore.js +10 -0
- data/jsdoc/test/inner.js +16 -0
- data/jsdoc/test/jsdoc_test.js +477 -0
- data/jsdoc/test/lend.js +33 -0
- data/jsdoc/test/memberof.js +20 -0
- data/jsdoc/test/memberof_constructor.js +15 -0
- data/jsdoc/test/name.js +19 -0
- data/jsdoc/test/namespace_nested.js +23 -0
- data/jsdoc/test/nocode.js +13 -0
- data/jsdoc/test/oblit_anon.js +20 -0
- data/jsdoc/test/overview.js +20 -0
- data/jsdoc/test/param_inline.js +37 -0
- data/jsdoc/test/params_optional.js +8 -0
- data/jsdoc/test/prototype.js +17 -0
- data/jsdoc/test/prototype_nested.js +9 -0
- data/jsdoc/test/prototype_oblit.js +13 -0
- data/jsdoc/test/prototype_oblit_constructor.js +24 -0
- data/jsdoc/test/public.js +10 -0
- data/jsdoc/test/shared.js +42 -0
- data/jsdoc/test/shared2.js +2 -0
- data/jsdoc/test/shortcuts.js +22 -0
- data/jsdoc/test/static_this.js +13 -0
- data/jsdoc/test/synonyms.js +23 -0
- data/jsdoc/test/tosource.js +23 -0
- data/jsdoc/test/variable_redefine.js +14 -0
- data/jsdoc/test.js +304 -0
- data/lib/sproutcore/build_tools/resource_builder.rb +6 -1
- data/lib/sproutcore/bundle_installer.rb +268 -0
- data/lib/sproutcore/jsdoc.rb +7 -6
- data/lib/sproutcore/library.rb +38 -0
- data/lib/sproutcore/merb/bundle_controller.rb +8 -4
- data/lib/sproutcore/version.rb +1 -1
- data/lib/sproutcore.rb +1 -1
- data/script/destroy +0 -0
- data/script/generate +0 -0
- data/script/txt2html +0 -0
- metadata +117 -29
- data/clients/view_builder/core.js +0 -19
- data/clients/view_builder/english.lproj/body.css +0 -149
- data/clients/view_builder/english.lproj/body.rhtml +0 -18
- data/clients/view_builder/english.lproj/strings.js +0 -14
- data/clients/view_builder/main.js +0 -37
- data/jsdoc/app/DocFile.js +0 -137
- data/jsdoc/app/DocTag.js +0 -110
- data/jsdoc/app/Doclet.js +0 -63
- data/jsdoc/app/Dumper.js +0 -143
- data/jsdoc/app/JsDoc.js +0 -103
- data/jsdoc/app/JsHilite.js +0 -45
- data/jsdoc/app/JsIO.js +0 -163
- data/jsdoc/app/JsParse.js +0 -385
- data/jsdoc/app/JsPlate.js +0 -130
- data/jsdoc/app/JsTestrun.js +0 -129
- data/jsdoc/app/JsToke.js +0 -564
- data/jsdoc/app/Symbol.js +0 -298
- data/jsdoc/app/Transformer.js +0 -14
- data/jsdoc/app/Util.js +0 -97
- data/jsdoc/app/js.jar +0 -0
- data/jsdoc/plugins/min.js +0 -316
- data/jsdoc/plugins/strip.js +0 -20
- data/jsdoc/templates/sproutcore/default.css +0 -191
- data/jsdoc/templates/sproutcore/index.html +0 -13
- data/jsdoc/templates/sproutcore/prototype.js +0 -4186
- data/jsdoc/templates/sproutcore/splash.html +0 -7
data/jsdoc/app/run.js
CHANGED
|
@@ -1,144 +1,346 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileOverview
|
|
3
|
+
* A bootstrap script that creates some basic required objects
|
|
4
|
+
* for loading other scripts.
|
|
5
|
+
* @author Michael Mathews, micmath@gmail.com
|
|
6
|
+
* @version $Id: run.js 554 2008-04-01 00:12:25Z micmath $
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @namespace Keep track of any messages from the running script.
|
|
11
|
+
*/
|
|
12
|
+
LOG = {
|
|
13
|
+
warn: function(msg, e) {
|
|
14
|
+
if (e) msg = e.fileName+", line "+e.lineNumber+": "+msg;
|
|
15
|
+
|
|
16
|
+
msg = ">> WARNING: "+msg;
|
|
17
|
+
LOG.warnings.push(msg);
|
|
18
|
+
if (LOG.out) LOG.out.write(msg+"\n");
|
|
19
|
+
else print(msg);
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
inform: function(msg) {
|
|
23
|
+
msg = " > "+msg;
|
|
24
|
+
if (LOG.out) LOG.out.write(msg+"\n");
|
|
25
|
+
else if (typeof LOG.verbose != "undefined" && LOG.verbose) print(msg);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
LOG.warnings = [];
|
|
29
|
+
LOG.verbose = false
|
|
30
|
+
LOG.out = undefined;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @class Manipulate a filepath.
|
|
34
|
+
*/
|
|
35
|
+
function FilePath(absPath, separator) {
|
|
36
|
+
this.slash = separator || "/";
|
|
37
|
+
this.root = this.slash;
|
|
38
|
+
this.path = [];
|
|
39
|
+
this.file = "";
|
|
40
|
+
|
|
41
|
+
var parts = absPath.split(/[\\\/]/);
|
|
42
|
+
if (parts) {
|
|
43
|
+
if (parts.length) this.root = parts.shift() + this.slash;
|
|
44
|
+
if (parts.length) this.file = parts.pop()
|
|
45
|
+
if (parts.length) this.path = parts;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
this.path = this.resolvePath();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Collapse any dot-dot or dot items in a filepath. */
|
|
52
|
+
FilePath.prototype.resolvePath = function() {
|
|
53
|
+
var resolvedPath = [];
|
|
54
|
+
for (var i = 0; i < this.path.length; i++) {
|
|
55
|
+
if (this.path[i] == "..") resolvedPath.pop();
|
|
56
|
+
else if (this.path[i] != ".") resolvedPath.push(this.path[i]);
|
|
57
|
+
}
|
|
58
|
+
return resolvedPath;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Trim off the filename. */
|
|
62
|
+
FilePath.prototype.toDir = function() {
|
|
63
|
+
if (this.file) this.file = "";
|
|
64
|
+
return this;
|
|
4
65
|
}
|
|
5
|
-
|
|
6
|
-
|
|
66
|
+
|
|
67
|
+
/** Go up a directory. */
|
|
68
|
+
FilePath.prototype.upDir = function() {
|
|
69
|
+
this.toDir();
|
|
70
|
+
if (this.path.length) this.path.pop();
|
|
71
|
+
return this;
|
|
7
72
|
}
|
|
8
73
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var libErrors = [];
|
|
15
|
-
for(var i = 0; i < libDirs.length; i++) {
|
|
16
|
-
try {
|
|
17
|
-
var file = new Packages.java.io.File(libDirs[i]+lib);
|
|
18
|
-
if(!file.exists()) {
|
|
19
|
-
libErrors.push('Could not find: ['+(libDirs[i]+lib)+']');
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
if (VERBOSE) print("Loading: ["+(libDirs[i]+lib)+"] ...");
|
|
23
|
-
load(libDirs[i]+lib);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
catch (e) {
|
|
28
|
-
libErrors.push('Error loading: ['+(libDirs[i]+lib)+']');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
for(var i=0; i < libErrors.length; i++) {
|
|
32
|
-
print("ERROR: ["+libErrors[i]+"]");
|
|
33
|
-
}
|
|
34
|
-
quit();
|
|
74
|
+
FilePath.prototype.toString = function() {
|
|
75
|
+
return this.root
|
|
76
|
+
+ this.path.join(this.slash)
|
|
77
|
+
+ ((this.path.length > 0)? this.slash : "")
|
|
78
|
+
+ this.file;
|
|
35
79
|
}
|
|
36
80
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
require("app/JsIO.js");
|
|
44
|
-
require("app/Symbol.js");
|
|
45
|
-
require("app/JsToke.js");
|
|
46
|
-
require("app/JsParse.js");
|
|
47
|
-
require("app/DocTag.js");
|
|
48
|
-
require("app/Doclet.js");
|
|
49
|
-
require("app/DocFile.js");
|
|
50
|
-
require("app/JsPlate.js");
|
|
51
|
-
|
|
52
|
-
/** The main function. Called automatically. */
|
|
53
|
-
function Main() {
|
|
54
|
-
if (JsDoc.opt.o) LOG.out = IO.open(JsDoc.opt.o, true);
|
|
55
|
-
if (!JsDoc.opt.e) JsDoc.opt.e = "utf-8";
|
|
56
|
-
IO.setEncoding(JsDoc.opt.e);
|
|
57
|
-
|
|
58
|
-
if (JsDoc.opt.c) {
|
|
59
|
-
eval('conf = '+IO.readFile(JsDoc.opt.c));
|
|
60
|
-
|
|
61
|
-
for (var c in conf) {
|
|
62
|
-
if (c !== "D") {
|
|
63
|
-
JsDoc.opt[c] = conf[c];
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (JsDoc.opt.h || JsDoc.opt._.length == 0 || JsDoc.opt.t === true) JsDoc.usage();
|
|
68
|
-
|
|
69
|
-
var ext = ["js"];
|
|
70
|
-
if (JsDoc.opt.x) ext = JsDoc.opt.x.split(",").map(function(x) {return x.toLowerCase()});
|
|
71
|
-
|
|
72
|
-
if (typeof(JsDoc.opt.r) == "boolean") JsDoc.opt.r = 10;
|
|
73
|
-
else if (!isNaN(parseInt(JsDoc.opt.r))) JsDoc.opt.r = parseInt(JsDoc.opt.r);
|
|
74
|
-
else JsDoc.opt.r = 1;
|
|
75
|
-
|
|
76
|
-
if (JsDoc.opt.d === true || JsDoc.opt.t === true) { // like when a user enters: -d mydir
|
|
77
|
-
LOG.warn("Option malformed.");
|
|
78
|
-
JsDoc.usage();
|
|
79
|
-
}
|
|
80
|
-
else if (!JsDoc.opt.d) {
|
|
81
|
-
JsDoc.opt.d = "js_docs_out";
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
JsDoc.opt.d += (JsDoc.opt.d.indexOf(IO.FileSeparator) == JsDoc.opt.d.length-1)?
|
|
85
|
-
"" : IO.FileSeparator;
|
|
86
|
-
LOG.inform("Creating output directory: "+JsDoc.opt.d);
|
|
87
|
-
IO.makeDir(JsDoc.opt.d);
|
|
88
|
-
|
|
89
|
-
LOG.inform("Scanning for source files: recursion set to "+JsDoc.opt.r+" subdir"+((JsDoc.opt.r==1)?"":"s")+".");
|
|
90
|
-
function isJs(element, index, array) {
|
|
91
|
-
var thisExt = element.split(".").pop().toLowerCase();
|
|
92
|
-
return (ext.indexOf(thisExt) > -1); // we're only interested in files with certain extensions
|
|
93
|
-
}
|
|
94
|
-
var srcFiles = [];
|
|
95
|
-
for (var d = 0; d < JsDoc.opt._.length; d++) {
|
|
96
|
-
srcFiles = srcFiles.concat(
|
|
97
|
-
IO.ls(JsDoc.opt._[d], JsDoc.opt.r).filter(isJs)
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
LOG.inform(srcFiles.length+" source file"+((srcFiles ==1)?"":"s")+" found:\n\t"+srcFiles.join("\n\t"));
|
|
102
|
-
var fileGroup = JsDoc.parse(srcFiles, JsDoc.opt);
|
|
103
|
-
|
|
104
|
-
var D = {};
|
|
105
|
-
if (JsDoc.opt.D) {
|
|
106
|
-
for (var i = 0; i < JsDoc.opt.D.length; i++) {
|
|
107
|
-
var defineParts = JsDoc.opt.D[i].split(":", 2);
|
|
108
|
-
D[defineParts[0]] = defineParts[1];
|
|
109
|
-
}
|
|
110
|
-
JsDoc.opt.D = D;
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
JsDoc.opt.D = {};
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// combine any conf file D options with the commandline D options
|
|
117
|
-
if (typeof conf != "undefined") for (var c in conf.D) {
|
|
118
|
-
if (typeof JsDoc.opt.D[c] == "undefined") {
|
|
119
|
-
JsDoc.opt.D[c] = conf.D[c];
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (JsDoc.opt.t && IO.exists(JsDoc.opt.t)) {
|
|
124
|
-
JsDoc.opt.t += (JsDoc.opt.t.indexOf(IO.FileSeparator)==JsDoc.opt.t.length-1)?
|
|
125
|
-
"" : IO.FileSeparator;
|
|
126
|
-
LOG.inform("Loading template: "+JsDoc.opt.t+"publish.js");
|
|
127
|
-
require(JsDoc.opt.t+"publish.js");
|
|
128
|
-
|
|
129
|
-
LOG.inform("Publishing all files...");
|
|
130
|
-
publish(fileGroup, JsDoc.opt);
|
|
131
|
-
LOG.inform("Finished.");
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
LOG.warn("Use the -t option to specify a template for formatting.");
|
|
135
|
-
LOG.warn("Dumping results to stdout.");
|
|
136
|
-
require("app/Dumper.js");
|
|
137
|
-
print(Dumper.dump(fileGroup));
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (LOG.out) LOG.out.close();
|
|
141
|
-
if (LOG.warnings.length > 0) print(LOG.warnings.length+" warnings.");
|
|
81
|
+
/**
|
|
82
|
+
* Turn a path into just the name of the file.
|
|
83
|
+
*/
|
|
84
|
+
FilePath.fileName = function(path) {
|
|
85
|
+
var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0);
|
|
86
|
+
return path.substring(nameStart);
|
|
142
87
|
}
|
|
143
88
|
|
|
144
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Get the extension of a filename
|
|
91
|
+
*/
|
|
92
|
+
FilePath.fileExtension = function(filename) {
|
|
93
|
+
return filename.split(".").pop().toLowerCase();
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Turn a path into just the directory part.
|
|
98
|
+
*/
|
|
99
|
+
FilePath.dir = function(path) {
|
|
100
|
+
var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0);
|
|
101
|
+
return path.substring(0, nameStart-1);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
importClass(java.lang.System);
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* @namespace A collection of information about your system.
|
|
109
|
+
*/
|
|
110
|
+
SYS = {
|
|
111
|
+
/**
|
|
112
|
+
* Information about your operating system: arch, name, version.
|
|
113
|
+
* @type string
|
|
114
|
+
*/
|
|
115
|
+
os: [
|
|
116
|
+
new String(System.getProperty("os.arch")),
|
|
117
|
+
new String(System.getProperty("os.name")),
|
|
118
|
+
new String(System.getProperty("os.version"))
|
|
119
|
+
].join(", "),
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Which way does your slash lean.
|
|
123
|
+
* @type string
|
|
124
|
+
*/
|
|
125
|
+
slash: System.getProperty("file.separator")||"/",
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* The path to the working directory where you ran java.
|
|
129
|
+
* @type string
|
|
130
|
+
*/
|
|
131
|
+
userDir: new String(System.getProperty("user.dir")),
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Where is Java's home folder.
|
|
135
|
+
* @type string
|
|
136
|
+
*/
|
|
137
|
+
javaHome: new String(System.getProperty("java.home")),
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* The absolute path to the directory containing this script.
|
|
141
|
+
* @type string
|
|
142
|
+
*/
|
|
143
|
+
pwd: undefined
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// jsrun appends an argument, with the path to here.
|
|
147
|
+
if (arguments[arguments.length-1].match(/^-j=(.+)/)) {
|
|
148
|
+
if (RegExp.$1.charAt(0) == SYS.slash || RegExp.$1.charAt(1) == ":") { // absolute path to here
|
|
149
|
+
SYS.pwd = new FilePath(RegExp.$1).toDir().toString();
|
|
150
|
+
}
|
|
151
|
+
else { // relative path to here
|
|
152
|
+
SYS.pwd = new FilePath(SYS.userDir + SYS.slash + RegExp.$1).toDir().toString();
|
|
153
|
+
}
|
|
154
|
+
arguments.pop();
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
print("The run.js script requires you use jsrun.jar.");
|
|
158
|
+
quit();
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// shortcut
|
|
162
|
+
var File = Packages.java.io.File;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @namespace A collection of functions that deal with reading a writing to disk.
|
|
166
|
+
*/
|
|
167
|
+
IO = {
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Create a new file in the given directory, with the given name and contents.
|
|
171
|
+
*/
|
|
172
|
+
saveFile: function(/**string*/ outDir, /**string*/ fileName, /**string*/ content) {
|
|
173
|
+
var out = new Packages.java.io.PrintWriter(
|
|
174
|
+
new Packages.java.io.OutputStreamWriter(
|
|
175
|
+
new Packages.java.io.FileOutputStream(outDir+SYS.slash+fileName),
|
|
176
|
+
IO.encoding
|
|
177
|
+
)
|
|
178
|
+
);
|
|
179
|
+
out.write(content);
|
|
180
|
+
out.flush();
|
|
181
|
+
out.close();
|
|
182
|
+
},
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* @type string
|
|
186
|
+
*/
|
|
187
|
+
readFile: function(/**string*/ path) {
|
|
188
|
+
if (!IO.exists(path)) {
|
|
189
|
+
throw "File doesn't exist there: "+path;
|
|
190
|
+
}
|
|
191
|
+
return readFile(path, IO.encoding);
|
|
192
|
+
},
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @param inFile
|
|
196
|
+
* @param outDir
|
|
197
|
+
* @param [fileName=The original filename]
|
|
198
|
+
*/
|
|
199
|
+
copyFile: function(/**string*/ inFile, /**string*/ outDir, /**string*/ fileName) {
|
|
200
|
+
if (fileName == null) fileName = FilePath.fileName(inFile);
|
|
201
|
+
|
|
202
|
+
var inFile = new File(inFile);
|
|
203
|
+
var outFile = new File(outDir+SYS.slash+fileName);
|
|
204
|
+
|
|
205
|
+
var bis = new Packages.java.io.BufferedInputStream(new Packages.java.io.FileInputStream(inFile), 4096);
|
|
206
|
+
var bos = new Packages.java.io.BufferedOutputStream(new Packages.java.io.FileOutputStream(outFile), 4096);
|
|
207
|
+
var theChar;
|
|
208
|
+
while ((theChar = bis.read()) != -1) {
|
|
209
|
+
bos.write(theChar);
|
|
210
|
+
}
|
|
211
|
+
bos.close();
|
|
212
|
+
bis.close();
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Creates a series of nested directories.
|
|
217
|
+
*/
|
|
218
|
+
mkPath: function(/**Array*/ path) {
|
|
219
|
+
if (path.constructor != Array) path = path.split(/[\\\/]/);
|
|
220
|
+
var make = "";
|
|
221
|
+
for (var i = 0, l = path.length; i < l; i++) {
|
|
222
|
+
make += path[i] + SYS.slash;
|
|
223
|
+
if (! IO.exists(make)) {
|
|
224
|
+
IO.makeDir(make);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Creates a directory at the given path.
|
|
231
|
+
*/
|
|
232
|
+
makeDir: function(/**string*/ path) {
|
|
233
|
+
(new File(path)).mkdir();
|
|
234
|
+
},
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* @type string[]
|
|
238
|
+
* @param dir The starting directory to look in.
|
|
239
|
+
* @param [recurse=1] How many levels deep to scan.
|
|
240
|
+
* @returns An array of all the paths to files in the given dir.
|
|
241
|
+
*/
|
|
242
|
+
ls: function(/**string*/ dir, /**number*/ recurse, _allFiles, _path) {
|
|
243
|
+
if (_path === undefined) { // initially
|
|
244
|
+
var _allFiles = [];
|
|
245
|
+
var _path = [dir];
|
|
246
|
+
}
|
|
247
|
+
if (_path.length == 0) return _allFiles;
|
|
248
|
+
if (recurse === undefined) recurse = 1;
|
|
249
|
+
|
|
250
|
+
dir = new File(dir);
|
|
251
|
+
if (!dir.directory) return [String(dir)];
|
|
252
|
+
var files = dir.list();
|
|
253
|
+
|
|
254
|
+
for (var f = 0; f < files.length; f++) {
|
|
255
|
+
var file = String(files[f]);
|
|
256
|
+
if (file.match(/^\.[^\.\/\\]/)) continue; // skip dot files
|
|
257
|
+
|
|
258
|
+
if ((new File(_path.join(SYS.slash)+SYS.slash+file)).list()) { // it's a directory
|
|
259
|
+
_path.push(file);
|
|
260
|
+
if (_path.length-1 < recurse) IO.ls(_path.join(SYS.slash), recurse, _allFiles, _path);
|
|
261
|
+
_path.pop();
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
_allFiles.push((_path.join(SYS.slash)+SYS.slash+file).replace(SYS.slash+SYS.slash, SYS.slash));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
return _allFiles;
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* @type boolean
|
|
273
|
+
*/
|
|
274
|
+
exists: function(/**string*/ path) {
|
|
275
|
+
file = new File(path);
|
|
276
|
+
|
|
277
|
+
if (file.isDirectory()){
|
|
278
|
+
return true;
|
|
279
|
+
}
|
|
280
|
+
if (!file.exists()){
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
if (!file.canRead()){
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
return true;
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
*
|
|
291
|
+
*/
|
|
292
|
+
open: function(/**string*/ path, /**string*/ append) {
|
|
293
|
+
var append = true;
|
|
294
|
+
var outFile = new File(path);
|
|
295
|
+
var out = new Packages.java.io.PrintWriter(
|
|
296
|
+
new Packages.java.io.OutputStreamWriter(
|
|
297
|
+
new Packages.java.io.FileOutputStream(outFile, append),
|
|
298
|
+
IO.encoding
|
|
299
|
+
)
|
|
300
|
+
);
|
|
301
|
+
return out;
|
|
302
|
+
},
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Sets {@link IO.encoding}.
|
|
306
|
+
* Encoding is used when reading and writing text to files,
|
|
307
|
+
* and in the meta tags of HTML output.
|
|
308
|
+
*/
|
|
309
|
+
setEncoding: function(/**string*/ encoding) {
|
|
310
|
+
if (/ISO-8859-([0-9]+)/i.test(encoding)) {
|
|
311
|
+
IO.encoding = "ISO8859_"+RegExp.$1;
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
IO.encoding = encoding;
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* @default "utf-8"
|
|
320
|
+
* @private
|
|
321
|
+
*/
|
|
322
|
+
encoding: "utf-8",
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Load the given script.
|
|
326
|
+
*/
|
|
327
|
+
include: function(relativePath) {
|
|
328
|
+
load(SYS.pwd+relativePath);
|
|
329
|
+
},
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Loads all scripts from the given directory path.
|
|
333
|
+
*/
|
|
334
|
+
includeDir: function(path) {
|
|
335
|
+
if (!path) return;
|
|
336
|
+
|
|
337
|
+
for (var lib = IO.ls(SYS.pwd+path), i = 0; i < lib.length; i++)
|
|
338
|
+
load(lib[i]);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// now run the application
|
|
343
|
+
IO.include("frame.js");
|
|
344
|
+
IO.include("main.js");
|
|
345
|
+
|
|
346
|
+
main();
|
data/jsdoc/changes.txt
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
== 2.0.1 ==
|
|
2
|
+
|
|
3
|
+
* Fixed bug that prevented @fileOverview tag from being recognized.
|
|
4
|
+
* Added support for @fieldOf as a synonym for @field plus @memberOf.
|
|
5
|
+
* Added support for @name tag in a @fileOverview comment to control the displayed name of the file.
|
|
6
|
+
* Added support for multiple @example tags. ( issue #152 )
|
|
7
|
+
* Modified style sheet of jsdoc template to make more readable. ( issue #151 )
|
|
8
|
+
* Fixed bug that prevented @since documentation from displaying correctly when it appeared in a class. ( issue #150 )
|
|
9
|
+
* Fixed bug that caused inhertited properties to sometimes not resolve correctly. ( issue #144 )
|
|
10
|
+
* Modified so that trailing whitespace in @example is always trimmed. ( issue #153 )
|
|
11
|
+
* Added support for elseif to JsPlate. (hat tip to fredck)
|
|
12
|
+
* Added support for @location urls in the @overview comment to the jsdoc template.
|
|
13
|
+
|
|
14
|
+
== Changes From Versions 1.4.0 to 2.0.0 ==
|
|
15
|
+
|
|
16
|
+
* Upgraded included version of Rhino from 1.6 to 1.7R1.
|
|
17
|
+
* Removed circular references in parsed documentation objects.
|
|
18
|
+
* Improved inheritance handling, now properties and events can be inherited same as methods.
|
|
19
|
+
* Improved handling of cross-file relationships, now having two related objects in separate files is not a problem.
|
|
20
|
+
* Improved ability to recognize membership of previously defined objects.
|
|
21
|
+
* Added ability to redefine parsing behavior with plugins.
|
|
22
|
+
* @methodOf is a synonym for @function and @memberOf.
|
|
23
|
+
* Added @default to document default values of members that are objects.
|
|
24
|
+
* Added ability to parse and refer to inner functions.
|
|
25
|
+
* Fixed bug that appeared when calling a method to set properties of the instance referred to by "this".
|
|
26
|
+
* Added ability to automatically create links to other symbols.
|
|
27
|
+
* New "jsdoc" template now produces fully W3C valid XHTML.
|
|
28
|
+
* Inline parameter type hint comments are now documented.
|
|
29
|
+
* Fixed error: Locally scoped variables (declared with var) no longer appear as global.
|
|
30
|
+
* It is now possible to run JsDoc Toolkit from any directory.
|
|
31
|
+
* Added support for inline {@link ...} tags.
|
|
32
|
+
* Added support for the -H command-line option to allow for custom content handlers.
|
|
33
|
+
* Tag names @inherits and @scope changed to @borrows and @lends.
|
|
34
|
+
? Combining @constructor in a doclet with @lends now supported.
|
|
35
|
+
* Multiple @lend tags now supported.
|
|
36
|
+
* Added support for the @constructs tag, used inside a @lends block.
|
|
37
|
+
* Added support for the @constant tag.
|
|
38
|
+
* Fixed bug that prevented the use of [] as a default value.
|
|
39
|
+
* Added support for the @field tag.
|
|
40
|
+
* Added support for the @public tag (applied to inner functions).
|
|
41
|
+
* @namespace tag can now be applied to functions, not just object literals.
|
|
42
|
+
* Added support for the -s command line option to suppress source code output.
|
|
43
|
+
* Added new unit test framework.
|
|
44
|
+
* Underscored symbols are now treated as if they have a @private tag by default.
|
|
45
|
+
* Improved support for anonymous constructors.
|
|
46
|
+
* Added support for the nocode meta tag.
|
|
47
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
This is an example of one way you could set up a configuration file to more
|
|
3
|
+
conveniently define some commandline options. You might like to do this if
|
|
4
|
+
you frequently reuse the same options. Note that you don't need to define
|
|
5
|
+
every option in this file, you can combine a configuration file with
|
|
6
|
+
additional options on the commandline if your wish.
|
|
7
|
+
|
|
8
|
+
You would include this configuration file by running JsDoc Toolkit like so:
|
|
9
|
+
java -jar jsrun.jar app/run.js -c=conf/sample.conf
|
|
10
|
+
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
{
|
|
14
|
+
// source files to use
|
|
15
|
+
_: ['app/test/jsdoc_test.js'],
|
|
16
|
+
|
|
17
|
+
// document all functions, even uncommented ones
|
|
18
|
+
a: true,
|
|
19
|
+
|
|
20
|
+
// including those marked @private
|
|
21
|
+
p: true,
|
|
22
|
+
|
|
23
|
+
// some extra variables I want to include
|
|
24
|
+
D: {generatedBy: "Michael Mathews", copyright: "2008"},
|
|
25
|
+
|
|
26
|
+
// use this directory as the output directory
|
|
27
|
+
d: "docs",
|
|
28
|
+
|
|
29
|
+
// use this template
|
|
30
|
+
t: "templates/sproutcore"
|
|
31
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<project>
|
|
2
|
+
<target name="clean">
|
|
3
|
+
<delete dir="build"/>
|
|
4
|
+
</target>
|
|
5
|
+
|
|
6
|
+
<target name="compile">
|
|
7
|
+
<mkdir dir="build/classes"/>
|
|
8
|
+
<javac
|
|
9
|
+
srcdir="src" destdir="build/classes"
|
|
10
|
+
classpath="./classes/js.jar"
|
|
11
|
+
/>
|
|
12
|
+
</target>
|
|
13
|
+
|
|
14
|
+
<target name="jar">
|
|
15
|
+
<mkdir dir="build/jar"/>
|
|
16
|
+
<jar destfile="build/jar/jsrun.jar" basedir="build/classes">
|
|
17
|
+
<manifest>
|
|
18
|
+
<attribute name="Main-Class" value="JsRun"/>
|
|
19
|
+
<attribute name="Class-Path" value="./java/classes/js.jar"/>
|
|
20
|
+
</manifest>
|
|
21
|
+
</jar>
|
|
22
|
+
</target>
|
|
23
|
+
|
|
24
|
+
<target name="debugjar">
|
|
25
|
+
<mkdir dir="build/jar"/>
|
|
26
|
+
<jar destfile="build/jar/jsdebug.jar" basedir="build/classes">
|
|
27
|
+
<manifest>
|
|
28
|
+
<attribute name="Main-Class" value="JsDebugRun"/>
|
|
29
|
+
<attribute name="Class-Path" value="./java/classes/js.jar"/>
|
|
30
|
+
</manifest>
|
|
31
|
+
</jar>
|
|
32
|
+
</target>
|
|
33
|
+
|
|
34
|
+
<target name="clean-build" depends="clean,compile,jar"/>
|
|
35
|
+
<target name="clean-debug" depends="clean,compile,debugjar"/>
|
|
36
|
+
</project>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<project default="clean-build"><!-- use this build script if you are stuck with ant version 1.4 -->
|
|
2
|
+
<target name="clean">
|
|
3
|
+
<delete dir="build"/>
|
|
4
|
+
</target>
|
|
5
|
+
|
|
6
|
+
<target name="compile">
|
|
7
|
+
<mkdir dir="build/classes"/>
|
|
8
|
+
<javac
|
|
9
|
+
srcdir="src" destdir="build/classes"
|
|
10
|
+
classpath="./classes/js.jar"
|
|
11
|
+
/>
|
|
12
|
+
</target>
|
|
13
|
+
|
|
14
|
+
<target name="jar">
|
|
15
|
+
<mkdir dir="build/jar"/>
|
|
16
|
+
<jar jarfile="build/jar/jsrun.jar" basedir="build/classes">
|
|
17
|
+
<manifest>
|
|
18
|
+
<attribute name="Main-Class" value="JsRun"/>
|
|
19
|
+
<attribute name="Class-Path" value="./java/classes/js.jar"/>
|
|
20
|
+
</manifest>
|
|
21
|
+
</jar>
|
|
22
|
+
</target>
|
|
23
|
+
|
|
24
|
+
<target name="debugjar">
|
|
25
|
+
<mkdir dir="build/jar"/>
|
|
26
|
+
<jar jarfile="build/jar/jsdebug.jar" basedir="build/classes">
|
|
27
|
+
<manifest>
|
|
28
|
+
<attribute name="Main-Class" value="JsDebugRun"/>
|
|
29
|
+
<attribute name="Class-Path" value="./java/classes/js.jar"/>
|
|
30
|
+
</manifest>
|
|
31
|
+
</jar>
|
|
32
|
+
</target>
|
|
33
|
+
|
|
34
|
+
<target name="clean-build" depends="clean,compile,jar"/>
|
|
35
|
+
<target name="clean-debug" depends="clean,compile,debugjar"/>
|
|
36
|
+
</project>
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A trivial bootstrap class that simply adds the path to the
|
|
3
|
+
* .js file as an argument to the Rhino call. This little hack
|
|
4
|
+
* allows the code in the .js file to have access to it's own
|
|
5
|
+
* path via the Rhino arguments object. This is necessary to
|
|
6
|
+
* allow the .js code to find resource files in a location
|
|
7
|
+
* relative to itself.
|
|
8
|
+
*
|
|
9
|
+
* USAGE: java -jar jsdebug.jar path/to/file.js
|
|
10
|
+
*/
|
|
11
|
+
public class JsDebugRun {
|
|
12
|
+
public static void main(String[] args) {
|
|
13
|
+
String[] jsargs = {"-j="+args[0]};
|
|
14
|
+
|
|
15
|
+
String[] allArgs = new String[jsargs.length + args.length];
|
|
16
|
+
System.arraycopy(args, 0, allArgs, 0, args.length);
|
|
17
|
+
System.arraycopy(jsargs, 0, allArgs, args.length ,jsargs.length);
|
|
18
|
+
|
|
19
|
+
org.mozilla.javascript.tools.debugger.Main.main(allArgs);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A trivial bootstrap class that simply adds the path to the
|
|
3
|
+
* .js file as an argument to the Rhino call. This little hack
|
|
4
|
+
* allows the code in the .js file to have access to it's own
|
|
5
|
+
* path via the Rhino arguments object. This is necessary to
|
|
6
|
+
* allow the .js code to find resource files in a location
|
|
7
|
+
* relative to itself.
|
|
8
|
+
*
|
|
9
|
+
* USAGE: java -jar jsrun.jar path/to/file.js
|
|
10
|
+
*/
|
|
11
|
+
public class JsRun {
|
|
12
|
+
public static void main(String[] args) {
|
|
13
|
+
String[] jsargs = {"-j="+args[0]};
|
|
14
|
+
|
|
15
|
+
String[] allArgs = new String[jsargs.length + args.length];
|
|
16
|
+
System.arraycopy(args, 0, allArgs, 0, args.length);
|
|
17
|
+
System.arraycopy(jsargs, 0, allArgs, args.length ,jsargs.length);
|
|
18
|
+
|
|
19
|
+
org.mozilla.javascript.tools.shell.Main.main(allArgs);
|
|
20
|
+
}
|
|
21
|
+
}
|
data/jsdoc/jsdebug.jar
ADDED
|
Binary file
|
data/jsdoc/jsrun.jar
ADDED
|
Binary file
|