sc-docs 0.0.1

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 (162) hide show
  1. data/.gitignore +4 -0
  2. data/.gitmodules +3 -0
  3. data/Gemfile +5 -0
  4. data/Gemfile.lock +48 -0
  5. data/LICENSE +21 -0
  6. data/README.md +59 -0
  7. data/bin/sc-docs +5 -0
  8. data/lib/sc_docs.rb +3 -0
  9. data/lib/sc_docs/cli.rb +54 -0
  10. data/lib/sc_docs/docs/Buildfile +8 -0
  11. data/lib/sc_docs/docs/README +8 -0
  12. data/lib/sc_docs/docs/apps/docs/Buildfile +15 -0
  13. data/lib/sc_docs/docs/apps/docs/controllers/classes.js +27 -0
  14. data/lib/sc_docs/docs/apps/docs/controllers/search_controller.js +62 -0
  15. data/lib/sc_docs/docs/apps/docs/controllers/selected_class.js +143 -0
  16. data/lib/sc_docs/docs/apps/docs/core.js +148 -0
  17. data/lib/sc_docs/docs/apps/docs/main.js +41 -0
  18. data/lib/sc_docs/docs/apps/docs/models/class.js +63 -0
  19. data/lib/sc_docs/docs/apps/docs/models/entity.js +29 -0
  20. data/lib/sc_docs/docs/apps/docs/models/method.js +79 -0
  21. data/lib/sc_docs/docs/apps/docs/models/property.js +48 -0
  22. data/lib/sc_docs/docs/apps/docs/resources/images/method_icon.png +0 -0
  23. data/lib/sc_docs/docs/apps/docs/resources/images/property_icon.png +0 -0
  24. data/lib/sc_docs/docs/apps/docs/resources/loading.rhtml +9 -0
  25. data/lib/sc_docs/docs/apps/docs/resources/main_page.css +156 -0
  26. data/lib/sc_docs/docs/apps/docs/resources/main_page.js +91 -0
  27. data/lib/sc_docs/docs/apps/docs/resources/templates/details.handlebars +81 -0
  28. data/lib/sc_docs/docs/apps/docs/resources/templates/extensions/signature.js +0 -0
  29. data/lib/sc_docs/docs/apps/docs/system/jquery_ui.js +62 -0
  30. data/lib/sc_docs/docs/apps/docs/system/showdown.js +1297 -0
  31. data/lib/sc_docs/docs/apps/docs/theme.js +29 -0
  32. data/lib/sc_docs/docs/apps/docs/views/detail_list.js +24 -0
  33. data/lib/sc_docs/docs/apps/docs/views/master_list.js +35 -0
  34. data/lib/sc_docs/docs/apps/docs/views/methods_collection.js +80 -0
  35. data/lib/sc_docs/docs/apps/docs/views/properties_collection.js +9 -0
  36. data/lib/sc_docs/generator.rb +145 -0
  37. data/lib/sc_docs/server.rb +21 -0
  38. data/lib/sc_docs/templates/docs.sproutcore.com/allclasses.tmpl +31 -0
  39. data/lib/sc_docs/templates/docs.sproutcore.com/allfiles.tmpl +66 -0
  40. data/lib/sc_docs/templates/docs.sproutcore.com/class.tmpl +437 -0
  41. data/lib/sc_docs/templates/docs.sproutcore.com/index.tmpl +52 -0
  42. data/lib/sc_docs/templates/docs.sproutcore.com/output/css/api.css +619 -0
  43. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/apidocs.jpg +0 -0
  44. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/apidocs.png +0 -0
  45. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/clearinput.png +0 -0
  46. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/cross.png +0 -0
  47. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/ddiagonal.png +0 -0
  48. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/diagonal.png +0 -0
  49. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/docbullet.jpg +0 -0
  50. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/docbullet.png +0 -0
  51. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/glow.png +0 -0
  52. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/logo.png +0 -0
  53. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/pixels.png +0 -0
  54. data/lib/sc_docs/templates/docs.sproutcore.com/output/img/search.png +0 -0
  55. data/lib/sc_docs/templates/docs.sproutcore.com/output/js/api.js +134 -0
  56. data/lib/sc_docs/templates/docs.sproutcore.com/output/js/jquery-bbq.js +18 -0
  57. data/lib/sc_docs/templates/docs.sproutcore.com/output/js/lib/jquery-1.5.1.min.js +16 -0
  58. data/lib/sc_docs/templates/docs.sproutcore.com/output/js/lib/modernizr-1.7.min.js +2 -0
  59. data/lib/sc_docs/templates/docs.sproutcore.com/output/js/plugin.js +1 -0
  60. data/lib/sc_docs/templates/docs.sproutcore.com/output/js/script.js +5 -0
  61. data/lib/sc_docs/templates/docs.sproutcore.com/publish.js +200 -0
  62. data/lib/sc_docs/templates/docs.sproutcore.com/static/default.css +300 -0
  63. data/lib/sc_docs/templates/docs.sproutcore.com/static/header.html +19 -0
  64. data/lib/sc_docs/templates/docs.sproutcore.com/static/index.html +19 -0
  65. data/lib/sc_docs/templates/docs.sproutcore.com/symbol.tmpl +35 -0
  66. data/lib/sc_docs/templates/sc_fixture/publish.js +632 -0
  67. data/lib/sc_docs/version.rb +4 -0
  68. data/sc_docs.gemspec +27 -0
  69. data/vendor/jsdoc/README.txt +109 -0
  70. data/vendor/jsdoc/app/frame.js +33 -0
  71. data/vendor/jsdoc/app/frame/Chain.js +102 -0
  72. data/vendor/jsdoc/app/frame/Dumper.js +144 -0
  73. data/vendor/jsdoc/app/frame/Hash.js +84 -0
  74. data/vendor/jsdoc/app/frame/Link.js +173 -0
  75. data/vendor/jsdoc/app/frame/Namespace.js +10 -0
  76. data/vendor/jsdoc/app/frame/Opt.js +134 -0
  77. data/vendor/jsdoc/app/frame/Reflection.js +26 -0
  78. data/vendor/jsdoc/app/frame/String.js +93 -0
  79. data/vendor/jsdoc/app/frame/Testrun.js +129 -0
  80. data/vendor/jsdoc/app/handlers/FOODOC.js +26 -0
  81. data/vendor/jsdoc/app/handlers/XMLDOC.js +26 -0
  82. data/vendor/jsdoc/app/handlers/XMLDOC/DomReader.js +159 -0
  83. data/vendor/jsdoc/app/handlers/XMLDOC/XMLDoc.js +16 -0
  84. data/vendor/jsdoc/app/handlers/XMLDOC/XMLParse.js +292 -0
  85. data/vendor/jsdoc/app/lib/JSDOC.js +106 -0
  86. data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +204 -0
  87. data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +294 -0
  88. data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +140 -0
  89. data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +109 -0
  90. data/vendor/jsdoc/app/lib/JSDOC/Lang.js +144 -0
  91. data/vendor/jsdoc/app/lib/JSDOC/Parser.js +146 -0
  92. data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +33 -0
  93. data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +644 -0
  94. data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +243 -0
  95. data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +41 -0
  96. data/vendor/jsdoc/app/lib/JSDOC/Token.js +18 -0
  97. data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +332 -0
  98. data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +133 -0
  99. data/vendor/jsdoc/app/lib/JSDOC/Util.js +32 -0
  100. data/vendor/jsdoc/app/lib/JSDOC/Walker.js +507 -0
  101. data/vendor/jsdoc/app/main.js +111 -0
  102. data/vendor/jsdoc/app/plugins/commentSrcJson.js +20 -0
  103. data/vendor/jsdoc/app/plugins/frameworkPrototype.js +16 -0
  104. data/vendor/jsdoc/app/plugins/functionCall.js +10 -0
  105. data/vendor/jsdoc/app/plugins/publishSrcHilite.js +62 -0
  106. data/vendor/jsdoc/app/plugins/symbolLink.js +10 -0
  107. data/vendor/jsdoc/app/plugins/tagParamConfig.js +31 -0
  108. data/vendor/jsdoc/app/plugins/tagSynonyms.js +43 -0
  109. data/vendor/jsdoc/app/run.js +297 -0
  110. data/vendor/jsdoc/app/t/TestDoc.js +144 -0
  111. data/vendor/jsdoc/app/t/runner.js +13 -0
  112. data/vendor/jsdoc/app/test.js +342 -0
  113. data/vendor/jsdoc/app/test/addon.js +24 -0
  114. data/vendor/jsdoc/app/test/anon_inner.js +14 -0
  115. data/vendor/jsdoc/app/test/augments.js +31 -0
  116. data/vendor/jsdoc/app/test/augments2.js +26 -0
  117. data/vendor/jsdoc/app/test/borrows.js +46 -0
  118. data/vendor/jsdoc/app/test/borrows2.js +23 -0
  119. data/vendor/jsdoc/app/test/config.js +22 -0
  120. data/vendor/jsdoc/app/test/constructs.js +18 -0
  121. data/vendor/jsdoc/app/test/encoding.js +10 -0
  122. data/vendor/jsdoc/app/test/encoding_other.js +12 -0
  123. data/vendor/jsdoc/app/test/event.js +54 -0
  124. data/vendor/jsdoc/app/test/exports.js +14 -0
  125. data/vendor/jsdoc/app/test/functions_anon.js +39 -0
  126. data/vendor/jsdoc/app/test/functions_nested.js +33 -0
  127. data/vendor/jsdoc/app/test/global.js +13 -0
  128. data/vendor/jsdoc/app/test/globals.js +25 -0
  129. data/vendor/jsdoc/app/test/ignore.js +10 -0
  130. data/vendor/jsdoc/app/test/inner.js +16 -0
  131. data/vendor/jsdoc/app/test/jsdoc_test.js +477 -0
  132. data/vendor/jsdoc/app/test/lend.js +33 -0
  133. data/vendor/jsdoc/app/test/memberof.js +19 -0
  134. data/vendor/jsdoc/app/test/memberof2.js +38 -0
  135. data/vendor/jsdoc/app/test/memberof3.js +33 -0
  136. data/vendor/jsdoc/app/test/memberof_constructor.js +17 -0
  137. data/vendor/jsdoc/app/test/module.js +17 -0
  138. data/vendor/jsdoc/app/test/multi_methods.js +25 -0
  139. data/vendor/jsdoc/app/test/name.js +19 -0
  140. data/vendor/jsdoc/app/test/namespace_nested.js +23 -0
  141. data/vendor/jsdoc/app/test/nocode.js +13 -0
  142. data/vendor/jsdoc/app/test/oblit_anon.js +20 -0
  143. data/vendor/jsdoc/app/test/overview.js +20 -0
  144. data/vendor/jsdoc/app/test/param_inline.js +37 -0
  145. data/vendor/jsdoc/app/test/params_optional.js +8 -0
  146. data/vendor/jsdoc/app/test/prototype.js +17 -0
  147. data/vendor/jsdoc/app/test/prototype_nested.js +9 -0
  148. data/vendor/jsdoc/app/test/prototype_oblit.js +13 -0
  149. data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +24 -0
  150. data/vendor/jsdoc/app/test/public.js +10 -0
  151. data/vendor/jsdoc/app/test/scripts/code.js +5 -0
  152. data/vendor/jsdoc/app/test/scripts/notcode.txt +5 -0
  153. data/vendor/jsdoc/app/test/shared.js +42 -0
  154. data/vendor/jsdoc/app/test/shared2.js +2 -0
  155. data/vendor/jsdoc/app/test/shortcuts.js +22 -0
  156. data/vendor/jsdoc/app/test/static_this.js +13 -0
  157. data/vendor/jsdoc/app/test/synonyms.js +31 -0
  158. data/vendor/jsdoc/app/test/tosource.js +23 -0
  159. data/vendor/jsdoc/app/test/variable_redefine.js +14 -0
  160. data/vendor/jsdoc/changes.txt +127 -0
  161. data/vendor/jsdoc/conf/sample.conf +31 -0
  162. metadata +240 -0
@@ -0,0 +1,148 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2008-2011 Apple Inc. All rights reserved.
4
+ // License: Licensed under MIT license (see license.js)
5
+ // ==========================================================================
6
+
7
+ /*globals Docs */
8
+
9
+ /** @namespace
10
+
11
+ Docs is a documentation viewer for SproutCore-based Apps and for the
12
+ SproutCore framework itself. It runs alongside the sc-docs script (Which
13
+ ships with the same sc-docs.git repository this app is contained within),
14
+ and uses a nodejs-based jsdoc-toolkit engine to parse and generate the
15
+ fixtures data this app will render.
16
+
17
+ Known Issues:
18
+ ----
19
+
20
+ - The app currently suffers from some performance problems.
21
+ - The app lacks proper usage of SC.Routes to make symbols bookmarkable
22
+ and shareable.
23
+ - The app lacks an organizational feature (organize by framework)
24
+ - The app lacks a search feature
25
+
26
+ If you encounter any other issues, please let me know (majd@sproutcore.com)
27
+
28
+ @extends SC.Object
29
+ */
30
+ Docs = SC.Application.create(
31
+ /** @scope Docs.prototype */ {
32
+
33
+ NAMESPACE: 'Docs',
34
+ VERSION: '0.1.0',
35
+
36
+ /**
37
+ A hash used to quickly inspect all the data associated with the doc viewer.
38
+
39
+ ex.
40
+
41
+ {
42
+ "SC.Set": [
43
+ "add",
44
+ "edit"
45
+ ],
46
+
47
+ "SC.Enumerable": [
48
+ "find",
49
+ "findProperty"
50
+ ]
51
+ }
52
+ */
53
+ indexHash: null,
54
+
55
+ buildIndex: function(/** SC.RecordArray */classes) {
56
+ var hash = {};
57
+
58
+ classes.forEach(function(object, index){
59
+ var name = object.get('displayName');
60
+
61
+ hash[name] = object.get('storeKey');
62
+ });
63
+
64
+ this.set('indexHash',hash);
65
+ },
66
+
67
+ /** record array representing all the classes */
68
+ allClassesRecordArray: null,
69
+
70
+ wasRouted: NO,
71
+
72
+ // This is your application store. You will use this store to access all
73
+ // of your model data. You can also set a data source on this store to
74
+ // connect to a backend server. The default setup below connects the store
75
+ // to any fixtures you define.
76
+ store: SC.Store.create().from(SC.Record.fixtures),
77
+
78
+ routeToClass: function(params){
79
+ Docs.set('wasRouted',YES);
80
+
81
+ var className = params['class'];
82
+ if(!className) {return;}
83
+
84
+ query = SC.Query.local(Docs.Class,{
85
+ conditions: 'displayName = "%@"'.fmt(className)
86
+ });
87
+ var items = Docs.store.find(query);
88
+ var firstObject = items.get('firstObject');
89
+
90
+ if(Docs.classesController.getPath('selection.firstObject') === firstObject) {
91
+ return;
92
+ }
93
+
94
+ var collection = Docs.mainPage.getPath('mainPane.sidebar.classList.contentView');
95
+ var itemView = collection.itemViewForContentObject(firstObject);
96
+ Docs.classesController.selectObject(firstObject);
97
+ collection.scrollToItemView(itemView);
98
+
99
+ return items.get('firstObject');
100
+ },
101
+
102
+ routeToSymbol: function(params){
103
+
104
+ // If no className is provided, assume that the currently selected
105
+ // class contains the symbol
106
+ var className = params['class'];
107
+ var symbolName = params['symbol'];
108
+
109
+ var selectedClass = this.routeToClass(params);
110
+
111
+ if(!selectedClass || !symbolName) {
112
+ return;
113
+ }
114
+
115
+ var that = this;
116
+ // We have to wait for the class selection to propagate
117
+ this.invokeLater(function(){
118
+
119
+ var symbols = Docs.selectedClassController.get('symbols');
120
+ var matches = symbols.filterProperty('name',symbolName);
121
+
122
+ var firstObject = matches.get('firstObject');
123
+
124
+ if (!firstObject) {
125
+ return NO;
126
+ }
127
+
128
+ if(Docs.selectedClassController.getPath('symbolSelection.firstObject') === firstObject) {
129
+ return NO;
130
+ }
131
+
132
+ var sel = SC.SelectionSet.create();
133
+ sel.addObjects([firstObject]).freeze();
134
+
135
+ Docs.selectedClassController.set('symbolSelection',sel);
136
+ });
137
+
138
+ return YES;
139
+ }
140
+
141
+ }) ;
142
+
143
+ Handlebars.registerHelper('debug', function(object) {
144
+
145
+ console.log(this.get(object));
146
+
147
+ return '';
148
+ });
@@ -0,0 +1,41 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2008-2011 Apple Inc. All rights reserved.
4
+ // License: Licensed under MIT license (see license.js)
5
+ // ==========================================================================
6
+
7
+ /*globals Docs */
8
+
9
+ // This is the function that will start your app running. The default
10
+ // implementation will load any fixtures you have created then instantiate
11
+ // your controllers and awake the elements on your page.
12
+ //
13
+ // As you develop your application you will probably want to override this.
14
+ // See comments for some pointers on what to do next.
15
+ //
16
+ Docs.main = function main() {
17
+
18
+ Docs.getPath('mainPage.mainPane').append() ;
19
+
20
+ var query = SC.Query.local(Docs.Class);
21
+ var output = Docs.store.find(query);
22
+
23
+ Docs.buildIndex(output);
24
+
25
+ Docs.allClassesRecordArray = output = output.sortProperty('displayName');
26
+ Docs.classesController.set('content',output);
27
+
28
+ SC.routes.add(':class/:symbol',Docs,'routeToSymbol');
29
+ SC.routes.add(':class',Docs,'routeToClass');
30
+
31
+ if(!window.location.hash){
32
+ Docs.classesController.selectObject(output.firstObject());
33
+ }
34
+
35
+ var view = Docs.getPath('mainPage.mainPane.sidebar.classList.contentView');
36
+ view.becomeFirstResponder();
37
+
38
+
39
+ } ;
40
+
41
+ function main() { Docs.main(); }
@@ -0,0 +1,63 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2008-2011 Apple Inc. All rights reserved.
4
+ // License: Licensed under MIT license (see license.js)
5
+ // ==========================================================================
6
+ /*globals Docs */
7
+
8
+ /** @class
9
+
10
+ (Document your Model here)
11
+
12
+ @extends SC.Record
13
+ @version 0.1
14
+ */
15
+ Docs.Class = SC.Record.extend(
16
+ /** @scope Docs.Class.prototype */ {
17
+
18
+ //childRecordNamespace: Docs,
19
+
20
+ name: SC.Record.attr(String),
21
+ displayName: SC.Record.attr(String),
22
+ objectType: SC.Record.attr(String),
23
+ filePath: SC.Record.attr(String),
24
+
25
+ isNamespace: SC.Record.attr(Boolean, {defaultValue: NO}),
26
+ isPrivate: SC.Record.attr(Boolean, {defaultValue: NO}),
27
+ isStatic: SC.Record.attr(Boolean, {defaultValue: NO}),
28
+
29
+ author: SC.Record.attr(String),
30
+ see: SC.Record.attr(Array, {defaultValue: []}),
31
+ since: SC.Record.attr(String),
32
+ version: SC.Record.attr(String),
33
+ deprecated: SC.Record.attr(String),
34
+
35
+ overview: SC.Record.attr(String),
36
+ augments: SC.Record.toMany('Docs.Entity',{isMaster: YES, nested: YES}),
37
+ methods: SC.Record.toMany('Docs.Method',{isMaster: YES, nested: YES}),
38
+ properties: SC.Record.toMany('Docs.Property',{isMaster: YES, nested: YES}),
39
+
40
+ hasProperties: function() {
41
+ return this.getPath('properties.length');
42
+ }.property('properties').cacheable(),
43
+
44
+ hasMethods: function() {
45
+ return this.getPath('methods.length');
46
+ }.property('methods').cacheable(),
47
+
48
+ extendsFrom: function(){
49
+ var augments = this.get('augments');
50
+
51
+ return augments.getEach('desc');
52
+ }.property('augments').cacheable(),
53
+
54
+ formattedOverview: function() {
55
+ var overview = this.get('overview');
56
+
57
+ var converter = new Showdown.converter();
58
+ var html = converter.makeHtml(overview);
59
+
60
+ return html;
61
+ }.property('overview').cacheable()
62
+
63
+ }) ;
@@ -0,0 +1,29 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2008-2011 Apple Inc. All rights reserved.
4
+ // License: Licensed under MIT license (see license.js)
5
+ // ==========================================================================
6
+ /*globals Docs */
7
+
8
+ /** @class
9
+
10
+ (Document your Model here)
11
+
12
+ @extends SC.Record
13
+ @version 0.1
14
+ */
15
+ Docs.Entity = SC.Record.extend(
16
+ /** @scope Docs.Entity.prototype */ {
17
+
18
+ childRecordNamespace: Docs,
19
+
20
+ type: 'Entity',
21
+
22
+ title: SC.Record.attr(String),
23
+ objectType: SC.Record.attr(String, {key: 'type'}),
24
+ name: SC.Record.attr(String),
25
+ isOptional: SC.Record.attr(Boolean, {defaultValue: NO}),
26
+ defaultValue: SC.Record.attr(String),
27
+ desc: SC.Record.attr(String)
28
+
29
+ }) ;
@@ -0,0 +1,79 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2008-2011 Apple Inc. All rights reserved.
4
+ // License: Licensed under MIT license (see license.js)
5
+ // ==========================================================================
6
+ /*globals Docs */
7
+
8
+ /** @class
9
+
10
+ (Document your Model here)
11
+
12
+ @extends SC.Record
13
+ @version 0.1
14
+ */
15
+ Docs.Method = SC.Record.extend(
16
+ /** @scope Docs.Method.prototype */ {
17
+
18
+ childRecordNamespace: Docs,
19
+ type: 'Method',
20
+
21
+ name: SC.Record.attr(String),
22
+ displayName: SC.Record.attr(String),
23
+ objectType: SC.Record.attr(String),
24
+ isPrivate: SC.Record.attr(Boolean, {defaultValue: NO}),
25
+ isStatic: SC.Record.attr(Boolean, {defaultValue: NO}),
26
+ author: SC.Record.attr(String),
27
+ see: SC.Record.attr(Array, {defaultValue: []}),
28
+ since: SC.Record.attr(String),
29
+ version: SC.Record.attr(String),
30
+ deprecated: SC.Record.attr(String),
31
+ augments: SC.Record.toMany(Docs.Entity, {isMaster: YES}),
32
+ overview: SC.Record.attr(String),
33
+ exceptions: SC.Record.toMany(Docs.Entity, {isMaster: YES}),
34
+ returns: SC.Record.toMany(Docs.Entity, {isMaster: YES}),
35
+ icon: sc_static('images/method_icon.png'),
36
+
37
+ returnType: function() {
38
+ return this.getPath('returns.lastObject.objectType');
39
+ }.property('returns').cacheable(),
40
+
41
+ returnText: function() {
42
+ console.log('returnText',this.getPath('returns'));
43
+ return this.getPath('returns.lastObject.desc');
44
+ }.property('returns').cacheable(),
45
+
46
+ signature: function() {
47
+ return 'signature';
48
+ }.property('name','params').cacheable(),
49
+
50
+ params: function() {
51
+ var dataHash = Docs.store.readDataHash(this.get('storeKey'));
52
+ var params = dataHash.params || [];
53
+
54
+ var simpleParams = params.map(function(item,index){
55
+ return {type: item.type, name: item.name};
56
+ });
57
+
58
+ return simpleParams;
59
+ }.property().cacheable(),
60
+
61
+ returns: function() {
62
+ var dataHash = Docs.store.readDataHash(this.get('storeKey'));
63
+ var returns = dataHash.returns || [];
64
+
65
+ var returnObj = returns[returns.length-1];
66
+
67
+ return returnObj;
68
+ }.property().cacheable(),
69
+
70
+ formattedOverview: function() {
71
+ var overview = this.get('overview');
72
+
73
+ var converter = new Showdown.converter();
74
+ var html = converter.makeHtml(overview);
75
+
76
+ return html;
77
+ }.property('overview').cacheable()
78
+
79
+ }) ;
@@ -0,0 +1,48 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2008-2011 Apple Inc. All rights reserved.
4
+ // License: Licensed under MIT license (see license.js)
5
+ // ==========================================================================
6
+ /*globals Docs */
7
+
8
+ /** @class
9
+
10
+ (Document your Model here)
11
+
12
+ @extends SC.Record
13
+ @version 0.1
14
+ */
15
+ Docs.Property = SC.Record.extend(
16
+ /** @scope Docs.Property.prototype */ {
17
+
18
+ childRecordNamespace: Docs,
19
+
20
+ type: 'Property',
21
+
22
+ icon: sc_static('images/property_icon.png'),
23
+
24
+ name: SC.Record.attr(String),
25
+ displayName: SC.Record.attr(String),
26
+ objectType: SC.Record.attr(String),
27
+ propertyType: SC.Record.attr(String),
28
+ author: SC.Record.attr(String),
29
+ see: SC.Record.attr(Array, {defaultValue: []}),
30
+ since: SC.Record.attr(String),
31
+ version: SC.Record.attr(String),
32
+ deprecated: SC.Record.attr(String),
33
+ memberOf: SC.Record.attr(String),
34
+ overview: SC.Record.attr(String),
35
+ defaultValue: SC.Record.attr(String),
36
+ isConstant: SC.Record.attr(Boolean, {defaultValue: NO}),
37
+ isPrivate: SC.Record.attr(Boolean, {defaultValue: NO}),
38
+
39
+ formattedOverview: function() {
40
+ var overview = this.get('overview');
41
+
42
+ var converter = new Showdown.converter();
43
+ var html = converter.makeHtml(overview);
44
+
45
+ return html;
46
+ }.property('overview').cacheable()
47
+
48
+ }) ;
@@ -0,0 +1,9 @@
1
+ <% content_for :loading do %>
2
+ <% # Any HTML in this file will be visible on screen while your page loads
3
+ # its application JavaScript. SproutCore applications are optimized for
4
+ # caching and startup very fast, so your users will often only see this
5
+ # content for a brief moment on their first app load, if at all.
6
+ %>
7
+ <p class="loading">Loading...<p>
8
+
9
+ <% end %>
@@ -0,0 +1,156 @@
1
+ /*
2
+ ==========================================================================
3
+ Project: SproutCore - JavaScript Application Framework
4
+ Copyright: ©2008-2011 Apple Inc. All rights reserved.
5
+ License: Licensed under MIT license (see license.js)
6
+ ==========================================================================
7
+ */
8
+ #mainPane {
9
+ font-family: "Helvetica Neue", "Helvetica", Verdana;
10
+ }
11
+
12
+ #mainPane .class-detail {
13
+ position: absolute;
14
+ top:0;
15
+ left:190px;
16
+ right:0;
17
+ bottom:0;
18
+ background: white;
19
+ overflow:auto;
20
+ font-size:14px;
21
+ -webkit-user-select: text;
22
+ }
23
+
24
+ #mainPane .class-detail #class-details {
25
+ background: #f2f2f2;
26
+ border-bottom: 1px #cccccc solid;
27
+ padding:15px 15px 0 15px;
28
+ }
29
+
30
+ #mainPane .class-detail #class-details .extends .name,
31
+ #mainPane .class-detail #class-details .since .name {
32
+ font-weight:bolder;
33
+ }
34
+
35
+ #mainPane .class-detail #class-details .extends,
36
+ #mainPane .class-detail #class-details .since {
37
+ margin-bottom:15px;
38
+ }
39
+
40
+ #mainPane .class-detail #class-info {
41
+ padding: 20px;
42
+ }
43
+
44
+ #mainPane .class-detail #class-info h2 {
45
+ color: #2b4270;
46
+ margin-bottom:10px;
47
+ }
48
+
49
+ #mainPane .class-header {
50
+ background: #e1e7ee;
51
+ border-bottom: 1px #a8b0ba solid;
52
+ z-index: 4;
53
+ }
54
+
55
+ #mainPane .class-header .class-name {
56
+ font-weight:bolder;
57
+ font-size:25px;
58
+ }
59
+
60
+ #mainPane .symbol-list {
61
+ background: #eef3f6;
62
+ }
63
+
64
+ #mainPane #class-info .subtitles {
65
+ color: gray;
66
+ margin-bottom:5px;
67
+ margin-left:15px;
68
+ }
69
+
70
+ #mainPane #class-info .subtitles .name {
71
+ font-weight:bolder;
72
+ }
73
+
74
+ #mainPane #class-info .subtitles .value {
75
+
76
+ }
77
+
78
+ #mainPane #class-info .overview {
79
+ margin-left:15px;
80
+ margin-bottom:15px;
81
+ }
82
+
83
+ #mainPane #class-info .header {
84
+ font-weight:bolder;
85
+ margin-bottom:10px;
86
+
87
+ }
88
+
89
+ #mainPane ul {
90
+ margin:0;
91
+ }
92
+
93
+ #mainPane .data-type {
94
+ margin-right: 5px;
95
+ color:gray;
96
+ border-radius:4px;
97
+ background: #f3f3f3;
98
+ padding:2px;
99
+ border:1px #ccc solid;
100
+ }
101
+
102
+ #mainPane .data-type.clickable {
103
+
104
+ color:blue;
105
+ text-decoration:underline;
106
+ /*border:1px #8E4602 solid;*/
107
+ /*color:white;*/
108
+ /*box-shadow: 0px 1px 2px #8E4602;*/
109
+ /*background: #DD8304; [> old browsers <]*/
110
+ /*background: -moz-linear-gradient(top, #DD8304 0%, #C64800 100%); [> firefox <]*/
111
+
112
+ /*background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#DD8304), color-stop(100%,#C64800)); [> webkit <]*/
113
+
114
+ /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#DD8304', endColorstr='#C64800',GradientType=0 ); [> ie <]*/
115
+
116
+ /*background: -o-linear-gradient(top, #DD8304 0%,#C64800 100%); [> opera <]*/
117
+ }
118
+
119
+
120
+ #mainPane .method-signature {
121
+ font-weight:bolder;
122
+ }
123
+
124
+ #mainPane #class-info hr {
125
+ border: none;
126
+ background:#a8b0ba;
127
+ height: 1px;
128
+ margin:15px 0;
129
+ }
130
+
131
+ #mainPane #class-info .returns {
132
+ margin-left: 15px;
133
+ }
134
+
135
+ #mainPane #class-info .returns .name {
136
+ /*color: gray;*/
137
+ font-weight:bolder;
138
+ }
139
+
140
+ #mainPane #class-info ul {
141
+ margin-left:15px;
142
+ }
143
+
144
+ #mainPane #class-info li {
145
+ list-style: circle;
146
+ }
147
+
148
+ #mainPane #class-info li.symbol {
149
+ list-style: none;
150
+ }
151
+
152
+ #mainPane #class-info pre {
153
+ background: #E1EBF2;
154
+ padding:5px;
155
+ overflow:auto
156
+ }