sc-docs 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ }