sproutcore 1.6.0.rc.1-x86-mingw32 → 1.6.0.rc.2-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. data/CHANGELOG +31 -6
  2. data/{History.txt → History.rdoc} +0 -0
  3. data/{README.txt → README.rdoc} +3 -2
  4. data/Rakefile +15 -15
  5. data/{Todo.txt → Todo.rdoc} +0 -0
  6. data/VERSION.yml +1 -1
  7. data/lib/buildtasks/manifest.rake +11 -4
  8. data/lib/buildtasks/target.rake +20 -23
  9. data/lib/frameworks/sproutcore/CHANGELOG.md +36 -0
  10. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +2 -42
  11. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +2 -1
  12. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +3 -1
  13. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +5 -5
  14. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +29 -12
  15. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +4 -4
  16. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +9 -0
  17. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +110 -0
  18. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +63 -26
  19. data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +25 -5
  20. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +3 -3
  21. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +26 -3
  22. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +74 -53
  23. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +6 -7
  24. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +6 -3
  25. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +25 -1
  26. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +1 -3
  27. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +20 -1
  28. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +1 -1
  29. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +46 -49
  30. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +23 -0
  31. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +14 -2
  32. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +2 -76
  33. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +3348 -1591
  34. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +25 -5
  35. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +0 -3
  36. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +10 -5
  37. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/requiredObjectForPropertyPath.js +29 -0
  38. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +98 -0
  39. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +2 -2
  40. data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +1 -1
  41. data/lib/gen/language/Buildfile +1 -1
  42. data/lib/sproutcore.rb +1 -14
  43. data/lib/sproutcore/buildfile/string_ext.rb +0 -4
  44. data/lib/sproutcore/helpers/cssmin.rb +44 -59
  45. data/lib/sproutcore/helpers/text_helper.rb +11 -13
  46. data/lib/sproutcore/models/manifest.rb +4 -4
  47. data/lib/sproutcore/models/target.rb +11 -110
  48. data/lib/sproutcore/rack.rb +0 -1
  49. data/lib/sproutcore/rack/dev.rb +0 -1
  50. data/lib/sproutcore/rack/proxy.rb +9 -8
  51. data/lib/sproutcore/rack/service.rb +1 -1
  52. data/lib/sproutcore/render_engines/haml.rb +2 -5
  53. data/lib/sproutcore/tools/build.rb +2 -0
  54. data/lib/sproutcore/tools/docs.rb +7 -36
  55. data/lib/sproutcore/tools/manifest.rb +1 -1
  56. data/spec/buildtasks/target_spec.rb +9 -0
  57. data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +1 -1
  58. data/sproutcore.gemspec +3 -4
  59. data/vendor/chance/lib/chance/instance.rb +5 -8
  60. metadata +41 -207
  61. data/lib/doc_templates/jsdoc/allclasses.tmpl +0 -17
  62. data/lib/doc_templates/jsdoc/allfiles.tmpl +0 -56
  63. data/lib/doc_templates/jsdoc/class.tmpl +0 -487
  64. data/lib/doc_templates/jsdoc/index.tmpl +0 -38
  65. data/lib/doc_templates/jsdoc/publish.js +0 -170
  66. data/lib/doc_templates/jsdoc/static/default.css +0 -162
  67. data/lib/doc_templates/jsdoc/static/header.html +0 -2
  68. data/lib/doc_templates/jsdoc/static/index.html +0 -19
  69. data/lib/doc_templates/jsdoc/symbol.tmpl +0 -35
  70. data/lib/doc_templates/sproutcore/allclasses.tmpl +0 -0
  71. data/lib/doc_templates/sproutcore/allfiles.tmpl +0 -56
  72. data/lib/doc_templates/sproutcore/class.tmpl +0 -674
  73. data/lib/doc_templates/sproutcore/classes-json.tmpl +0 -55
  74. data/lib/doc_templates/sproutcore/index.tmpl +0 -62
  75. data/lib/doc_templates/sproutcore/publish.js +0 -346
  76. data/lib/doc_templates/sproutcore/static/default.css +0 -258
  77. data/lib/doc_templates/sproutcore/static/header.html +0 -2
  78. data/lib/doc_templates/sproutcore/static/index.html +0 -19
  79. data/lib/doc_templates/sproutcore/symbol.tmpl +0 -35
  80. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +0 -55
  81. data/lib/sproutcore/rack/docs.rb +0 -24
  82. data/spec/fixtures/real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER +0 -0
  83. data/vendor/jsdoc/README.txt +0 -151
  84. data/vendor/jsdoc/app/frame.js +0 -33
  85. data/vendor/jsdoc/app/frame/Chain.js +0 -102
  86. data/vendor/jsdoc/app/frame/Dumper.js +0 -144
  87. data/vendor/jsdoc/app/frame/Hash.js +0 -47
  88. data/vendor/jsdoc/app/frame/Link.js +0 -142
  89. data/vendor/jsdoc/app/frame/Namespace.js +0 -10
  90. data/vendor/jsdoc/app/frame/Opt.js +0 -134
  91. data/vendor/jsdoc/app/frame/Reflection.js +0 -26
  92. data/vendor/jsdoc/app/frame/String.js +0 -93
  93. data/vendor/jsdoc/app/frame/Testrun.js +0 -129
  94. data/vendor/jsdoc/app/handlers/FOODOC.js +0 -26
  95. data/vendor/jsdoc/app/handlers/XMLDOC.js +0 -26
  96. data/vendor/jsdoc/app/handlers/XMLDOC/DomReader.js +0 -159
  97. data/vendor/jsdoc/app/handlers/XMLDOC/XMLDoc.js +0 -16
  98. data/vendor/jsdoc/app/handlers/XMLDOC/XMLParse.js +0 -292
  99. data/vendor/jsdoc/app/lib/JSDOC.js +0 -98
  100. data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +0 -200
  101. data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +0 -294
  102. data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +0 -162
  103. data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +0 -100
  104. data/vendor/jsdoc/app/lib/JSDOC/Lang.js +0 -144
  105. data/vendor/jsdoc/app/lib/JSDOC/Parser.js +0 -109
  106. data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +0 -33
  107. data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +0 -681
  108. data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -226
  109. data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +0 -41
  110. data/vendor/jsdoc/app/lib/JSDOC/Token.js +0 -18
  111. data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +0 -332
  112. data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +0 -133
  113. data/vendor/jsdoc/app/lib/JSDOC/Util.js +0 -32
  114. data/vendor/jsdoc/app/lib/JSDOC/Walker.js +0 -453
  115. data/vendor/jsdoc/app/main.js +0 -74
  116. data/vendor/jsdoc/app/plugins/commentSrcJson.js +0 -19
  117. data/vendor/jsdoc/app/plugins/frameworkPrototype.js +0 -16
  118. data/vendor/jsdoc/app/plugins/functionCall.js +0 -10
  119. data/vendor/jsdoc/app/plugins/publishSrcHilite.js +0 -62
  120. data/vendor/jsdoc/app/plugins/sproutcoreTags.js +0 -26
  121. data/vendor/jsdoc/app/plugins/symbolLink.js +0 -9
  122. data/vendor/jsdoc/app/plugins/tagParamConfig.js +0 -31
  123. data/vendor/jsdoc/app/plugins/tagSynonyms.js +0 -43
  124. data/vendor/jsdoc/app/run.js +0 -346
  125. data/vendor/jsdoc/app/t/TestDoc.js +0 -144
  126. data/vendor/jsdoc/app/t/runner.js +0 -13
  127. data/vendor/jsdoc/app/test.js +0 -304
  128. data/vendor/jsdoc/app/test/addon.js +0 -24
  129. data/vendor/jsdoc/app/test/anon_inner.js +0 -14
  130. data/vendor/jsdoc/app/test/augments.js +0 -31
  131. data/vendor/jsdoc/app/test/augments2.js +0 -26
  132. data/vendor/jsdoc/app/test/borrows.js +0 -41
  133. data/vendor/jsdoc/app/test/borrows2.js +0 -23
  134. data/vendor/jsdoc/app/test/config.js +0 -22
  135. data/vendor/jsdoc/app/test/constructs.js +0 -18
  136. data/vendor/jsdoc/app/test/encoding.js +0 -10
  137. data/vendor/jsdoc/app/test/encoding_other.js +0 -12
  138. data/vendor/jsdoc/app/test/functions_anon.js +0 -39
  139. data/vendor/jsdoc/app/test/functions_nested.js +0 -33
  140. data/vendor/jsdoc/app/test/global.js +0 -13
  141. data/vendor/jsdoc/app/test/globals.js +0 -25
  142. data/vendor/jsdoc/app/test/ignore.js +0 -10
  143. data/vendor/jsdoc/app/test/inner.js +0 -16
  144. data/vendor/jsdoc/app/test/jsdoc_test.js +0 -477
  145. data/vendor/jsdoc/app/test/lend.js +0 -33
  146. data/vendor/jsdoc/app/test/memberof.js +0 -20
  147. data/vendor/jsdoc/app/test/memberof_constructor.js +0 -15
  148. data/vendor/jsdoc/app/test/name.js +0 -19
  149. data/vendor/jsdoc/app/test/namespace_nested.js +0 -23
  150. data/vendor/jsdoc/app/test/nocode.js +0 -13
  151. data/vendor/jsdoc/app/test/oblit_anon.js +0 -20
  152. data/vendor/jsdoc/app/test/overview.js +0 -20
  153. data/vendor/jsdoc/app/test/param_inline.js +0 -37
  154. data/vendor/jsdoc/app/test/params_optional.js +0 -8
  155. data/vendor/jsdoc/app/test/prototype.js +0 -17
  156. data/vendor/jsdoc/app/test/prototype_nested.js +0 -9
  157. data/vendor/jsdoc/app/test/prototype_oblit.js +0 -13
  158. data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +0 -24
  159. data/vendor/jsdoc/app/test/public.js +0 -10
  160. data/vendor/jsdoc/app/test/shared.js +0 -42
  161. data/vendor/jsdoc/app/test/shared2.js +0 -2
  162. data/vendor/jsdoc/app/test/shortcuts.js +0 -22
  163. data/vendor/jsdoc/app/test/static_this.js +0 -13
  164. data/vendor/jsdoc/app/test/synonyms.js +0 -23
  165. data/vendor/jsdoc/app/test/tosource.js +0 -23
  166. data/vendor/jsdoc/app/test/variable_redefine.js +0 -14
  167. data/vendor/jsdoc/changes.txt +0 -47
  168. data/vendor/jsdoc/conf/sample.conf +0 -31
  169. data/vendor/jsdoc/java/build.xml +0 -36
  170. data/vendor/jsdoc/java/build_1.4.xml +0 -36
  171. data/vendor/jsdoc/java/classes/js.jar +0 -0
  172. data/vendor/jsdoc/java/src/JsDebugRun.java +0 -21
  173. data/vendor/jsdoc/java/src/JsRun.java +0 -21
  174. data/vendor/jsdoc/jsdebug.jar +0 -0
  175. data/vendor/jsdoc/jsrun.jar +0 -0
  176. data/vendor/jsdoc/t/TestDoc.js +0 -144
  177. data/vendor/jsdoc/t/runner.js +0 -13
  178. data/vendor/jsdoc/test.js +0 -304
  179. data/vendor/jsdoc/test/addon.js +0 -24
  180. data/vendor/jsdoc/test/anon_inner.js +0 -14
  181. data/vendor/jsdoc/test/augments.js +0 -31
  182. data/vendor/jsdoc/test/augments2.js +0 -26
  183. data/vendor/jsdoc/test/borrows.js +0 -41
  184. data/vendor/jsdoc/test/borrows2.js +0 -23
  185. data/vendor/jsdoc/test/config.js +0 -22
  186. data/vendor/jsdoc/test/constructs.js +0 -18
  187. data/vendor/jsdoc/test/encoding.js +0 -10
  188. data/vendor/jsdoc/test/encoding_other.js +0 -12
  189. data/vendor/jsdoc/test/functions_anon.js +0 -39
  190. data/vendor/jsdoc/test/functions_nested.js +0 -33
  191. data/vendor/jsdoc/test/global.js +0 -13
  192. data/vendor/jsdoc/test/globals.js +0 -25
  193. data/vendor/jsdoc/test/ignore.js +0 -10
  194. data/vendor/jsdoc/test/inner.js +0 -16
  195. data/vendor/jsdoc/test/jsdoc_test.js +0 -477
  196. data/vendor/jsdoc/test/lend.js +0 -33
  197. data/vendor/jsdoc/test/memberof.js +0 -20
  198. data/vendor/jsdoc/test/memberof_constructor.js +0 -15
  199. data/vendor/jsdoc/test/name.js +0 -19
  200. data/vendor/jsdoc/test/namespace_nested.js +0 -23
  201. data/vendor/jsdoc/test/nocode.js +0 -13
  202. data/vendor/jsdoc/test/oblit_anon.js +0 -20
  203. data/vendor/jsdoc/test/overview.js +0 -20
  204. data/vendor/jsdoc/test/param_inline.js +0 -37
  205. data/vendor/jsdoc/test/params_optional.js +0 -8
  206. data/vendor/jsdoc/test/prototype.js +0 -17
  207. data/vendor/jsdoc/test/prototype_nested.js +0 -9
  208. data/vendor/jsdoc/test/prototype_oblit.js +0 -13
  209. data/vendor/jsdoc/test/prototype_oblit_constructor.js +0 -24
  210. data/vendor/jsdoc/test/public.js +0 -10
  211. data/vendor/jsdoc/test/shared.js +0 -42
  212. data/vendor/jsdoc/test/shared2.js +0 -2
  213. data/vendor/jsdoc/test/shortcuts.js +0 -22
  214. data/vendor/jsdoc/test/static_this.js +0 -13
  215. data/vendor/jsdoc/test/synonyms.js +0 -23
  216. data/vendor/jsdoc/test/tosource.js +0 -23
  217. data/vendor/jsdoc/test/variable_redefine.js +0 -14
@@ -1,98 +0,0 @@
1
- /**
2
- @overview
3
- @date $Date: 2008-08-02 09:25:54 +0100 (Sat, 02 Aug 2008) $
4
- @version $Revision: 668 $
5
- @location $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-2.0.2/jsdoc-toolkit/app/lib/JSDOC.js $
6
- @name whateverFilename.js
7
- */
8
-
9
- /**
10
- This is the main container for the JSDOC application.
11
- @namespace
12
- */
13
- JSDOC = {
14
- };
15
-
16
- /**
17
- @requires Opt
18
- */
19
- if (typeof arguments == "undefined") arguments = [];
20
- JSDOC.opt = Opt.get(
21
- arguments,
22
- {
23
- d: "directory",
24
- c: "conf",
25
- t: "template",
26
- r: "recurse",
27
- x: "ext",
28
- p: "private",
29
- a: "allfunctions",
30
- e: "encoding",
31
- n: "nocode",
32
- o: "out",
33
- s: "suppress",
34
- T: "testmode",
35
- h: "help",
36
- v: "verbose",
37
- "D[]": "define",
38
- "H[]": "handler"
39
- }
40
- );
41
-
42
- /** The current version string of this application. */
43
- JSDOC.VERSION = "2.0.2";
44
-
45
- /** Print out usage information and quit. */
46
- JSDOC.usage = function() {
47
- print("USAGE: java -jar jsrun.jar app/run.js [OPTIONS] <SRC_DIR> <SRC_FILE> ...");
48
- print("");
49
- print("OPTIONS:");
50
- print(" -a or --allfunctions\n Include all functions, even undocumented ones.\n");
51
- print(" -c or --conf\n Load a configuration file.\n");
52
- print(" -d=<PATH> or --directory=<PATH>\n Output to this directory (defaults to \"out\").\n");
53
- print(" -D=\"myVar:My value\" or --define=\"myVar:My value\"\n Multiple. Define a variable, available in JsDoc as JSDOC.opt.D.myVar\n");
54
- print(" -e=<ENCODING> or --encoding=<ENCODING>\n Use this encoding to read and write files.\n");
55
- print(" -h or --help\n Show this message and exit.\n");
56
- //print(" -H=ext:handler or --handler=ext:handler\n Multiple. Load handlers/handler.js to handle files with .ext names.\n");
57
- print(" -n or --nocode\n Ignore all code, only document comments with @name tags.\n");
58
- print(" -o=<PATH> or --out=<PATH>\n Print log messages to a file (defaults to stdout).\n");
59
- print(" -p or --private\n Include symbols tagged as private, underscored and inner symbols.\n");
60
- print(" -r=<DEPTH> or --recurse=<DEPTH>\n Descend into src directories.\n");
61
- print(" -s or --suppress\n Suppress source code output.\n");
62
- print(" -t=<PATH> or --template=<PATH>\n Required. Use this template to format the output.\n");
63
- print(" -T or --test\n Run all unit tests and exit.\n");
64
- print(" -v or --verbose\n Provide verbose feedback about what is happening.\n");
65
- print(" -x=<EXT>[,EXT]... or --ext=<EXT>[,EXT]...\n Scan source files with the given extension/s (defaults to js).\n");
66
-
67
- quit();
68
- }
69
-
70
- /*t:
71
- plan(4, "Testing JSDOC namespace.");
72
-
73
- is(
74
- typeof JSDOC,
75
- "object",
76
- "JSDOC.usage is a function."
77
- );
78
-
79
- is(
80
- typeof JSDOC.VERSION,
81
- "string",
82
- "JSDOC.VERSION is a string."
83
- );
84
-
85
- is(
86
- typeof JSDOC.usage,
87
- "function",
88
- "JSDOC.usage is a function."
89
- );
90
-
91
- is(
92
- typeof JSDOC.opt,
93
- "object",
94
- "JSDOC.opt is a object."
95
- );
96
- */
97
-
98
- if (this.IO) IO.includeDir("lib/JSDOC/");
@@ -1,200 +0,0 @@
1
- if (typeof JSDOC == "undefined") JSDOC = {};
2
-
3
- /**
4
- Create a new DocComment. This takes a raw documentation comment,
5
- and wraps it in useful accessors.
6
- @class Represents a documentation comment object.
7
- */
8
- JSDOC.DocComment = function(/**String*/comment) {
9
- this.init();
10
- if (typeof comment != "undefined") {
11
- this.parse(comment);
12
- }
13
- }
14
-
15
- JSDOC.DocComment.prototype.init = function() {
16
- this.isUserComment = true;
17
- this.src = "";
18
- this.meta = "";
19
- this.tagTexts = [];
20
- this.tags = [];
21
- }
22
-
23
- /**
24
- @requires JSDOC.DocTag
25
- */
26
- JSDOC.DocComment.prototype.parse = function(/**String*/comment) {
27
- if (comment == "") {
28
- comment = "/** @desc */";
29
- this.isUserComment = false;
30
- }
31
-
32
- this.src = JSDOC.DocComment.unwrapComment(comment);
33
-
34
- this.meta = "";
35
- if (this.src.indexOf("#") == 0) {
36
- this.src.match(/#(.+[+-])([\s\S]*)$/);
37
- if (RegExp.$1) this.meta = RegExp.$1;
38
- if (RegExp.$2) this.src = RegExp.$2;
39
- }
40
-
41
- this.fixDesc();
42
-
43
- if (typeof JSDOC.PluginManager != "undefined") {
44
- JSDOC.PluginManager.run("onDocCommentSrc", this);
45
- }
46
-
47
- this.src = JSDOC.DocComment.shared+"\n"+this.src;
48
-
49
- this.tagTexts =
50
- this.src
51
- .split(/(^|[\r\n])\s*@/)
52
- .filter(function($){return $.match(/\S/)});
53
-
54
- /**
55
- The tags found in the comment.
56
- @type JSDOC.DocTag[]
57
- */
58
- this.tags = this.tagTexts.map(function($){return new JSDOC.DocTag($)});
59
-
60
- if (typeof JSDOC.PluginManager != "undefined") {
61
- JSDOC.PluginManager.run("onDocCommentTags", this);
62
- }
63
- }
64
-
65
- /*t:
66
- plan(5, "testing JSDOC.DocComment");
67
- requires("../frame/String.js");
68
- requires("../lib/JSDOC/DocTag.js");
69
-
70
- var com = new JSDOC.DocComment("/**@foo some\n* comment here*"+"/");
71
- is(com.tagTexts[0], "foo some\ncomment here", "first tag text is found.");
72
- is(com.tags[0].title, "foo", "the title is found in a comment with one tag.");
73
-
74
- var com = new JSDOC.DocComment("/** @foo first\n* @bar second*"+"/");
75
- is(com.getTag("bar").length, 1, "getTag() returns one tag by that title.");
76
-
77
- JSDOC.DocComment.shared = "@author John Smith";
78
- var com = new JSDOC.DocComment("/**@foo some\n* comment here*"+"/");
79
- is(com.tags[0].title, "author", "shared comment is added.");
80
- is(com.tags[1].title, "foo", "shared comment is added to existing tag.");
81
- */
82
-
83
- /**
84
- If no @desc tag is provided, this function will add it.
85
- */
86
- JSDOC.DocComment.prototype.fixDesc = function() {
87
- if (this.meta && this.meta != "@+") return;
88
- if (/^\s*[^@\s]/.test(this.src)) {
89
- this.src = "@desc "+this.src;
90
- }
91
- }
92
-
93
- /*t:
94
- plan(5, "testing JSDOC.DocComment#fixDesc");
95
-
96
- var com = new JSDOC.DocComment();
97
-
98
- com.src = "this is a desc\n@author foo";
99
- com.fixDesc();
100
- is(com.src, "@desc this is a desc\n@author foo", "if no @desc tag is provided one is added.");
101
-
102
- com.src = "x";
103
- com.fixDesc();
104
- is(com.src, "@desc x", "if no @desc tag is provided one is added to a single character.");
105
-
106
- com.src = "\nx";
107
- com.fixDesc();
108
- is(com.src, "@desc \nx", "if no @desc tag is provided one is added to return and character.");
109
-
110
- com.src = " ";
111
- com.fixDesc();
112
- is(com.src, " ", "if no @desc tag is provided one is not added to just whitespace.");
113
-
114
- com.src = "";
115
- com.fixDesc();
116
- is(com.src, "", "if no @desc tag is provided one is not added to empty.");
117
- */
118
-
119
- /**
120
- Remove slash-star comment wrapper from a raw comment string.
121
- @type String
122
- */
123
- JSDOC.DocComment.unwrapComment = function(/**String*/comment) {
124
- if (!comment) return "";
125
- var unwrapped = comment.replace(/(^\/\*\*|\*\/$)/g, "").replace(/^\s*\* ?/gm, "");
126
- return unwrapped;
127
- }
128
-
129
- /*t:
130
- plan(5, "testing JSDOC.DocComment.unwrapComment");
131
-
132
- var com = "/**x*"+"/";
133
- var unwrapped = JSDOC.DocComment.unwrapComment(com);
134
- is(unwrapped, "x", "a single character jsdoc is found.");
135
-
136
- com = "/***x*"+"/";
137
- unwrapped = JSDOC.DocComment.unwrapComment(com);
138
- is(unwrapped, "x", "three stars are allowed in the opener.");
139
-
140
- com = "/****x*"+"/";
141
- unwrapped = JSDOC.DocComment.unwrapComment(com);
142
- is(unwrapped, "*x", "fourth star in the opener is kept.");
143
-
144
- com = "/**x\n * y\n*"+"/";
145
- unwrapped = JSDOC.DocComment.unwrapComment(com);
146
- is(unwrapped, "x\ny\n", "leading stars and spaces are trimmed.");
147
-
148
- com = "/**x\n * y\n*"+"/";
149
- unwrapped = JSDOC.DocComment.unwrapComment(com);
150
- is(unwrapped, "x\n y\n", "only first space after leading stars are trimmed.");
151
- */
152
-
153
- /**
154
- Provides a printable version of the comment.
155
- @type String
156
- */
157
- JSDOC.DocComment.prototype.toString = function() {
158
- return this.src;
159
- }
160
-
161
- /*t:
162
- plan(1, "testing JSDOC.DocComment#fixDesc");
163
- var com = new JSDOC.DocComment();
164
- com.src = "foo";
165
- is(""+com, "foo", "stringifying a comment returns the unwrapped src.");
166
- */
167
-
168
- /**
169
- Given the title of a tag, returns all tags that have that title.
170
- @type JSDOC.DocTag[]
171
- */
172
- JSDOC.DocComment.prototype.getTag = function(/**String*/tagTitle) {
173
- return this.tags.filter(function($){return $.title == tagTitle});
174
- }
175
-
176
- /*t:
177
- plan(1, "testing JSDOC.DocComment#getTag");
178
- requires("../frame/String.js");
179
- requires("../lib/JSDOC/DocTag.js");
180
-
181
- var com = new JSDOC.DocComment("/**@foo some\n* @bar\n* @bar*"+"/");
182
- is(com.getTag("bar").length, 2, "getTag returns expected number of tags.");
183
- */
184
-
185
- /**
186
- Used to store the currently shared tag text.
187
- */
188
- JSDOC.DocComment.shared = "";
189
-
190
- /*t:
191
- plan(2, "testing JSDOC.DocComment.shared");
192
- requires("../frame/String.js");
193
- requires("../lib/JSDOC/DocTag.js");
194
-
195
- JSDOC.DocComment.shared = "@author Michael";
196
-
197
- var com = new JSDOC.DocComment("/**@foo\n* @foo*"+"/");
198
- is(com.getTag("author").length, 1, "getTag returns shared tag.");
199
- is(com.getTag("foo").length, 2, "getTag returns unshared tags too.");
200
- */
@@ -1,294 +0,0 @@
1
- if (typeof JSDOC == "undefined") JSDOC = {};
2
-
3
- /**
4
- @constructor
5
- */
6
- JSDOC.DocTag = function(src) {
7
- this.init();
8
- if (typeof src != "undefined") {
9
- this.parse(src);
10
- }
11
- }
12
-
13
- /**
14
- Create and initialize the properties of this.
15
- */
16
- JSDOC.DocTag.prototype.init = function() {
17
- this.title = "";
18
- this.type = "";
19
- this.name = "";
20
- this.isOptional = false;
21
- this.defaultValue = "";
22
- this.desc = "";
23
-
24
- return this;
25
- }
26
-
27
- /**
28
- Populate the properties of this from the given tag src.
29
- @param {string} src
30
- */
31
- JSDOC.DocTag.prototype.parse = function(src) {
32
- if (typeof src != "string") throw "src must be a string not "+(typeof src);
33
-
34
- try {
35
- src = this.nibbleTitle(src);
36
- if (JSDOC.PluginManager) {
37
- JSDOC.PluginManager.run("onDocTagSynonym", this);
38
- }
39
-
40
- src = this.nibbleType(src);
41
-
42
- // only some tags are allowed to have names.
43
- if (this.title == "param" || this.title == "property" || this.title == "config") { // @config is deprecated
44
- src = this.nibbleName(src);
45
- }
46
- }
47
- catch(e) {
48
- if (LOG) LOG.warn(e);
49
- else throw e;
50
- }
51
- this.desc = src; // whatever is left
52
-
53
- // example tags need to have whitespace preserved
54
- if (this.title != "example") this.desc = this.desc.trim();
55
-
56
- if (JSDOC.PluginManager) {
57
- JSDOC.PluginManager.run("onDocTag", this);
58
- }
59
- }
60
-
61
- /**
62
- Automatically called when this is stringified.
63
- */
64
- JSDOC.DocTag.prototype.toString = function() {
65
- return this.desc;
66
- }
67
-
68
- /*t:
69
- plan(1, "testing JSDOC.DocTag#toString");
70
-
71
- var tag = new JSDOC.DocTag("param {object} date A valid date.");
72
- is(""+tag, "A valid date.", "stringifying a tag returns the desc.");
73
- */
74
-
75
- /**
76
- Find and shift off the title of a tag.
77
- @param {string} src
78
- @return src
79
- */
80
- JSDOC.DocTag.prototype.nibbleTitle = function(src) {
81
- if (typeof src != "string") throw "src must be a string not "+(typeof src);
82
-
83
- var parts = src.match(/^\s*(\S+)(?:\s([\s\S]*))?$/);
84
-
85
- if (parts && parts[1]) this.title = parts[1];
86
- if (parts && parts[2]) src = parts[2];
87
- else src = "";
88
-
89
- return src;
90
- }
91
-
92
- /*t:
93
- plan(8, "testing JSDOC.DocTag#nibbleTitle");
94
-
95
- var tag = new JSDOC.DocTag();
96
-
97
- tag.init().nibbleTitle("aTitleGoesHere");
98
- is(tag.title, "aTitleGoesHere", "a title can be found in a single-word string.");
99
-
100
- var src = tag.init().nibbleTitle("aTitleGoesHere and the rest");
101
- is(tag.title, "aTitleGoesHere", "a title can be found in a multi-word string.");
102
- is(src, "and the rest", "the rest is returned when the title is nibbled off.");
103
-
104
- src = tag.init().nibbleTitle("");
105
- is(tag.title, "", "given an empty string the title is empty.");
106
- is(src, "", "the rest is empty when the tag is empty.");
107
-
108
- var src = tag.init().nibbleTitle(" aTitleGoesHere\n a description");
109
- is(tag.title, "aTitleGoesHere", "leading and trailing spaces are not part of the title.");
110
- is(src, " a description", "leading spaces (less one) are part of the description.");
111
-
112
- tag.init().nibbleTitle("a.Title::Goes_Here foo");
113
- is(tag.title, "a.Title::Goes_Here", "titles with punctuation are allowed.");
114
- */
115
-
116
- /**
117
- Find and shift off the type of a tag.
118
- @requires frame/String.js
119
- @param {string} src
120
- @return src
121
- */
122
- JSDOC.DocTag.prototype.nibbleType = function(src) {
123
- if (typeof src != "string") throw "src must be a string not "+(typeof src);
124
-
125
- if (src.match(/^\s*\{/)) {
126
- var typeRange = src.balance("{", "}");
127
- if (typeRange[1] == -1) {
128
- throw "Malformed comment tag ignored. Tag type requires an opening { and a closing }: "+src;
129
- }
130
- this.type = src.substring(typeRange[0]+1, typeRange[1]).trim();
131
- this.type = this.type.replace(/\s*,\s*/g, "|"); // multiples can be separated by , or |
132
- src = src.substring(typeRange[1]+1);
133
- }
134
-
135
- return src;
136
- }
137
-
138
- /*t:
139
- plan(5, "testing JSDOC.DocTag.parser.nibbleType");
140
- requires("../frame/String.js");
141
-
142
- var tag = new JSDOC.DocTag();
143
-
144
- tag.init().nibbleType("{String[]} aliases");
145
- is(tag.type, "String[]", "type can have non-alpha characters.");
146
-
147
- tag.init().nibbleType("{ aTypeGoesHere } etc etc");
148
- is(tag.type, "aTypeGoesHere", "type is trimmed.");
149
-
150
- tag.init().nibbleType("{ oneType, twoType ,\n threeType } etc etc");
151
- is(tag.type, "oneType|twoType|threeType", "multiple types can be separated by commas.");
152
-
153
- var error;
154
- try { tag.init().nibbleType("{widget foo"); }
155
- catch(e) { error = e; }
156
- is(typeof error, "string", "malformed tag type throws error.");
157
- isnt(error.indexOf("Malformed"), -1, "error message tells tag is malformed.");
158
- */
159
-
160
- /**
161
- Find and shift off the name of a tag.
162
- @requires frame/String.js
163
- @param {string} src
164
- @return src
165
- */
166
- JSDOC.DocTag.prototype.nibbleName = function(src) {
167
- if (typeof src != "string") throw "src must be a string not "+(typeof src);
168
-
169
- src = src.trim();
170
-
171
- // is optional?
172
- if (src.charAt(0) == "[") {
173
- var nameRange = src.balance("[", "]");
174
- if (nameRange[1] == -1) {
175
- throw "Malformed comment tag ignored. Tag optional name requires an opening [ and a closing ]: "+src;
176
- }
177
- this.name = src.substring(nameRange[0]+1, nameRange[1]).trim();
178
- this.isOptional = true;
179
-
180
- src = src.substring(nameRange[1]+1);
181
-
182
- // has default value?
183
- var nameAndValue = this.name.split("=");
184
- if (nameAndValue.length) {
185
- this.name = nameAndValue.shift().trim();
186
- this.defaultValue = nameAndValue.join("=");
187
- }
188
- }
189
- else {
190
- var parts = src.match(/^(\S+)(?:\s([\s\S]*))?$/);
191
- if (parts) {
192
- if (parts[1]) this.name = parts[1];
193
- if (parts[2]) src = parts[2].trim();
194
- else src = "";
195
- }
196
- }
197
-
198
- return src;
199
- }
200
-
201
- /*t:
202
- requires("../frame/String.js");
203
- plan(9, "testing JSDOC.DocTag.parser.nibbleName");
204
-
205
- var tag = new JSDOC.DocTag();
206
-
207
- tag.init().nibbleName("[foo] This is a description.");
208
- is(tag.isOptional, true, "isOptional syntax is detected.");
209
- is(tag.name, "foo", "optional param name is found.");
210
-
211
- tag.init().nibbleName("[foo] This is a description.");
212
- is(tag.isOptional, true, "isOptional syntax is detected when no type.");
213
- is(tag.name, "foo", "optional param name is found when no type.");
214
-
215
- tag.init().nibbleName("[foo=7] This is a description.");
216
- is(tag.name, "foo", "optional param name is found when default value.");
217
- is(tag.defaultValue, 7, "optional param default value is found when default value.");
218
-
219
- //tag.init().nibbleName("[foo= a value] This is a description.");
220
- //is(tag.defaultValue, " a value", "optional param default value is found when default value has spaces (issue #112).");
221
-
222
- tag.init().nibbleName("[foo=[]] This is a description.");
223
- is(tag.defaultValue, "[]", "optional param default value is found when default value is [] (issue #95).");
224
-
225
- tag.init().nibbleName("[foo=a=b] This is a description.");
226
- is(tag.name, "foo", "optional param name is found when default value is a=b.");
227
- is(tag.defaultValue, "a=b", "optional param default value is found when default value is a=b.")
228
- */
229
-
230
- /*t:
231
- plan(32, "Testing JSDOC.DocTag.parser.");
232
- requires("../frame/String.js");
233
-
234
- var tag = new JSDOC.DocTag();
235
-
236
- is(typeof tag, "object", "JSDOC.DocTag.parser with an empty string returns an object.");
237
- is(typeof tag.title, "string", "returned object has a string property 'title'.");
238
- is(typeof tag.type, "string", "returned object has a string property 'type'.");
239
- is(typeof tag.name, "string", "returned object has a string property 'name'.");
240
- is(typeof tag.defaultValue, "string", "returned object has a string property 'defaultValue'.");
241
- is(typeof tag.isOptional, "boolean", "returned object has a boolean property 'isOptional'.");
242
- is(typeof tag.desc, "string", "returned object has a string property 'desc'.");
243
-
244
- tag = new JSDOC.DocTag("param {widget} foo");
245
- is(tag.title, "param", "param title is found.");
246
- is(tag.name, "foo", "param name is found when desc is missing.");
247
- is(tag.desc, "", "param desc is empty when missing.");
248
-
249
- tag = new JSDOC.DocTag("param {object} date A valid date.");
250
- is(tag.name, "date", "param name is found with a type.");
251
- is(tag.type, "object", "param type is found.");
252
- is(tag.desc, "A valid date.", "param desc is found with a type.");
253
-
254
- tag = new JSDOC.DocTag("param aName a description goes\n here.");
255
- is(tag.name, "aName", "param name is found without a type.");
256
- is(tag.desc, "a description goes\n here.", "param desc is found without a type.");
257
-
258
- tag = new JSDOC.DocTag("param {widget}");
259
- is(tag.name, "", "param name is empty when it is not given.");
260
-
261
- tag = new JSDOC.DocTag("param {widget} [foo] This is a description.");
262
- is(tag.name, "foo", "optional param name is found.");
263
-
264
- tag = new JSDOC.DocTag("return {aType} This is a description.");
265
- is(tag.type, "aType", "when return tag has no name, type is found.");
266
- is(tag.desc, "This is a description.", "when return tag has no name, desc is found.");
267
-
268
- tag = new JSDOC.DocTag("author Joe Coder <jcoder@example.com>");
269
- is(tag.title, "author", "author tag has a title.");
270
- is(tag.type, "", "the author tag has no type.");
271
- is(tag.name, "", "the author tag has no name.");
272
- is(tag.desc, "Joe Coder <jcoder@example.com>", "author tag has desc.");
273
-
274
- tag = new JSDOC.DocTag("private \t\n ");
275
- is(tag.title, "private", "private tag has a title.");
276
- is(tag.type, "", "the private tag has no type.");
277
- is(tag.name, "", "the private tag has no name.");
278
- is(tag.desc, "", "private tag has no desc.");
279
-
280
- tag = new JSDOC.DocTag("example\n example(code);\n more();");
281
- is(tag.desc, " example(code);\n more();", "leading whitespace (less one) in examples code is preserved.");
282
-
283
- tag = new JSDOC.DocTag("param theName \n");
284
- is(tag.name, "theName", "name only is found.");
285
-
286
- tag = new JSDOC.DocTag("type theDesc \n");
287
- is(tag.desc, "theDesc", "desc only is found.");
288
-
289
- tag = new JSDOC.DocTag("type {theType} \n");
290
- is(tag.type, "theType", "type only is found.");
291
-
292
- tag = new JSDOC.DocTag("");
293
- is(tag.title, "", "title is empty when tag is empty.");
294
- */