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.
- data/README.md +14 -7
- data/Rakefile +277 -24
- data/bin/compare +163 -0
- data/bin/stats +92 -0
- data/jsduck.gemspec +3 -3
- data/lib/jsduck/accessors.rb +64 -8
- data/lib/jsduck/aggregator.rb +10 -6
- data/lib/jsduck/aliases.rb +3 -2
- data/lib/jsduck/app.rb +51 -44
- data/lib/jsduck/author_tag.rb +11 -0
- data/lib/jsduck/categories.rb +14 -8
- data/lib/jsduck/class.rb +2 -1
- data/lib/jsduck/class_formatter.rb +5 -4
- data/lib/jsduck/doc_author_tag.rb +11 -0
- data/lib/jsduck/doc_formatter.rb +17 -37
- data/lib/jsduck/doc_parser.rb +39 -11
- data/lib/jsduck/exporter.rb +11 -0
- data/lib/jsduck/guides.rb +3 -3
- data/lib/jsduck/images.rb +72 -0
- data/lib/jsduck/js_parser.rb +20 -4
- data/lib/jsduck/lexer.rb +2 -8
- data/lib/jsduck/lint.rb +3 -2
- data/lib/jsduck/logger.rb +24 -5
- data/lib/jsduck/merger.rb +38 -8
- data/lib/jsduck/meta_tag.rb +49 -0
- data/lib/jsduck/meta_tag_loader.rb +48 -0
- data/lib/jsduck/options.rb +37 -25
- data/lib/jsduck/os.rb +11 -0
- data/lib/jsduck/renderer.rb +37 -34
- data/lib/jsduck/search_data.rb +1 -1
- data/lib/jsduck/source_file.rb +13 -8
- data/template-min/app.js +1 -1
- data/template-min/{egIframe.html → extIframe.html} +3 -4
- data/template-min/extjs/ext-all-debug.js +3107 -2026
- data/template-min/extjs/ext-all.js +1 -1
- data/template-min/extjs/resources/css/ext-all.css +1 -1
- data/template-min/resources/css/app.css +1 -1
- data/template-min/resources/images/down-arr.png +0 -0
- data/template-min/resources/images/gettingstarted.jpg +0 -0
- data/template-min/resources/images/ipad-l.jpg +0 -0
- data/template-min/resources/images/ipad-p.jpg +0 -0
- data/template-min/resources/images/iphone-l.jpg +0 -0
- data/template-min/resources/images/iphone-p.jpg +0 -0
- data/template-min/resources/images/iphone-small-l.jpg +0 -0
- data/template-min/resources/images/iphone-small-p.jpg +0 -0
- data/template-min/resources/images/link-arrow-next.png +0 -0
- data/template-min/template.html +5 -1
- data/template-min/touch-welcome.html +122 -0
- data/template-min/touchIframe.html +85 -0
- data/template-min/welcome.html +2 -0
- metadata +25 -8
- data/lib/jsduck/page.rb +0 -118
- data/lib/jsduck/timer.rb +0 -44
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/template-min/template.html
CHANGED
@@ -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 = {
|
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>
|
data/template-min/welcome.html
CHANGED
@@ -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: -
|
4
|
+
hash: -1876988234
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
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-
|
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
|
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/
|
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
|