jsduck 3.0.pre2 → 3.0.pre3

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 (53) hide show
  1. data/README.md +14 -7
  2. data/Rakefile +277 -24
  3. data/bin/compare +163 -0
  4. data/bin/stats +92 -0
  5. data/jsduck.gemspec +3 -3
  6. data/lib/jsduck/accessors.rb +64 -8
  7. data/lib/jsduck/aggregator.rb +10 -6
  8. data/lib/jsduck/aliases.rb +3 -2
  9. data/lib/jsduck/app.rb +51 -44
  10. data/lib/jsduck/author_tag.rb +11 -0
  11. data/lib/jsduck/categories.rb +14 -8
  12. data/lib/jsduck/class.rb +2 -1
  13. data/lib/jsduck/class_formatter.rb +5 -4
  14. data/lib/jsduck/doc_author_tag.rb +11 -0
  15. data/lib/jsduck/doc_formatter.rb +17 -37
  16. data/lib/jsduck/doc_parser.rb +39 -11
  17. data/lib/jsduck/exporter.rb +11 -0
  18. data/lib/jsduck/guides.rb +3 -3
  19. data/lib/jsduck/images.rb +72 -0
  20. data/lib/jsduck/js_parser.rb +20 -4
  21. data/lib/jsduck/lexer.rb +2 -8
  22. data/lib/jsduck/lint.rb +3 -2
  23. data/lib/jsduck/logger.rb +24 -5
  24. data/lib/jsduck/merger.rb +38 -8
  25. data/lib/jsduck/meta_tag.rb +49 -0
  26. data/lib/jsduck/meta_tag_loader.rb +48 -0
  27. data/lib/jsduck/options.rb +37 -25
  28. data/lib/jsduck/os.rb +11 -0
  29. data/lib/jsduck/renderer.rb +37 -34
  30. data/lib/jsduck/search_data.rb +1 -1
  31. data/lib/jsduck/source_file.rb +13 -8
  32. data/template-min/app.js +1 -1
  33. data/template-min/{egIframe.html → extIframe.html} +3 -4
  34. data/template-min/extjs/ext-all-debug.js +3107 -2026
  35. data/template-min/extjs/ext-all.js +1 -1
  36. data/template-min/extjs/resources/css/ext-all.css +1 -1
  37. data/template-min/resources/css/app.css +1 -1
  38. data/template-min/resources/images/down-arr.png +0 -0
  39. data/template-min/resources/images/gettingstarted.jpg +0 -0
  40. data/template-min/resources/images/ipad-l.jpg +0 -0
  41. data/template-min/resources/images/ipad-p.jpg +0 -0
  42. data/template-min/resources/images/iphone-l.jpg +0 -0
  43. data/template-min/resources/images/iphone-p.jpg +0 -0
  44. data/template-min/resources/images/iphone-small-l.jpg +0 -0
  45. data/template-min/resources/images/iphone-small-p.jpg +0 -0
  46. data/template-min/resources/images/link-arrow-next.png +0 -0
  47. data/template-min/template.html +5 -1
  48. data/template-min/touch-welcome.html +122 -0
  49. data/template-min/touchIframe.html +85 -0
  50. data/template-min/welcome.html +2 -0
  51. metadata +25 -8
  52. data/lib/jsduck/page.rb +0 -118
  53. data/lib/jsduck/timer.rb +0 -44
@@ -16,7 +16,11 @@
16
16
  <script type="text/javascript" src="http://use.typekit.com/uxj6dew.js"></script>
17
17
  <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
18
18
  <script type="text/javascript">
19
- Docs = {localStorageDb: "{local_storage_db}", showPrintButton: {show_print_button}};
19
+ Docs = {
20
+ localStorageDb: "{local_storage_db}",
21
+ showPrintButton: {show_print_button},
22
+ touchExamplesUi: {touch_examples_ui}
23
+ };
20
24
  </script>
21
25
  <script type="text/javascript" src="{extjs_path}"></script>
22
26
  <script type="text/javascript" src="app.js"></script>
@@ -0,0 +1,122 @@
1
+ <div id="touch-welcome">
2
+
3
+ <h1 class="klavika">Sencha Touch</h1>
4
+ <h2 class="klavika">The Best HTML5 Mobile App Framework</h2>
5
+
6
+ <a class="api-docs" href="#!/api"><span>View API Documentation</span></a>
7
+
8
+ <div class="header">
9
+ <div class="get-started">
10
+ <a class="video" href="#!/guide/getting_started"><img src="resources/images/gettingstarted.jpg" /></a>
11
+ <h3>Get Started with 2.0</h3>
12
+ <p>Follow this simple guide to get started with Sencha Touch 2. We'll build a small website app with a welcome page, a list and a form</p>
13
+ <a href="#!/guide/getting_started" class="more-icon">Read the guide</a>
14
+ </div>
15
+
16
+ <div class="whats-new">
17
+ <h3>What's new in Touch 2.0</h3>
18
+ <img src="guides/whats_new/icon-lg.png" />
19
+ <div class="right">
20
+ <p>Sencha Touch 2 is all about performance, ease of use and great docs. Here's a guide to all that's new</p>
21
+ <a href="#!/guide/whats_new" class="more-icon">Read the guide</a>
22
+ </div>
23
+ </div>
24
+ </div>
25
+
26
+ <div class="divider"></div>
27
+
28
+ <div class="content-list sample-apps">
29
+ <h3>Sample Apps</h3>
30
+ <a class="more-icon" href="#!/example">View all samples</a>
31
+ <div class="item">
32
+ <a href="#!/example/kiva/index.html">
33
+ <span class="thumb"><img src="touch/examples/kiva/resources/images/kiva.png" /></span>
34
+ Kiva Touch
35
+ </a>
36
+ </div>
37
+ <div class="item">
38
+ <a href="#!/example/twitter/index.html">
39
+ <span class="thumb"><img src="touch/examples/twitter/resources/images/icon.png" /></span>
40
+ Twitter
41
+ </a>
42
+ </div>
43
+ <div class="item">
44
+ <a href="#!/example/kitchensink/index.html">
45
+ <span class="thumb"><img src="touch/examples/kitchensink/resources/img/icon.png" /></span>
46
+ Kitchen Sink
47
+ </a>
48
+ </div>
49
+ </div>
50
+
51
+ <div class="content-list guides">
52
+ <h3>Guides</h3>
53
+ <a class="more-icon" href="#!/guide">View all guides</a>
54
+ <div class="item">
55
+ <a href="#!/guide/class_system">
56
+ <span class="thumb"><img src="guides/class_system/icon-lg.png" /></span>
57
+ Class System
58
+ </a>
59
+ </div>
60
+ <div class="item">
61
+ <a href="#!/guide/components">
62
+ <span class="thumb"><img src="guides/components/icon-lg.png" /></span>
63
+ Components
64
+ </a>
65
+ </div>
66
+ <div class="item">
67
+ <a href="#!/guide/dataview">
68
+ <span class="thumb"><img src="guides/dataview/icon-lg.png" /></span>
69
+ Data Views
70
+ </a>
71
+ </div>
72
+ </div>
73
+
74
+ <div class="content-list components">
75
+ <h3>Components</h3>
76
+ <a class="more-icon" href="#!/example">View all components</a>
77
+ <div class="item">
78
+ <a href="#!/example/tabs2/index.html">
79
+ <span class="thumb"><img src="touch/examples/tabs2/icon.png" /></span>
80
+ Tab Panel
81
+ </a>
82
+ </div>
83
+ <div class="item">
84
+ <a href="#!/example/carousel/index.html">
85
+ <span class="thumb"><img src="touch/examples/carousel/icon.png" /></span>
86
+ Carousel
87
+ </a>
88
+ </div>
89
+ <div class="item">
90
+ <a href="#!/example/nestedlist/index.html">
91
+ <span class="thumb"><img src="touch/examples/nestedlist/icon.png" /></span>
92
+ Nested List
93
+ </a>
94
+ </div>
95
+ </div>
96
+
97
+ <div class="content-list videos">
98
+ <h3>Videos</h3>
99
+ <a class="more-icon" href="#!/video">View all videos</a>
100
+ <div class="item">
101
+ <a href="#!/video/18134446">
102
+ <span class="thumb"><img src="http://b.vimeocdn.com/ts/113/695/113695030_200.jpg" /></span>
103
+ Hello World!
104
+ </a>
105
+ </div>
106
+ <div class="item">
107
+ <a href="#!/video/17882927">
108
+ <span class="thumb"><img src="http://b.vimeocdn.com/ts/111/768/111768410_200.jpg" /></span>
109
+ Performance
110
+ </a>
111
+ </div>
112
+ <div class="item">
113
+ <a href="#!/video/17879651">
114
+ <span class="thumb"><img src="http://b.vimeocdn.com/ts/111/744/111744470_200.jpg" /></span>
115
+ Theming
116
+ </a>
117
+ </div>
118
+ </div>
119
+
120
+ <img id="sencha-stamp" src="http://www.sencha.com/img/sencha-stamp.png" alt="" height="60" width="400">
121
+
122
+ </div>
@@ -0,0 +1,85 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <title>Sencha Examples</title>
6
+
7
+ <script type="text/javascript" src="touch/sencha-touch-all.js"></script>
8
+ <link rel="stylesheet" type="text/css" href="touch/resources/css/sencha-touch.css">
9
+
10
+ <style id="iframe-css" type="text/css"></style>
11
+ <style type="text/css" media="screen">
12
+ html {
13
+ overflow: hidden
14
+ }
15
+
16
+ .home {
17
+ text-align: center;
18
+ }
19
+
20
+ .home img {
21
+ width: 64%;
22
+ }
23
+
24
+ .home h1 {
25
+ font-weight: bold;
26
+ font-size: 1.2em;
27
+ }
28
+
29
+ .home p {
30
+ color: #666;
31
+ font-size: 0.8em;
32
+ line-height: 1.5em;
33
+ margin: 10px 20px 12px 20px;
34
+ }
35
+
36
+ .home h2 {
37
+ color: #999;
38
+ font-size: 0.7em;
39
+ }
40
+
41
+ .twitterView .x-dataview-item {
42
+ padding: 10px;
43
+ min-height: 50px;
44
+ }
45
+
46
+ .twitterView .x-dataview-item img {
47
+ float: left;
48
+ display: block;
49
+ margin-top: 36px;
50
+ }
51
+
52
+ .twitterView .x-dataview-item h2 {
53
+ font-weight: bold;
54
+ color: #333;
55
+ margin: 0px 0px 10px 60px;
56
+ }
57
+
58
+ .twitterView .x-dataview-item p {
59
+ color: #666;
60
+ margin-left: 60px;
61
+ font-size: 0.8em;
62
+ }
63
+ </style>
64
+
65
+ <script type="text/javascript">
66
+ var refreshPage = function(code, options) {
67
+ try {
68
+ document.body.innerHTML = '';
69
+ if (!options.raw) {
70
+ code = "Ext.setup({onReady: function(){" + code + "}});";
71
+ }
72
+ if (options.tablet) {
73
+ // Scale example down to 70% size. Default font-size is 114%
74
+ Ext.get('iframe-css').update("body {font-size: 79.8% !important}");
75
+ }
76
+ eval(code);
77
+ } catch (e) {
78
+ document.body.innerHTML = e;
79
+ }
80
+ }
81
+ </script>
82
+ </head>
83
+ <body>
84
+ </body>
85
+ </html>
@@ -1,3 +1,4 @@
1
+ <div id="extjs-welcome">
1
2
  <div class="content">
2
3
  <header>
3
4
  <h5 class="logo"><a href="http://www.sencha.com">Sencha</a></h5>
@@ -76,3 +77,4 @@
76
77
  <div class="item"><span class="date">May 31</span> Getting started guide updates</div>
77
78
  </div>
78
79
  </div>
80
+ </div>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsduck
3
3
  version: !ruby/object:Gem::Version
4
- hash: -1876988247
4
+ hash: -1876988234
5
5
  prerelease: true
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
- - pre2
10
- version: 3.0.pre2
9
+ - pre3
10
+ version: 3.0.pre3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rene Saarsoo
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-09-20 00:00:00 +03:00
19
+ date: 2011-10-17 00:00:00 +03:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -61,7 +61,7 @@ dependencies:
61
61
  version: "0"
62
62
  type: :runtime
63
63
  version_requirements: *id003
64
- description: Documentation generator for ExtJS 4
64
+ description: Documentation generator for Sencha JS frameworks
65
65
  email: rene.saarsoo@sencha.com
66
66
  executables:
67
67
  - jsduck
@@ -74,7 +74,9 @@ files:
74
74
  - COPYING
75
75
  - README.md
76
76
  - Rakefile
77
+ - bin/compare
77
78
  - bin/jsduck
79
+ - bin/stats
78
80
  - js-classes/Array.js
79
81
  - js-classes/Boolean.js
80
82
  - js-classes/Date.js
@@ -88,16 +90,19 @@ files:
88
90
  - lib/jsduck/aggregator.rb
89
91
  - lib/jsduck/aliases.rb
90
92
  - lib/jsduck/app.rb
93
+ - lib/jsduck/author_tag.rb
91
94
  - lib/jsduck/categories.rb
92
95
  - lib/jsduck/class.rb
93
96
  - lib/jsduck/class_formatter.rb
94
97
  - lib/jsduck/css_parser.rb
98
+ - lib/jsduck/doc_author_tag.rb
95
99
  - lib/jsduck/doc_formatter.rb
96
100
  - lib/jsduck/doc_parser.rb
97
101
  - lib/jsduck/examples.rb
98
102
  - lib/jsduck/exporter.rb
99
103
  - lib/jsduck/guides.rb
100
104
  - lib/jsduck/icons.rb
105
+ - lib/jsduck/images.rb
101
106
  - lib/jsduck/js_literal_builder.rb
102
107
  - lib/jsduck/js_literal_parser.rb
103
108
  - lib/jsduck/js_parser.rb
@@ -106,26 +111,31 @@ files:
106
111
  - lib/jsduck/lint.rb
107
112
  - lib/jsduck/logger.rb
108
113
  - lib/jsduck/merger.rb
114
+ - lib/jsduck/meta_tag.rb
115
+ - lib/jsduck/meta_tag_loader.rb
109
116
  - lib/jsduck/options.rb
110
- - lib/jsduck/page.rb
117
+ - lib/jsduck/os.rb
111
118
  - lib/jsduck/parallel_wrap.rb
112
119
  - lib/jsduck/relations.rb
113
120
  - lib/jsduck/renderer.rb
114
121
  - lib/jsduck/search_data.rb
115
122
  - lib/jsduck/source_file.rb
116
123
  - lib/jsduck/source_writer.rb
117
- - lib/jsduck/timer.rb
118
124
  - lib/jsduck/type_parser.rb
119
125
  - lib/jsduck/videos.rb
120
126
  - lib/jsduck/welcome.rb
127
+ - template-min/extIframe.html
121
128
  - template-min/README.md
122
129
  - template-min/welcome.html
123
130
  - template-min/template.html
131
+ - template-min/touchIframe.html
132
+ - template-min/touch-welcome.html
124
133
  - template-min/resources/images/component-m.png
125
134
  - template-min/resources/images/expandcollapse.png
126
135
  - template-min/resources/images/arrows.png
127
136
  - template-min/resources/images/configs.png
128
137
  - template-min/resources/images/guides.png
138
+ - template-min/resources/images/iphone-l.jpg
129
139
  - template-min/resources/images/example-icons.png
130
140
  - template-min/resources/images/x.png
131
141
  - template-min/resources/images/search-box.png
@@ -135,22 +145,30 @@ files:
135
145
  - template-min/resources/images/logo.png
136
146
  - template-min/resources/images/doc-m.png
137
147
  - template-min/resources/images/logo-screen-noglow.png
148
+ - template-min/resources/images/link-arrow-next.png
138
149
  - template-min/resources/images/icons.png
139
150
  - template-min/resources/images/link-green-standard.png
140
151
  - template-min/resources/images/x12.png
152
+ - template-min/resources/images/gettingstarted.jpg
141
153
  - template-min/resources/images/events.png
142
154
  - template-min/resources/images/loading.gif
143
155
  - template-min/resources/images/properties.png
144
156
  - template-min/resources/images/welcome-bg-js4.gif
157
+ - template-min/resources/images/ipad-l.jpg
145
158
  - template-min/resources/images/elbow-end.gif
159
+ - template-min/resources/images/down-arr.png
146
160
  - template-min/resources/images/class-sm.png
147
161
  - template-min/resources/images/class-m.png
148
162
  - template-min/resources/images/tabs.png
149
163
  - template-min/resources/images/member-hover.gif
164
+ - template-min/resources/images/iphone-small-p.jpg
150
165
  - template-min/resources/images/member-expanded.gif
151
166
  - template-min/resources/images/preview.png
152
167
  - template-min/resources/images/x122.png
168
+ - template-min/resources/images/iphone-p.jpg
153
169
  - template-min/resources/images/hero-extjs4-alt.png
170
+ - template-min/resources/images/iphone-small-l.jpg
171
+ - template-min/resources/images/ipad-p.jpg
154
172
  - template-min/resources/images/loading-title.png
155
173
  - template-min/resources/images/version-tabs.png
156
174
  - template-min/resources/images/more.png
@@ -162,7 +180,6 @@ files:
162
180
  - template-min/resources/prettify/prettify.js
163
181
  - template-min/resources/prettify/prettify.css
164
182
  - template-min/app.js
165
- - template-min/egIframe.html
166
183
  - template-min/print-template.html
167
184
  - template-min/favicon.ico
168
185
  - template-min/extjs/bootstrap.js
data/lib/jsduck/page.rb DELETED
@@ -1,118 +0,0 @@
1
- require 'cgi'
2
- require 'jsduck/doc_formatter'
3
- require 'jsduck/inheritance_tree'
4
- require 'jsduck/cfg_table'
5
- require 'jsduck/property_table'
6
- require 'jsduck/method_table'
7
- require 'jsduck/event_table'
8
-
9
- module JsDuck
10
-
11
- # Creates HTML documentation page for one class.
12
- class Page
13
- # Initializes doc page generator
14
- #
15
- # - cls : the Class object for which to generate documentation
16
- # - relations : access to subclasses, mixins, etc
17
- # - cache : cache for already generated HTML rows for class members
18
- #
19
- def initialize(cls, relations, cache = {})
20
- @cls = cls
21
- @relations = relations
22
- @cache = cache
23
- @formatter = DocFormatter.new
24
- @formatter.class_context = cls.full_name
25
- @formatter.link_tpl = '<a href="output/%c.html%M" rel="%c%M" class="docClass">%a</a>'
26
- @formatter.relations = relations
27
- end
28
-
29
- # Setters to override link and image templates
30
- def link_tpl=(tpl)
31
- @formatter.link_tpl = tpl
32
- end
33
- def img_tpl=(tpl)
34
- @formatter.img_tpl = tpl
35
- end
36
-
37
- def to_html
38
- [
39
- '<div class="body-wrap">',
40
- inheritance_tree,
41
- heading,
42
- abstract,
43
- description,
44
- "<div class='hr'></div>",
45
- CfgTable.new(@cls, @formatter, @cache).to_html,
46
- PropertyTable.new(@cls, @formatter, @cache).to_html,
47
- MethodTable.new(@cls, @formatter, @cache).to_html,
48
- EventTable.new(@cls, @formatter, @cache).to_html,
49
- "</div>",
50
- ].join("\n")
51
- end
52
-
53
- # only render the tree if class has at least one ancestor
54
- def inheritance_tree
55
- @cls.parent ? InheritanceTree.new(@cls, @formatter).to_html : ""
56
- end
57
-
58
- def heading
59
- "<h1>Class <a href='source/#{@cls[:href]}'>#{@cls.full_name}</a></h1>"
60
- end
61
-
62
- def abstract
63
- [
64
- "<table cellspacing='0'>",
65
- boolean_row("Alternate names:", @cls[:alternateClassNames].join(", ")),
66
- row("Extends:", extends_link),
67
- classes_row("Mixins:", @cls.mixins),
68
- row("Defined In:", file_link),
69
- classes_row("Subclasses:", @relations.subclasses(@cls)),
70
- classes_row("Mixed into:", @relations.mixed_into(@cls)),
71
- boolean_row("xtype:", @cls[:xtype]),
72
- boolean_row("Author:", @cls[:author]),
73
- boolean_row("Author of docs:", @cls[:docauthor]),
74
- "</table>",
75
- ].join("\n")
76
- end
77
-
78
- def class_link(class_name, label=nil)
79
- label = label || class_name
80
- @formatter.link(class_name, nil, label || class_name)
81
- end
82
-
83
- def file_link
84
- "<a href='source/#{@cls[:href]}'>#{File.basename(@cls[:filename])}</a>"
85
- end
86
-
87
- def extends_link
88
- if @cls[:extends]
89
- @relations[@cls[:extends]] ? class_link(@cls[:extends]) : @cls[:extends]
90
- else
91
- "Object"
92
- end
93
- end
94
-
95
- def classes_row(label, classes)
96
- if classes.length > 0
97
- classes = classes.sort {|a, b| a.short_name <=> b.short_name }
98
- html = classes.collect {|cls| class_link(cls.full_name, cls.short_name) }.join(", ")
99
- row(label, html)
100
- else
101
- ""
102
- end
103
- end
104
-
105
- def boolean_row(label, item)
106
- (item && item != "") ? row(label, CGI.escapeHTML(item)) : ""
107
- end
108
-
109
- def row(label, info)
110
- "<tr><td class='label'>#{label}</td><td class='hd-info'>#{info}</td></tr>"
111
- end
112
-
113
- def description
114
- "<div class='description'>#{@formatter.format(@cls[:doc])}</div>"
115
- end
116
- end
117
-
118
- end
data/lib/jsduck/timer.rb DELETED
@@ -1,44 +0,0 @@
1
- require 'jsduck/logger'
2
-
3
- module JsDuck
4
-
5
- # Helper for timing execution of named code blocks.
6
- #
7
- # timer = Timer.new
8
- # a = timer.time(:sum) { 5 + 5 }
9
- # b = timer.time(:sum) { 5 + 5 }
10
- # c = timer.time(:mult) { 5 * 5 }
11
- # d = timer.time(:mult) { 5 * 5 }
12
- # timer.report
13
- #
14
- # The #report method will print sum of the time spent in each
15
- # category.
16
- #
17
- class Timer
18
- def initialize
19
- @timings = {}
20
- end
21
-
22
- # Performs timing of one code block.
23
- # Returns the same value that code block returns.
24
- def time(name)
25
- begin_time = Time.now
26
- result = yield
27
- interval = Time.now - begin_time
28
- if @timings[name]
29
- @timings[name] += interval
30
- else
31
- @timings[name] = interval
32
- end
33
- result
34
- end
35
-
36
- # prints timings report to log
37
- def report
38
- @timings.each do |name, time|
39
- Logger.instance.log("#{name}:\t#{time} seconds")
40
- end
41
- end
42
- end
43
-
44
- end