sproutcore 0.9.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/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +269 -0
- data/README.txt +67 -0
- data/Rakefile +4 -0
- data/app_generators/sproutcore/USAGE +5 -0
- data/app_generators/sproutcore/sproutcore_generator.rb +66 -0
- data/app_generators/sproutcore/templates/README +77 -0
- data/app_generators/sproutcore/templates/environment.yml +4 -0
- data/bin/sc-build +145 -0
- data/bin/sc-gen +24 -0
- data/bin/sc-server +63 -0
- data/bin/sproutcore +21 -0
- data/clients/sc_docs/controllers/docs.js +118 -0
- data/clients/sc_docs/core.js +19 -0
- data/clients/sc_docs/english.lproj/body.css +159 -0
- data/clients/sc_docs/english.lproj/body.rhtml +33 -0
- data/clients/sc_docs/english.lproj/controls.css +0 -0
- data/clients/sc_docs/english.lproj/icons/small/next.png +0 -0
- data/clients/sc_docs/english.lproj/icons/small/reset.png +0 -0
- data/clients/sc_docs/english.lproj/images/gradients.png +0 -0
- data/clients/sc_docs/english.lproj/images/indicator.gif +0 -0
- data/clients/sc_docs/english.lproj/images/toolbar.png +0 -0
- data/clients/sc_docs/english.lproj/no_docs.rhtml +7 -0
- data/clients/sc_docs/english.lproj/strings.js +14 -0
- data/clients/sc_docs/english.lproj/warning.rhtml +6 -0
- data/clients/sc_docs/fixtures/doc.js +11 -0
- data/clients/sc_docs/main.js +21 -0
- data/clients/sc_docs/models/doc.js +9 -0
- data/clients/sc_docs/tests/controllers/docs.rhtml +21 -0
- data/clients/sc_docs/tests/models/doc.rhtml +21 -0
- data/clients/sc_docs/tests/views/doc_frame.rhtml +21 -0
- data/clients/sc_docs/tests/views/doc_label_view.rhtml +21 -0
- data/clients/sc_docs/views/doc_frame.js +33 -0
- data/clients/sc_docs/views/doc_label.js +20 -0
- data/clients/sc_test_runner/controllers/runner.js +175 -0
- data/clients/sc_test_runner/core.js +19 -0
- data/clients/sc_test_runner/english.lproj/body.css +151 -0
- data/clients/sc_test_runner/english.lproj/body.rhtml +35 -0
- data/clients/sc_test_runner/english.lproj/controls.css +0 -0
- 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/clients/sc_test_runner/english.lproj/images/gradients.png +0 -0
- data/clients/sc_test_runner/english.lproj/images/indicator.gif +0 -0
- data/clients/sc_test_runner/english.lproj/images/toolbar.png +0 -0
- data/clients/sc_test_runner/english.lproj/no_tests.rhtml +6 -0
- data/clients/sc_test_runner/english.lproj/strings.js +14 -0
- data/clients/sc_test_runner/english.lproj/warning.rhtml +6 -0
- data/clients/sc_test_runner/fixtures/test.js +12 -0
- data/clients/sc_test_runner/main.js +26 -0
- data/clients/sc_test_runner/models/test.js +11 -0
- data/clients/sc_test_runner/views/runner_frame.js +72 -0
- data/clients/sc_test_runner/views/test_label.js +20 -0
- data/config/hoe.rb +70 -0
- data/config/requirements.rb +17 -0
- data/environment.yml +9 -0
- data/frameworks/prototype/prototype.js +4186 -0
- data/frameworks/sproutcore/Core.js +378 -0
- data/frameworks/sproutcore/README +3 -0
- data/frameworks/sproutcore/controllers/array.js +236 -0
- data/frameworks/sproutcore/controllers/collection.js +305 -0
- data/frameworks/sproutcore/controllers/controller.js +323 -0
- data/frameworks/sproutcore/controllers/object.js +372 -0
- data/frameworks/sproutcore/drag/drag.js +549 -0
- data/frameworks/sproutcore/drag/drag_data_source.js +32 -0
- data/frameworks/sproutcore/drag/drag_source.js +64 -0
- data/frameworks/sproutcore/drag/drop_target.js +153 -0
- data/frameworks/sproutcore/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/english.lproj/buttons.css +589 -0
- data/frameworks/sproutcore/english.lproj/buttons.png +0 -0
- data/frameworks/sproutcore/english.lproj/inline_text_editor.css +21 -0
- data/frameworks/sproutcore/english.lproj/menu.css +121 -0
- data/frameworks/sproutcore/english.lproj/panels/background-fat.jpg +0 -0
- data/frameworks/sproutcore/english.lproj/panels/background-thin.jpg +0 -0
- data/frameworks/sproutcore/english.lproj/panels/bottom-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/bottom-left-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/bottom-right-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/left-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/overlay.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/right-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/top-edge.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/top-left-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panels/top-right-corner.png +0 -0
- data/frameworks/sproutcore/english.lproj/panes.css +155 -0
- data/frameworks/sproutcore/english.lproj/picker.css +22 -0
- data/frameworks/sproutcore/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/english.lproj/tab.css +23 -0
- data/frameworks/sproutcore/english.lproj/tests.css +67 -0
- data/frameworks/sproutcore/english.lproj/theme.css +77 -0
- data/frameworks/sproutcore/foundation/animator.js +670 -0
- data/frameworks/sproutcore/foundation/application.js +199 -0
- data/frameworks/sproutcore/foundation/array.js +348 -0
- data/frameworks/sproutcore/foundation/benchmark.js +211 -0
- data/frameworks/sproutcore/foundation/binding.js +384 -0
- data/frameworks/sproutcore/foundation/date.js +357 -0
- data/frameworks/sproutcore/foundation/error.js +39 -0
- data/frameworks/sproutcore/foundation/input_manager.js +153 -0
- data/frameworks/sproutcore/foundation/json.js +296 -0
- data/frameworks/sproutcore/foundation/mock.js +42 -0
- data/frameworks/sproutcore/foundation/node_descriptor.js +56 -0
- data/frameworks/sproutcore/foundation/object.js +777 -0
- data/frameworks/sproutcore/foundation/observable.js +451 -0
- data/frameworks/sproutcore/foundation/page.js +63 -0
- data/frameworks/sproutcore/foundation/path_module.js +413 -0
- data/frameworks/sproutcore/foundation/responder.js +310 -0
- data/frameworks/sproutcore/foundation/routes.js +371 -0
- data/frameworks/sproutcore/foundation/run_loop.js +21 -0
- data/frameworks/sproutcore/foundation/server.js +491 -0
- data/frameworks/sproutcore/foundation/set.js +96 -0
- data/frameworks/sproutcore/foundation/string.js +149 -0
- data/frameworks/sproutcore/foundation/undo_manager.js +186 -0
- data/frameworks/sproutcore/foundation/unittest.js +622 -0
- data/frameworks/sproutcore/foundation/utils.js +61 -0
- data/frameworks/sproutcore/globals/panels.js +182 -0
- data/frameworks/sproutcore/globals/popups.js +60 -0
- data/frameworks/sproutcore/globals/window.js +381 -0
- data/frameworks/sproutcore/lib/index.rhtml +66 -0
- data/frameworks/sproutcore/models/collection.js +395 -0
- data/frameworks/sproutcore/models/record.js +622 -0
- data/frameworks/sproutcore/models/store.js +295 -0
- data/frameworks/sproutcore/panes/dialog.js +16 -0
- data/frameworks/sproutcore/panes/manager.js +164 -0
- data/frameworks/sproutcore/panes/menu.js +45 -0
- data/frameworks/sproutcore/panes/overlay.js +231 -0
- data/frameworks/sproutcore/panes/pane.js +90 -0
- data/frameworks/sproutcore/panes/panel.js +19 -0
- data/frameworks/sproutcore/panes/picker.js +45 -0
- data/frameworks/sproutcore/tests/controllers/array.rhtml +86 -0
- data/frameworks/sproutcore/tests/controllers/controller.rhtml +273 -0
- data/frameworks/sproutcore/tests/controllers/object.rhtml +327 -0
- data/frameworks/sproutcore/tests/foundation/application.rhtml +125 -0
- data/frameworks/sproutcore/tests/foundation/array.rhtml +221 -0
- data/frameworks/sproutcore/tests/foundation/object.rhtml +69 -0
- data/frameworks/sproutcore/tests/globals/window.rhtml +45 -0
- data/frameworks/sproutcore/tests/panes/pane.rhtml +88 -0
- data/frameworks/sproutcore/tests/views/collection.rhtml +137 -0
- data/frameworks/sproutcore/tests/views/popup_button.rhtml +115 -0
- data/frameworks/sproutcore/tests/views/text_field.rhtml +37 -0
- data/frameworks/sproutcore/validators/credit_card.js +92 -0
- data/frameworks/sproutcore/validators/date.js +36 -0
- data/frameworks/sproutcore/validators/email.js +29 -0
- data/frameworks/sproutcore/validators/not_empty.js +24 -0
- data/frameworks/sproutcore/validators/number.js +55 -0
- data/frameworks/sproutcore/validators/password.js +78 -0
- data/frameworks/sproutcore/validators/validator.js +304 -0
- data/frameworks/sproutcore/views/button.js +425 -0
- data/frameworks/sproutcore/views/checkbox_field.js +30 -0
- data/frameworks/sproutcore/views/collection.js +1521 -0
- data/frameworks/sproutcore/views/container.js +62 -0
- data/frameworks/sproutcore/views/error_explanation.js +45 -0
- data/frameworks/sproutcore/views/field.js +214 -0
- data/frameworks/sproutcore/views/filter_button.js +29 -0
- data/frameworks/sproutcore/views/form.js +591 -0
- data/frameworks/sproutcore/views/image.js +141 -0
- data/frameworks/sproutcore/views/inline_text_editor.js +96 -0
- data/frameworks/sproutcore/views/label.js +176 -0
- data/frameworks/sproutcore/views/menu_item.js +90 -0
- data/frameworks/sproutcore/views/pagination.js +54 -0
- data/frameworks/sproutcore/views/popup_button.js +86 -0
- data/frameworks/sproutcore/views/popup_menu.js +137 -0
- data/frameworks/sproutcore/views/progress.js +100 -0
- data/frameworks/sproutcore/views/radio_field.js +107 -0
- data/frameworks/sproutcore/views/radio_group.js +48 -0
- data/frameworks/sproutcore/views/segmented.js +80 -0
- data/frameworks/sproutcore/views/select_field.js +272 -0
- data/frameworks/sproutcore/views/spinner.js +11 -0
- data/frameworks/sproutcore/views/tab.js +126 -0
- data/frameworks/sproutcore/views/text_field.js +179 -0
- data/frameworks/sproutcore/views/textarea_field.js +14 -0
- data/frameworks/sproutcore/views/toolbar.js +29 -0
- data/frameworks/sproutcore/views/view.js +1389 -0
- data/frameworks/sproutcore/views/workspace.js +170 -0
- data/generators/client/README +3 -0
- data/generators/client/USAGE +12 -0
- data/generators/client/client_generator.rb +53 -0
- data/generators/client/templates/core.js +19 -0
- data/generators/client/templates/english.lproj/body.css +0 -0
- data/generators/client/templates/english.lproj/body.rhtml +3 -0
- data/generators/client/templates/english.lproj/controls.css +0 -0
- data/generators/client/templates/english.lproj/strings.js +14 -0
- data/generators/client/templates/main.js +37 -0
- data/generators/controller/USAGE +16 -0
- data/generators/controller/controller_generator.rb +51 -0
- data/generators/controller/templates/controller.js +21 -0
- data/generators/controller/templates/test.rhtml +21 -0
- data/generators/framework/README +7 -0
- data/generators/framework/USAGE +12 -0
- data/generators/framework/framework_generator.rb +53 -0
- data/generators/framework/templates/core.js +20 -0
- data/generators/framework/templates/english.lproj/body.css +0 -0
- data/generators/framework/templates/english.lproj/body.rhtml +3 -0
- data/generators/framework/templates/english.lproj/controls.css +0 -0
- data/generators/framework/templates/english.lproj/strings.js +14 -0
- data/generators/language/USAGE +16 -0
- data/generators/language/language_generator.rb +47 -0
- data/generators/language/templates/strings.js +10 -0
- data/generators/model/USAGE +24 -0
- data/generators/model/model_generator.rb +55 -0
- data/generators/model/templates/fixture.js +11 -0
- data/generators/model/templates/model.js +20 -0
- data/generators/model/templates/test.rhtml +21 -0
- data/generators/test/USAGE +16 -0
- data/generators/test/templates/test.rhtml +21 -0
- data/generators/test/test_generator.rb +47 -0
- data/generators/view/USAGE +16 -0
- data/generators/view/templates/test.rhtml +21 -0
- data/generators/view/templates/view.js +20 -0
- data/generators/view/view_generator.rb +51 -0
- data/jsdoc/README.txt +119 -0
- data/jsdoc/app/DocFile.js +137 -0
- data/jsdoc/app/DocTag.js +110 -0
- data/jsdoc/app/Doclet.js +63 -0
- data/jsdoc/app/Dumper.js +143 -0
- data/jsdoc/app/JsDoc.js +103 -0
- data/jsdoc/app/JsHilite.js +45 -0
- data/jsdoc/app/JsIO.js +163 -0
- data/jsdoc/app/JsParse.js +385 -0
- data/jsdoc/app/JsPlate.js +130 -0
- data/jsdoc/app/JsTestrun.js +129 -0
- data/jsdoc/app/JsToke.js +564 -0
- data/jsdoc/app/Symbol.js +298 -0
- data/jsdoc/app/Transformer.js +14 -0
- data/jsdoc/app/Util.js +97 -0
- data/jsdoc/app/js.jar +0 -0
- data/jsdoc/app/run.js +144 -0
- data/jsdoc/plugins/min.js +316 -0
- data/jsdoc/plugins/strip.js +20 -0
- data/jsdoc/templates/sproutcore/class.tmpl +438 -0
- data/jsdoc/templates/sproutcore/default.css +241 -0
- data/jsdoc/templates/sproutcore/index.html +13 -0
- data/jsdoc/templates/sproutcore/index.tmpl +21 -0
- data/jsdoc/templates/sproutcore/prototype.js +4186 -0
- data/jsdoc/templates/sproutcore/publish.js +236 -0
- data/jsdoc/templates/sproutcore/splash.html +7 -0
- data/lib/sproutcore/build_tools/html_builder.rb +88 -0
- data/lib/sproutcore/build_tools/resource_builder.rb +194 -0
- data/lib/sproutcore/build_tools.rb +44 -0
- data/lib/sproutcore/bundle.rb +517 -0
- data/lib/sproutcore/bundle_manifest.rb +397 -0
- data/lib/sproutcore/generator_helper.rb +170 -0
- data/lib/sproutcore/helpers/capture_helper.rb +42 -0
- data/lib/sproutcore/helpers/static_helper.rb +80 -0
- data/lib/sproutcore/helpers/tag_helper.rb +110 -0
- data/lib/sproutcore/helpers/text_helper.rb +336 -0
- data/lib/sproutcore/helpers.rb +3 -0
- data/lib/sproutcore/jsdoc.rb +40 -0
- data/lib/sproutcore/jsmin.rb +247 -0
- data/lib/sproutcore/library.rb +258 -0
- data/lib/sproutcore/merb/bundle_controller.rb +179 -0
- data/lib/sproutcore/merb/router.rb +43 -0
- data/lib/sproutcore/merb.rb +27 -0
- data/lib/sproutcore/version.rb +9 -0
- data/lib/sproutcore/view_helpers/button_views.rb +302 -0
- data/lib/sproutcore/view_helpers/core_views.rb +284 -0
- data/lib/sproutcore/view_helpers/form_views.rb +258 -0
- data/lib/sproutcore/view_helpers/menu_views.rb +94 -0
- data/lib/sproutcore/view_helpers.rb +628 -0
- data/lib/sproutcore.rb +30 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +74 -0
- data/setup.rb +1585 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/sproutcore_spec.rb +11 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/rspec.rake +21 -0
- data/tasks/website.rake +17 -0
- metadata +365 -0
data/jsdoc/app/Doclet.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileOverview
|
|
3
|
+
* @name Doclet
|
|
4
|
+
* @author Michael Mathews micmath@gmail.com
|
|
5
|
+
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/Doclet.js $
|
|
6
|
+
* @revision $Id: Doclet.js 295 2007-11-11 01:09:02Z micmath $
|
|
7
|
+
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
+
* (See the accompanying README file for full details.)
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @class Represents a collection of DocTags.
|
|
13
|
+
* @constructor
|
|
14
|
+
* @author Michael Mathews <a href="mailto:micmath@gmail.com">micmath@gmail.com</a>
|
|
15
|
+
* @param {string} comment The entire documentation comment. The openening slash-star-star and
|
|
16
|
+
* closing star-slash are optional. An untagged string at the start automatically gets a "desc" tag.
|
|
17
|
+
*/
|
|
18
|
+
function Doclet(comment) {
|
|
19
|
+
var src = Doclet.unwrapComment(comment);
|
|
20
|
+
var tagTexts = src.split(/(^|[\r\f\n])\s*@/);
|
|
21
|
+
|
|
22
|
+
this.tags =
|
|
23
|
+
tagTexts.filter(function(el){return el.match(/^\w/)})
|
|
24
|
+
.map(function(el){return new DocTag(el)});
|
|
25
|
+
|
|
26
|
+
var paramParent = "config"; // default
|
|
27
|
+
for(var i = 0; i < this.tags.length; i++) {
|
|
28
|
+
if (this.tags[i].title == "param") paramParent = this.tags[i].name;
|
|
29
|
+
if (this.tags[i].title == "config") {
|
|
30
|
+
this.tags[i].name = paramParent+"."+this.tags[i].name;
|
|
31
|
+
this.tags[i].title = "param"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Remove the slashes and stars from a doc comment.
|
|
38
|
+
*/
|
|
39
|
+
Doclet.unwrapComment = function(comment) {
|
|
40
|
+
if (!comment) comment = "/** @desc undocumented */";
|
|
41
|
+
|
|
42
|
+
var unwrapped = comment.replace(/(^\/\*\*|\*\/$)/g, "").replace(/^\s*\* ?/gm, "");
|
|
43
|
+
if (unwrapped.match(/^\s*[^@\s]/)) unwrapped = "@desc "+unwrapped;
|
|
44
|
+
return unwrapped;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Get every DocTag with the given title.
|
|
49
|
+
* @param {string} tagTitle
|
|
50
|
+
* @return {DocTag[]}
|
|
51
|
+
*/
|
|
52
|
+
Doclet.prototype.getTag = function(tagTitle) {
|
|
53
|
+
return this.tags.filter(function(el){return el.title == tagTitle});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Remove from this Doclet every DocTag with the given title.
|
|
58
|
+
* @private
|
|
59
|
+
* @param {string} tagTitle
|
|
60
|
+
*/
|
|
61
|
+
Doclet.prototype._dropTag = function(tagTitle) {
|
|
62
|
+
this.tags = this.tags.filter(function(el){return el.title != tagTitle});
|
|
63
|
+
}
|
data/jsdoc/app/Dumper.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class
|
|
3
|
+
<pre>
|
|
4
|
+
This is a lightly modified version of Kevin Jones' JavaScript
|
|
5
|
+
library Data.Dump. To download the original visit:
|
|
6
|
+
<a href="http://openjsan.org/doc/k/ke/kevinj/Data/Dump/">http://openjsan.org/doc/k/ke/kevinj/Data/Dump/</a>
|
|
7
|
+
|
|
8
|
+
AUTHORS
|
|
9
|
+
|
|
10
|
+
The Data.Dump JavaScript module is written by Kevin Jones
|
|
11
|
+
(kevinj@cpan.org), based on Data::Dump by Gisle Aas (gisle@aas.no),
|
|
12
|
+
based on Data::Dumper by Gurusamy Sarathy (gsar@umich.edu).
|
|
13
|
+
|
|
14
|
+
COPYRIGHT
|
|
15
|
+
|
|
16
|
+
Copyright 2007 Kevin Jones. Copyright 1998-2000,2003-2004 Gisle Aas.
|
|
17
|
+
Copyright 1996-1998 Gurusamy Sarathy.
|
|
18
|
+
|
|
19
|
+
This program is free software; you can redistribute it and/or modify
|
|
20
|
+
it under the terms of the Perl Artistic License
|
|
21
|
+
|
|
22
|
+
See http://www.perl.com/perl/misc/Artistic.html
|
|
23
|
+
</pre>
|
|
24
|
+
* @static
|
|
25
|
+
*/
|
|
26
|
+
Dumper = {
|
|
27
|
+
/** @param [...] The objects to dump. */
|
|
28
|
+
dump: function () {
|
|
29
|
+
if (arguments.length > 1)
|
|
30
|
+
return this._dump(arguments);
|
|
31
|
+
else if (arguments.length == 1)
|
|
32
|
+
return this._dump(arguments[0]);
|
|
33
|
+
else
|
|
34
|
+
return "()";
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
_dump: function (obj) {
|
|
38
|
+
if (typeof obj == 'undefined') return 'undefined';
|
|
39
|
+
var out;
|
|
40
|
+
var type = this._typeof(obj);
|
|
41
|
+
if (obj.circularReference) obj.circularReference++;
|
|
42
|
+
switch (type) {
|
|
43
|
+
case 'circular':
|
|
44
|
+
out = '{/*circularReference*/}';
|
|
45
|
+
break;
|
|
46
|
+
case 'object':
|
|
47
|
+
var pairs = new Array;
|
|
48
|
+
|
|
49
|
+
for (var prop in obj) {
|
|
50
|
+
if (prop != "circularReference" && obj.hasOwnProperty(prop)) { //hide inherited properties
|
|
51
|
+
pairs.push(prop + ': ' + this._dump(obj[prop]));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
out = '{' + this._format_list(pairs) + '}';
|
|
56
|
+
break;
|
|
57
|
+
|
|
58
|
+
case 'string':
|
|
59
|
+
for (var prop in Dumper.ESC) {
|
|
60
|
+
if (Dumper.ESC.hasOwnProperty(prop)) {
|
|
61
|
+
obj = obj.replace(prop, Dumper.ESC[prop]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Escape UTF-8 Strings
|
|
66
|
+
if (obj.match(/^[\x00-\x7f]*$/)) {
|
|
67
|
+
out = '"' + obj + '"';
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
out = "unescape('"+escape(obj)+"')";
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
|
|
74
|
+
case 'array':
|
|
75
|
+
var elems = new Array;
|
|
76
|
+
|
|
77
|
+
for (var i=0; i<obj.length; i++) {
|
|
78
|
+
elems.push( this._dump(obj[i]) );
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
out = '[' + this._format_list(elems) + ']';
|
|
82
|
+
break;
|
|
83
|
+
|
|
84
|
+
case 'date':
|
|
85
|
+
// firefox returns GMT strings from toUTCString()...
|
|
86
|
+
var utc_string = obj.toUTCString().replace(/GMT/,'UTC');
|
|
87
|
+
out = 'new Date("' + utc_string + '")';
|
|
88
|
+
break;
|
|
89
|
+
|
|
90
|
+
case 'element':
|
|
91
|
+
// DOM element
|
|
92
|
+
out = this._dump_dom(obj);
|
|
93
|
+
break;
|
|
94
|
+
|
|
95
|
+
default:
|
|
96
|
+
out = obj;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
out = String(out).replace(/\n/g, '\n ');
|
|
100
|
+
out = out.replace(/\n (.*)$/,"\n$1");
|
|
101
|
+
|
|
102
|
+
return out;
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
_format_list: function (list) {
|
|
106
|
+
if (!list.length) return '';
|
|
107
|
+
var nl = list.toString().length > 60 ? '\n' : ' ';
|
|
108
|
+
return nl + list.join(',' + nl) + nl;
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
_typeof: function (obj) {
|
|
112
|
+
if (obj && obj.circularReference && obj.circularReference > 1) return 'circular';
|
|
113
|
+
if (Array.prototype.isPrototypeOf(obj)) return 'array';
|
|
114
|
+
if (Date.prototype.isPrototypeOf(obj)) return 'date';
|
|
115
|
+
if (typeof obj.nodeType != 'undefined') return 'element';
|
|
116
|
+
return typeof(obj);
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
_dump_dom: function (obj) {
|
|
120
|
+
return '"' + Dumper.nodeTypes[obj.nodeType] + '"';
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
Dumper.ESC = {
|
|
125
|
+
"\t": "\\t",
|
|
126
|
+
"\n": "\\n",
|
|
127
|
+
"\f": "\\f"
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
Dumper.nodeTypes = {
|
|
131
|
+
1: "ELEMENT_NODE",
|
|
132
|
+
2: "ATTRIBUTE_NODE",
|
|
133
|
+
3: "TEXT_NODE",
|
|
134
|
+
4: "CDATA_SECTION_NODE",
|
|
135
|
+
5: "ENTITY_REFERENCE_NODE",
|
|
136
|
+
6: "ENTITY_NODE",
|
|
137
|
+
7: "PROCESSING_INSTRUCTION_NODE",
|
|
138
|
+
8: "COMMENT_NODE",
|
|
139
|
+
9: "DOCUMENT_NODE",
|
|
140
|
+
10: "DOCUMENT_TYPE_NODE",
|
|
141
|
+
11: "DOCUMENT_FRAGMENT_NODE",
|
|
142
|
+
12: "NOTATION_NODE"
|
|
143
|
+
};
|
data/jsdoc/app/JsDoc.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileOverview
|
|
3
|
+
* @name JsDoc Toolkit
|
|
4
|
+
* @author Michael Mathews micmath@gmail.com
|
|
5
|
+
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/JsDoc.js $
|
|
6
|
+
* @revision $Id: JsDoc.js 327 2007-11-13 00:18:23Z micmath $
|
|
7
|
+
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
+
* (See the accompanying README file for full details.)
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** @class Handle reporting messages to the user.
|
|
12
|
+
@static
|
|
13
|
+
*/
|
|
14
|
+
LOG = {
|
|
15
|
+
warn: function(msg, e) {
|
|
16
|
+
if (e) msg = e.fileName+", line "+e.lineNumber+": "+msg;
|
|
17
|
+
|
|
18
|
+
msg = ">> WARNING: "+msg;
|
|
19
|
+
LOG.warnings.push(msg);
|
|
20
|
+
if (LOG.out) LOG.out.write(msg+"\n");
|
|
21
|
+
else print(msg);
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
inform: function(msg) {
|
|
25
|
+
msg = " > "+msg;
|
|
26
|
+
if (LOG.out) LOG.out.write(msg+"\n");
|
|
27
|
+
else if (typeof VERBOSE != "undefined" && VERBOSE) print(msg);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
LOG.warnings = [];
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
@class An automated documentation publishing system for JavaScript.
|
|
34
|
+
@static
|
|
35
|
+
@author Michael Mathews <a href="mailto:micmath@gmail.com">micmath@gmail.com</a>
|
|
36
|
+
*/
|
|
37
|
+
JsDoc = {
|
|
38
|
+
/** The version number of this release. */
|
|
39
|
+
VERSION: "1.4.0b",
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Print out the expected usage syntax for this script on the command
|
|
43
|
+
* line. This is called automatically by using the -h/--help option.
|
|
44
|
+
*/
|
|
45
|
+
usage: function() {
|
|
46
|
+
print("USAGE: java -jar app/js.jar app/jsdoc.js [OPTIONS] <SRC_DIR> <SRC_FILE> ...");
|
|
47
|
+
print("");
|
|
48
|
+
print("OPTIONS:");
|
|
49
|
+
print(" -t=<PATH> or --template=<PATH>\n Required. Use this template to format the output.\n");
|
|
50
|
+
print(" -d=<PATH> or --directory=<PATH>\n Output to this directory (defaults to js_docs_out).\n");
|
|
51
|
+
print(" -e=<ENCODING> or --encoding=<ENCODING>\n Use this encoding to read and write files.\n");
|
|
52
|
+
|
|
53
|
+
print(" -r=<DEPTH> or --recurse=<DEPTH>\n Descend into src directories.\n");
|
|
54
|
+
print(" -x=<EXT>[,EXT]... or --ext=<EXT>[,EXT]...\n Scan source files with the given extension/s (defaults to js).\n");
|
|
55
|
+
print(" -a or --allfunctions\n Include all functions, even undocumented ones.\n");
|
|
56
|
+
print(" -A or --Allfunctions\n Include all functions, even undocumented, underscored ones.\n");
|
|
57
|
+
print(" -p or --private\n Include symbols tagged as private.\n");
|
|
58
|
+
print(" -o=<PATH> or --out=<PATH>\n Print log messages to a file (defaults to stdout).\n");
|
|
59
|
+
print(" -h or --help\n Show this message and exit.\n");
|
|
60
|
+
|
|
61
|
+
java.lang.System.exit(0);
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @param {string[]} srcFiles Paths to files to be documented
|
|
66
|
+
* @return {DocFile[]}
|
|
67
|
+
*/
|
|
68
|
+
parse: function(srcFiles) {
|
|
69
|
+
var files = [];
|
|
70
|
+
|
|
71
|
+
if (typeof srcFiles == "string") srcFiles = [srcFiles];
|
|
72
|
+
var parser = new JsParse();
|
|
73
|
+
|
|
74
|
+
srcFiles = srcFiles.sort();
|
|
75
|
+
|
|
76
|
+
var docs = new DocFileGroup();
|
|
77
|
+
|
|
78
|
+
// handle setting up relationships between symbols here
|
|
79
|
+
for (var f = 0; f < srcFiles.length; f++) {
|
|
80
|
+
var srcFile = srcFiles[f];
|
|
81
|
+
|
|
82
|
+
LOG.inform("Tokenizing: file "+(f+1)+", "+srcFile);
|
|
83
|
+
var src = IO.readFile(srcFile);
|
|
84
|
+
|
|
85
|
+
var tokens = new TokenReader(src).tokenize();
|
|
86
|
+
LOG.inform("\t"+tokens.length+" tokens found.");
|
|
87
|
+
var ts = new TokenStream(tokens);
|
|
88
|
+
|
|
89
|
+
var file = new DocFile(srcFile);
|
|
90
|
+
parser.parse(ts);
|
|
91
|
+
LOG.inform("\t"+parser.symbols.length+" symbols found.");
|
|
92
|
+
|
|
93
|
+
file.addSymbols(parser.symbols, JsDoc.opt);
|
|
94
|
+
if (parser.overview) file.overview = parser.overview;
|
|
95
|
+
|
|
96
|
+
docs.addDocFile(file);
|
|
97
|
+
}
|
|
98
|
+
return docs;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/** Override this dummy function in your template. */
|
|
103
|
+
function publish() {}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileOverview
|
|
3
|
+
* @name JsHilite
|
|
4
|
+
* @author Michael Mathews micmath@gmail.com
|
|
5
|
+
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/JsHilite.js $
|
|
6
|
+
* @revision $Id: JsHilite.js 300 2007-11-11 16:51:53Z micmath $
|
|
7
|
+
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
+
* (See the accompanying README file for full details.)
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
require("app/JsToke.js");
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @class Turn source code into HTML with tokens marked for hilighting with CSS.
|
|
15
|
+
*/
|
|
16
|
+
function JsHilite(sourceCode, charset) {
|
|
17
|
+
this.tokenizer = new TokenReader(sourceCode);
|
|
18
|
+
this.tokenizer.keepComments = true;
|
|
19
|
+
this.tokenizer.keepDocs = true;
|
|
20
|
+
this.tokenizer.keepWhite = true;
|
|
21
|
+
Token.prototype.toString = function() {
|
|
22
|
+
return "<span class=\""+this.type+"\">"+this.data.replace(/</g, "<")+"</span>";
|
|
23
|
+
}
|
|
24
|
+
if (!charset) charset = "utf-8";
|
|
25
|
+
|
|
26
|
+
this.header = '<html><head><meta http-equiv="content-type" content="text/html; charset='+charset+'"> '+
|
|
27
|
+
"<style>\n\
|
|
28
|
+
.KEYW {color: #933;}\n\
|
|
29
|
+
.COMM {color: #bbb; font-style: italic;}\n\
|
|
30
|
+
.NUMB {color: #393;}\n\
|
|
31
|
+
.STRN {color: #393;}\n\
|
|
32
|
+
.REGX {color: #339;}\n\
|
|
33
|
+
.linenumber {border-right: 1px dotted #666; color: #666; font-style: normal;}\n\
|
|
34
|
+
</style></head><body><pre>";
|
|
35
|
+
this.footer = "</pre></body></html>";
|
|
36
|
+
this.showLinenumbers = true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
JsHilite.prototype.hilite = function() {
|
|
40
|
+
var hilited = this.tokenizer.tokenize().join("");
|
|
41
|
+
var linenumber = 1;
|
|
42
|
+
if (this.showLinenumbers) hilited = hilited.replace(/(^|\n)/g, function(m){return m+"<span class='linenumber'>"+((linenumber<10)? " ":"")+((linenumber<100)? " ":"")+(linenumber++)+"</span> "});
|
|
43
|
+
|
|
44
|
+
return this.header+hilited+this.footer;
|
|
45
|
+
}
|
data/jsdoc/app/JsIO.js
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileOverview
|
|
3
|
+
* @name JsIO
|
|
4
|
+
* @author Michael Mathews micmath@gmail.com
|
|
5
|
+
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/JsIO.js $
|
|
6
|
+
* @revision $Id: JsIO.js 303 2007-11-11 18:59:08Z micmath $
|
|
7
|
+
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
+
* (See the accompanying README file for full details.)
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// shortcuts
|
|
12
|
+
FileWriter = Packages.java.io.FileWriter;
|
|
13
|
+
File = Packages.java.io.File;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @class Friendly interface to Java file operations. Requires Rhino.
|
|
17
|
+
* @static
|
|
18
|
+
*/
|
|
19
|
+
var IO = {
|
|
20
|
+
FileSeparator: Packages.java.io.File.separator,
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Use to save content to a file.
|
|
24
|
+
* @param {string} outDir Path to directory to save into.
|
|
25
|
+
* @param {string} fileName Name to use for the new file.
|
|
26
|
+
* @param {string} content To write to the new file.
|
|
27
|
+
*/
|
|
28
|
+
saveFile: function(outDir, fileName, content) {
|
|
29
|
+
var out = new Packages.java.io.PrintWriter(
|
|
30
|
+
new Packages.java.io.OutputStreamWriter(
|
|
31
|
+
new Packages.java.io.FileOutputStream(outDir+IO.FileSeparator+fileName),
|
|
32
|
+
IO.encoding
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
out.write(content);
|
|
36
|
+
out.flush();
|
|
37
|
+
out.close();
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Gets the contents of a file.
|
|
42
|
+
* @param {path|url} url
|
|
43
|
+
* @return {string} The contents of the file at the given location.
|
|
44
|
+
*/
|
|
45
|
+
readFile: function(path) {
|
|
46
|
+
return readFile(path, IO.encoding);
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Use to copy a file from one directory to another. Can take binary files too.
|
|
51
|
+
* @param {string} inFile Path to the source file.
|
|
52
|
+
* @param {string} outDir Path to directory to save into.
|
|
53
|
+
* @param {string} fileName Name to use for the new file.
|
|
54
|
+
*/
|
|
55
|
+
copyFile: function(inFile, outDir, fileName) {
|
|
56
|
+
if (fileName == null) fileName = Util.fileName(inFile);
|
|
57
|
+
|
|
58
|
+
var inFile = new File(inFile);
|
|
59
|
+
var outFile = new File(outDir+IO.FileSeparator+fileName);
|
|
60
|
+
|
|
61
|
+
var bis = new Packages.java.io.BufferedInputStream(new Packages.java.io.FileInputStream(inFile), 4096);
|
|
62
|
+
var bos = new Packages.java.io.BufferedOutputStream(new Packages.java.io.FileOutputStream(outFile), 4096);
|
|
63
|
+
var theChar;
|
|
64
|
+
while ((theChar = bis.read()) != -1) {
|
|
65
|
+
bos.write(theChar);
|
|
66
|
+
}
|
|
67
|
+
bos.close();
|
|
68
|
+
bis.close();
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Use to create a new directory.
|
|
73
|
+
* @param {string} dirname Path of directory you wish to create.
|
|
74
|
+
*/
|
|
75
|
+
makeDir: function(dirName) {
|
|
76
|
+
(new File(dirName)).mkdir();
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Get recursive list of files in a directory.
|
|
81
|
+
* @param {array} dirs Paths to directories to search.
|
|
82
|
+
* @param {int} recurse How many levels to descend, defaults to 1.
|
|
83
|
+
* @return {array} Paths to found files.
|
|
84
|
+
*/
|
|
85
|
+
ls: function(dir, recurse, allFiles, path) {
|
|
86
|
+
if (path === undefined) { // initially
|
|
87
|
+
var allFiles = [];
|
|
88
|
+
var path = [dir];
|
|
89
|
+
}
|
|
90
|
+
if (path.length == 0) return allFiles;
|
|
91
|
+
if (recurse === undefined) recurse = 1;
|
|
92
|
+
|
|
93
|
+
dir = new File(dir);
|
|
94
|
+
if (!dir.directory) return [String(dir)];
|
|
95
|
+
var files = dir.list();
|
|
96
|
+
|
|
97
|
+
for (var f = 0; f < files.length; f++) {
|
|
98
|
+
var file = String(files[f]);
|
|
99
|
+
if (file.match(/^\.[^\.\/\\]/)) continue; // skip dot files
|
|
100
|
+
|
|
101
|
+
if ((new File(path.join("/")+"/"+file)).list()) { // it's a directory
|
|
102
|
+
path.push(file);
|
|
103
|
+
if (path.length-1 < recurse) IO.ls(path.join("/"), recurse, allFiles, path);
|
|
104
|
+
path.pop();
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
allFiles.push((path.join("/")+"/"+file).replace("//", "/"));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return allFiles;
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Check if a filepath exists.
|
|
116
|
+
* @author vinces1979
|
|
117
|
+
*/
|
|
118
|
+
exists: function(path) {
|
|
119
|
+
file = new File(path);
|
|
120
|
+
|
|
121
|
+
if (file.isDirectory()){
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
if (!file.exists()){
|
|
125
|
+
LOG.inform('Path not found: ' + path);
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (!file.canRead()){
|
|
129
|
+
LOG.inform('Path not readable: ' + path);
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
return true;
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Create an open filehandle.
|
|
137
|
+
* @param {string} path Path to file to open.
|
|
138
|
+
* @param {boolean} append Open in append mode?
|
|
139
|
+
* @return {FileWriter} A filehandle that can write(string) and close().
|
|
140
|
+
*/
|
|
141
|
+
open: function(path, append) {
|
|
142
|
+
var append = true;
|
|
143
|
+
var outFile = new Packages.java.io.File(path);
|
|
144
|
+
var out = new Packages.java.io.PrintWriter(
|
|
145
|
+
new Packages.java.io.OutputStreamWriter(
|
|
146
|
+
new Packages.java.io.FileOutputStream(outFile, append),
|
|
147
|
+
IO.encoding
|
|
148
|
+
)
|
|
149
|
+
);
|
|
150
|
+
return out;
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
setEncoding: function(encoding) {
|
|
154
|
+
if (/ISO-8859-([0-9]+)/i.test(encoding)) {
|
|
155
|
+
IO.encoding = "ISO8859_"+RegExp.$1;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
IO.encoding = encoding
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
IO.encoding = "utf-8";
|