jsduck 3.0.pre2 → 3.0.pre3

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