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.
Files changed (270) hide show
  1. data/History.txt +4 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +269 -0
  4. data/README.txt +67 -0
  5. data/Rakefile +4 -0
  6. data/app_generators/sproutcore/USAGE +5 -0
  7. data/app_generators/sproutcore/sproutcore_generator.rb +66 -0
  8. data/app_generators/sproutcore/templates/README +77 -0
  9. data/app_generators/sproutcore/templates/environment.yml +4 -0
  10. data/bin/sc-build +145 -0
  11. data/bin/sc-gen +24 -0
  12. data/bin/sc-server +63 -0
  13. data/bin/sproutcore +21 -0
  14. data/clients/sc_docs/controllers/docs.js +118 -0
  15. data/clients/sc_docs/core.js +19 -0
  16. data/clients/sc_docs/english.lproj/body.css +159 -0
  17. data/clients/sc_docs/english.lproj/body.rhtml +33 -0
  18. data/clients/sc_docs/english.lproj/controls.css +0 -0
  19. data/clients/sc_docs/english.lproj/icons/small/next.png +0 -0
  20. data/clients/sc_docs/english.lproj/icons/small/reset.png +0 -0
  21. data/clients/sc_docs/english.lproj/images/gradients.png +0 -0
  22. data/clients/sc_docs/english.lproj/images/indicator.gif +0 -0
  23. data/clients/sc_docs/english.lproj/images/toolbar.png +0 -0
  24. data/clients/sc_docs/english.lproj/no_docs.rhtml +7 -0
  25. data/clients/sc_docs/english.lproj/strings.js +14 -0
  26. data/clients/sc_docs/english.lproj/warning.rhtml +6 -0
  27. data/clients/sc_docs/fixtures/doc.js +11 -0
  28. data/clients/sc_docs/main.js +21 -0
  29. data/clients/sc_docs/models/doc.js +9 -0
  30. data/clients/sc_docs/tests/controllers/docs.rhtml +21 -0
  31. data/clients/sc_docs/tests/models/doc.rhtml +21 -0
  32. data/clients/sc_docs/tests/views/doc_frame.rhtml +21 -0
  33. data/clients/sc_docs/tests/views/doc_label_view.rhtml +21 -0
  34. data/clients/sc_docs/views/doc_frame.js +33 -0
  35. data/clients/sc_docs/views/doc_label.js +20 -0
  36. data/clients/sc_test_runner/controllers/runner.js +175 -0
  37. data/clients/sc_test_runner/core.js +19 -0
  38. data/clients/sc_test_runner/english.lproj/body.css +151 -0
  39. data/clients/sc_test_runner/english.lproj/body.rhtml +35 -0
  40. data/clients/sc_test_runner/english.lproj/controls.css +0 -0
  41. data/clients/sc_test_runner/english.lproj/icons/small/next.png +0 -0
  42. data/clients/sc_test_runner/english.lproj/icons/small/reset.png +0 -0
  43. data/clients/sc_test_runner/english.lproj/images/gradients.png +0 -0
  44. data/clients/sc_test_runner/english.lproj/images/indicator.gif +0 -0
  45. data/clients/sc_test_runner/english.lproj/images/toolbar.png +0 -0
  46. data/clients/sc_test_runner/english.lproj/no_tests.rhtml +6 -0
  47. data/clients/sc_test_runner/english.lproj/strings.js +14 -0
  48. data/clients/sc_test_runner/english.lproj/warning.rhtml +6 -0
  49. data/clients/sc_test_runner/fixtures/test.js +12 -0
  50. data/clients/sc_test_runner/main.js +26 -0
  51. data/clients/sc_test_runner/models/test.js +11 -0
  52. data/clients/sc_test_runner/views/runner_frame.js +72 -0
  53. data/clients/sc_test_runner/views/test_label.js +20 -0
  54. data/config/hoe.rb +70 -0
  55. data/config/requirements.rb +17 -0
  56. data/environment.yml +9 -0
  57. data/frameworks/prototype/prototype.js +4186 -0
  58. data/frameworks/sproutcore/Core.js +378 -0
  59. data/frameworks/sproutcore/README +3 -0
  60. data/frameworks/sproutcore/controllers/array.js +236 -0
  61. data/frameworks/sproutcore/controllers/collection.js +305 -0
  62. data/frameworks/sproutcore/controllers/controller.js +323 -0
  63. data/frameworks/sproutcore/controllers/object.js +372 -0
  64. data/frameworks/sproutcore/drag/drag.js +549 -0
  65. data/frameworks/sproutcore/drag/drag_data_source.js +32 -0
  66. data/frameworks/sproutcore/drag/drag_source.js +64 -0
  67. data/frameworks/sproutcore/drag/drop_target.js +153 -0
  68. data/frameworks/sproutcore/english.lproj/blank.gif +0 -0
  69. data/frameworks/sproutcore/english.lproj/buttons.css +589 -0
  70. data/frameworks/sproutcore/english.lproj/buttons.png +0 -0
  71. data/frameworks/sproutcore/english.lproj/inline_text_editor.css +21 -0
  72. data/frameworks/sproutcore/english.lproj/menu.css +121 -0
  73. data/frameworks/sproutcore/english.lproj/panels/background-fat.jpg +0 -0
  74. data/frameworks/sproutcore/english.lproj/panels/background-thin.jpg +0 -0
  75. data/frameworks/sproutcore/english.lproj/panels/bottom-edge.png +0 -0
  76. data/frameworks/sproutcore/english.lproj/panels/bottom-left-corner.png +0 -0
  77. data/frameworks/sproutcore/english.lproj/panels/bottom-right-corner.png +0 -0
  78. data/frameworks/sproutcore/english.lproj/panels/left-edge.png +0 -0
  79. data/frameworks/sproutcore/english.lproj/panels/overlay.png +0 -0
  80. data/frameworks/sproutcore/english.lproj/panels/right-edge.png +0 -0
  81. data/frameworks/sproutcore/english.lproj/panels/top-edge.png +0 -0
  82. data/frameworks/sproutcore/english.lproj/panels/top-left-corner.png +0 -0
  83. data/frameworks/sproutcore/english.lproj/panels/top-right-corner.png +0 -0
  84. data/frameworks/sproutcore/english.lproj/panes.css +155 -0
  85. data/frameworks/sproutcore/english.lproj/picker.css +22 -0
  86. data/frameworks/sproutcore/english.lproj/strings.js +15 -0
  87. data/frameworks/sproutcore/english.lproj/tab.css +23 -0
  88. data/frameworks/sproutcore/english.lproj/tests.css +67 -0
  89. data/frameworks/sproutcore/english.lproj/theme.css +77 -0
  90. data/frameworks/sproutcore/foundation/animator.js +670 -0
  91. data/frameworks/sproutcore/foundation/application.js +199 -0
  92. data/frameworks/sproutcore/foundation/array.js +348 -0
  93. data/frameworks/sproutcore/foundation/benchmark.js +211 -0
  94. data/frameworks/sproutcore/foundation/binding.js +384 -0
  95. data/frameworks/sproutcore/foundation/date.js +357 -0
  96. data/frameworks/sproutcore/foundation/error.js +39 -0
  97. data/frameworks/sproutcore/foundation/input_manager.js +153 -0
  98. data/frameworks/sproutcore/foundation/json.js +296 -0
  99. data/frameworks/sproutcore/foundation/mock.js +42 -0
  100. data/frameworks/sproutcore/foundation/node_descriptor.js +56 -0
  101. data/frameworks/sproutcore/foundation/object.js +777 -0
  102. data/frameworks/sproutcore/foundation/observable.js +451 -0
  103. data/frameworks/sproutcore/foundation/page.js +63 -0
  104. data/frameworks/sproutcore/foundation/path_module.js +413 -0
  105. data/frameworks/sproutcore/foundation/responder.js +310 -0
  106. data/frameworks/sproutcore/foundation/routes.js +371 -0
  107. data/frameworks/sproutcore/foundation/run_loop.js +21 -0
  108. data/frameworks/sproutcore/foundation/server.js +491 -0
  109. data/frameworks/sproutcore/foundation/set.js +96 -0
  110. data/frameworks/sproutcore/foundation/string.js +149 -0
  111. data/frameworks/sproutcore/foundation/undo_manager.js +186 -0
  112. data/frameworks/sproutcore/foundation/unittest.js +622 -0
  113. data/frameworks/sproutcore/foundation/utils.js +61 -0
  114. data/frameworks/sproutcore/globals/panels.js +182 -0
  115. data/frameworks/sproutcore/globals/popups.js +60 -0
  116. data/frameworks/sproutcore/globals/window.js +381 -0
  117. data/frameworks/sproutcore/lib/index.rhtml +66 -0
  118. data/frameworks/sproutcore/models/collection.js +395 -0
  119. data/frameworks/sproutcore/models/record.js +622 -0
  120. data/frameworks/sproutcore/models/store.js +295 -0
  121. data/frameworks/sproutcore/panes/dialog.js +16 -0
  122. data/frameworks/sproutcore/panes/manager.js +164 -0
  123. data/frameworks/sproutcore/panes/menu.js +45 -0
  124. data/frameworks/sproutcore/panes/overlay.js +231 -0
  125. data/frameworks/sproutcore/panes/pane.js +90 -0
  126. data/frameworks/sproutcore/panes/panel.js +19 -0
  127. data/frameworks/sproutcore/panes/picker.js +45 -0
  128. data/frameworks/sproutcore/tests/controllers/array.rhtml +86 -0
  129. data/frameworks/sproutcore/tests/controllers/controller.rhtml +273 -0
  130. data/frameworks/sproutcore/tests/controllers/object.rhtml +327 -0
  131. data/frameworks/sproutcore/tests/foundation/application.rhtml +125 -0
  132. data/frameworks/sproutcore/tests/foundation/array.rhtml +221 -0
  133. data/frameworks/sproutcore/tests/foundation/object.rhtml +69 -0
  134. data/frameworks/sproutcore/tests/globals/window.rhtml +45 -0
  135. data/frameworks/sproutcore/tests/panes/pane.rhtml +88 -0
  136. data/frameworks/sproutcore/tests/views/collection.rhtml +137 -0
  137. data/frameworks/sproutcore/tests/views/popup_button.rhtml +115 -0
  138. data/frameworks/sproutcore/tests/views/text_field.rhtml +37 -0
  139. data/frameworks/sproutcore/validators/credit_card.js +92 -0
  140. data/frameworks/sproutcore/validators/date.js +36 -0
  141. data/frameworks/sproutcore/validators/email.js +29 -0
  142. data/frameworks/sproutcore/validators/not_empty.js +24 -0
  143. data/frameworks/sproutcore/validators/number.js +55 -0
  144. data/frameworks/sproutcore/validators/password.js +78 -0
  145. data/frameworks/sproutcore/validators/validator.js +304 -0
  146. data/frameworks/sproutcore/views/button.js +425 -0
  147. data/frameworks/sproutcore/views/checkbox_field.js +30 -0
  148. data/frameworks/sproutcore/views/collection.js +1521 -0
  149. data/frameworks/sproutcore/views/container.js +62 -0
  150. data/frameworks/sproutcore/views/error_explanation.js +45 -0
  151. data/frameworks/sproutcore/views/field.js +214 -0
  152. data/frameworks/sproutcore/views/filter_button.js +29 -0
  153. data/frameworks/sproutcore/views/form.js +591 -0
  154. data/frameworks/sproutcore/views/image.js +141 -0
  155. data/frameworks/sproutcore/views/inline_text_editor.js +96 -0
  156. data/frameworks/sproutcore/views/label.js +176 -0
  157. data/frameworks/sproutcore/views/menu_item.js +90 -0
  158. data/frameworks/sproutcore/views/pagination.js +54 -0
  159. data/frameworks/sproutcore/views/popup_button.js +86 -0
  160. data/frameworks/sproutcore/views/popup_menu.js +137 -0
  161. data/frameworks/sproutcore/views/progress.js +100 -0
  162. data/frameworks/sproutcore/views/radio_field.js +107 -0
  163. data/frameworks/sproutcore/views/radio_group.js +48 -0
  164. data/frameworks/sproutcore/views/segmented.js +80 -0
  165. data/frameworks/sproutcore/views/select_field.js +272 -0
  166. data/frameworks/sproutcore/views/spinner.js +11 -0
  167. data/frameworks/sproutcore/views/tab.js +126 -0
  168. data/frameworks/sproutcore/views/text_field.js +179 -0
  169. data/frameworks/sproutcore/views/textarea_field.js +14 -0
  170. data/frameworks/sproutcore/views/toolbar.js +29 -0
  171. data/frameworks/sproutcore/views/view.js +1389 -0
  172. data/frameworks/sproutcore/views/workspace.js +170 -0
  173. data/generators/client/README +3 -0
  174. data/generators/client/USAGE +12 -0
  175. data/generators/client/client_generator.rb +53 -0
  176. data/generators/client/templates/core.js +19 -0
  177. data/generators/client/templates/english.lproj/body.css +0 -0
  178. data/generators/client/templates/english.lproj/body.rhtml +3 -0
  179. data/generators/client/templates/english.lproj/controls.css +0 -0
  180. data/generators/client/templates/english.lproj/strings.js +14 -0
  181. data/generators/client/templates/main.js +37 -0
  182. data/generators/controller/USAGE +16 -0
  183. data/generators/controller/controller_generator.rb +51 -0
  184. data/generators/controller/templates/controller.js +21 -0
  185. data/generators/controller/templates/test.rhtml +21 -0
  186. data/generators/framework/README +7 -0
  187. data/generators/framework/USAGE +12 -0
  188. data/generators/framework/framework_generator.rb +53 -0
  189. data/generators/framework/templates/core.js +20 -0
  190. data/generators/framework/templates/english.lproj/body.css +0 -0
  191. data/generators/framework/templates/english.lproj/body.rhtml +3 -0
  192. data/generators/framework/templates/english.lproj/controls.css +0 -0
  193. data/generators/framework/templates/english.lproj/strings.js +14 -0
  194. data/generators/language/USAGE +16 -0
  195. data/generators/language/language_generator.rb +47 -0
  196. data/generators/language/templates/strings.js +10 -0
  197. data/generators/model/USAGE +24 -0
  198. data/generators/model/model_generator.rb +55 -0
  199. data/generators/model/templates/fixture.js +11 -0
  200. data/generators/model/templates/model.js +20 -0
  201. data/generators/model/templates/test.rhtml +21 -0
  202. data/generators/test/USAGE +16 -0
  203. data/generators/test/templates/test.rhtml +21 -0
  204. data/generators/test/test_generator.rb +47 -0
  205. data/generators/view/USAGE +16 -0
  206. data/generators/view/templates/test.rhtml +21 -0
  207. data/generators/view/templates/view.js +20 -0
  208. data/generators/view/view_generator.rb +51 -0
  209. data/jsdoc/README.txt +119 -0
  210. data/jsdoc/app/DocFile.js +137 -0
  211. data/jsdoc/app/DocTag.js +110 -0
  212. data/jsdoc/app/Doclet.js +63 -0
  213. data/jsdoc/app/Dumper.js +143 -0
  214. data/jsdoc/app/JsDoc.js +103 -0
  215. data/jsdoc/app/JsHilite.js +45 -0
  216. data/jsdoc/app/JsIO.js +163 -0
  217. data/jsdoc/app/JsParse.js +385 -0
  218. data/jsdoc/app/JsPlate.js +130 -0
  219. data/jsdoc/app/JsTestrun.js +129 -0
  220. data/jsdoc/app/JsToke.js +564 -0
  221. data/jsdoc/app/Symbol.js +298 -0
  222. data/jsdoc/app/Transformer.js +14 -0
  223. data/jsdoc/app/Util.js +97 -0
  224. data/jsdoc/app/js.jar +0 -0
  225. data/jsdoc/app/run.js +144 -0
  226. data/jsdoc/plugins/min.js +316 -0
  227. data/jsdoc/plugins/strip.js +20 -0
  228. data/jsdoc/templates/sproutcore/class.tmpl +438 -0
  229. data/jsdoc/templates/sproutcore/default.css +241 -0
  230. data/jsdoc/templates/sproutcore/index.html +13 -0
  231. data/jsdoc/templates/sproutcore/index.tmpl +21 -0
  232. data/jsdoc/templates/sproutcore/prototype.js +4186 -0
  233. data/jsdoc/templates/sproutcore/publish.js +236 -0
  234. data/jsdoc/templates/sproutcore/splash.html +7 -0
  235. data/lib/sproutcore/build_tools/html_builder.rb +88 -0
  236. data/lib/sproutcore/build_tools/resource_builder.rb +194 -0
  237. data/lib/sproutcore/build_tools.rb +44 -0
  238. data/lib/sproutcore/bundle.rb +517 -0
  239. data/lib/sproutcore/bundle_manifest.rb +397 -0
  240. data/lib/sproutcore/generator_helper.rb +170 -0
  241. data/lib/sproutcore/helpers/capture_helper.rb +42 -0
  242. data/lib/sproutcore/helpers/static_helper.rb +80 -0
  243. data/lib/sproutcore/helpers/tag_helper.rb +110 -0
  244. data/lib/sproutcore/helpers/text_helper.rb +336 -0
  245. data/lib/sproutcore/helpers.rb +3 -0
  246. data/lib/sproutcore/jsdoc.rb +40 -0
  247. data/lib/sproutcore/jsmin.rb +247 -0
  248. data/lib/sproutcore/library.rb +258 -0
  249. data/lib/sproutcore/merb/bundle_controller.rb +179 -0
  250. data/lib/sproutcore/merb/router.rb +43 -0
  251. data/lib/sproutcore/merb.rb +27 -0
  252. data/lib/sproutcore/version.rb +9 -0
  253. data/lib/sproutcore/view_helpers/button_views.rb +302 -0
  254. data/lib/sproutcore/view_helpers/core_views.rb +284 -0
  255. data/lib/sproutcore/view_helpers/form_views.rb +258 -0
  256. data/lib/sproutcore/view_helpers/menu_views.rb +94 -0
  257. data/lib/sproutcore/view_helpers.rb +628 -0
  258. data/lib/sproutcore.rb +30 -0
  259. data/script/destroy +14 -0
  260. data/script/generate +14 -0
  261. data/script/txt2html +74 -0
  262. data/setup.rb +1585 -0
  263. data/spec/spec.opts +1 -0
  264. data/spec/spec_helper.rb +7 -0
  265. data/spec/sproutcore_spec.rb +11 -0
  266. data/tasks/deployment.rake +34 -0
  267. data/tasks/environment.rake +7 -0
  268. data/tasks/rspec.rake +21 -0
  269. data/tasks/website.rake +17 -0
  270. metadata +365 -0
@@ -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
+ }
@@ -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
+ };
@@ -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, "&lt;")+"</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";