jsduck 0.6.1 → 2.0.pre

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 (453) hide show
  1. data/.gitignore +4 -0
  2. data/README.md +35 -13
  3. data/Rakefile +129 -0
  4. data/bin/jsduck +112 -20
  5. data/jsduck.gemspec +10 -7
  6. data/lib/jsduck/aggregator.rb +46 -20
  7. data/lib/jsduck/aliases.rb +39 -0
  8. data/lib/jsduck/app.rb +123 -51
  9. data/lib/jsduck/categories.rb +132 -0
  10. data/lib/jsduck/class.rb +71 -18
  11. data/lib/jsduck/doc_formatter.rb +61 -26
  12. data/lib/jsduck/doc_parser.rb +53 -2
  13. data/lib/jsduck/exporter.rb +14 -15
  14. data/lib/jsduck/guides.rb +110 -0
  15. data/lib/jsduck/js_parser.rb +18 -4
  16. data/lib/jsduck/jsonp.rb +17 -0
  17. data/lib/jsduck/logger.rb +36 -0
  18. data/lib/jsduck/merger.rb +69 -51
  19. data/lib/jsduck/page.rb +1 -1
  20. data/lib/jsduck/relations.rb +14 -3
  21. data/lib/jsduck/{members.rb → search_data.rb} +3 -28
  22. data/lib/jsduck/source_file.rb +4 -4
  23. data/lib/jsduck/source_writer.rb +2 -2
  24. data/lib/jsduck/timer.rb +6 -2
  25. data/lib/jsduck/tree.rb +29 -16
  26. data/lib/jsduck/tree_icons.rb +1 -1
  27. data/template/README.md +14 -0
  28. data/template/app.js +25 -0
  29. data/template/app/Application.js +53 -0
  30. data/template/app/Favorites.js +88 -0
  31. data/template/app/History.js +45 -0
  32. data/template/app/LocalStore.js +45 -0
  33. data/template/app/Settings.js +39 -0
  34. data/template/app/Syntax.js +20 -0
  35. data/template/app/controller/Classes.js +301 -0
  36. data/template/app/controller/Search.js +156 -0
  37. data/template/app/model/Favorite.js +11 -0
  38. data/template/app/model/Setting.js +11 -0
  39. data/template/app/store/Favorites.js +7 -0
  40. data/template/app/store/Search.js +14 -0
  41. data/template/app/store/Settings.js +7 -0
  42. data/template/app/view/ClassGrid.js +109 -0
  43. data/template/app/view/HoverMenu.js +59 -0
  44. data/template/app/view/HoverMenuButton.js +147 -0
  45. data/template/app/view/Viewport.js +240 -0
  46. data/template/app/view/cls/Header.js +47 -0
  47. data/template/app/view/cls/Overview.js +415 -0
  48. data/template/app/view/cls/Toolbar.js +199 -0
  49. data/template/app/view/index/Container.js +63 -0
  50. data/template/app/view/search/Dropdown.js +53 -0
  51. data/template/app/view/tree/Tree.js +133 -0
  52. data/template/favicon.ico +0 -0
  53. data/template/index.html +32 -37
  54. data/template/{resources/prettify → prettify}/prettify.css +0 -0
  55. data/template/{resources/prettify → prettify}/prettify.js +0 -0
  56. data/template/resources/images/class-m.png +0 -0
  57. data/template/resources/images/class-sm.png +0 -0
  58. data/template/resources/images/component-m.png +0 -0
  59. data/template/resources/images/configs.png +0 -0
  60. data/template/resources/images/data-package.png +0 -0
  61. data/template/resources/images/doc-m.png +0 -0
  62. data/template/resources/images/drag-bar-center.png +0 -0
  63. data/template/resources/{elbow-end.gif → images/elbow-end.gif} +0 -0
  64. data/template/resources/images/events.png +0 -0
  65. data/template/resources/images/expandcollapse.png +0 -0
  66. data/template/resources/images/guide-icon.png +0 -0
  67. data/template/resources/images/guides.png +0 -0
  68. data/template/resources/images/headBG.png +0 -0
  69. data/template/resources/images/header.gif +0 -0
  70. data/template/resources/images/icon.png +0 -0
  71. data/template/resources/images/icons.png +0 -0
  72. data/template/resources/images/loading-title.png +0 -0
  73. data/template/resources/images/loading.gif +0 -0
  74. data/template/resources/{member-collapsed.gif → images/member-collapsed.gif} +0 -0
  75. data/template/resources/{member-expanded.gif → images/member-expanded.gif} +0 -0
  76. data/template/resources/{member-hover.gif → images/member-hover.gif} +0 -0
  77. data/template/resources/images/methods.png +0 -0
  78. data/template/resources/images/model.png +0 -0
  79. data/template/resources/images/properties.png +0 -0
  80. data/template/resources/images/root-lines.png +0 -0
  81. data/template/resources/images/search-box.png +0 -0
  82. data/template/resources/images/singleton-m.png +0 -0
  83. data/template/resources/images/version-tabs.png +0 -0
  84. data/template/resources/images/x.png +0 -0
  85. data/template/resources/images/x12.png +0 -0
  86. metadata +84 -387
  87. data/lib/jsduck/cfg_table.rb +0 -21
  88. data/lib/jsduck/event_table.rb +0 -33
  89. data/lib/jsduck/inheritance_tree.rb +0 -42
  90. data/lib/jsduck/long_params.rb +0 -30
  91. data/lib/jsduck/method_table.rb +0 -45
  92. data/lib/jsduck/property_table.rb +0 -21
  93. data/lib/jsduck/short_params.rb +0 -24
  94. data/lib/jsduck/table.rb +0 -121
  95. data/template/resources/TabCloseMenu.js +0 -150
  96. data/template/resources/block-bottom.gif +0 -0
  97. data/template/resources/block-top.gif +0 -0
  98. data/template/resources/class.gif +0 -0
  99. data/template/resources/cmp.gif +0 -0
  100. data/template/resources/collapse-all.gif +0 -0
  101. data/template/resources/config.gif +0 -0
  102. data/template/resources/css/ext-all.css +0 -6993
  103. data/template/resources/css/xtheme-gray.css +0 -1654
  104. data/template/resources/docs.css +0 -361
  105. data/template/resources/docs.gif +0 -0
  106. data/template/resources/docs.js +0 -769
  107. data/template/resources/event.gif +0 -0
  108. data/template/resources/expand-all.gif +0 -0
  109. data/template/resources/expand-bg-over.gif +0 -0
  110. data/template/resources/expand-bg.gif +0 -0
  111. data/template/resources/expand-members.gif +0 -0
  112. data/template/resources/ext-all.js +0 -11
  113. data/template/resources/ext-base.js +0 -7
  114. data/template/resources/extanim32.gif +0 -0
  115. data/template/resources/fav.gif +0 -0
  116. data/template/resources/favicon.ico +0 -0
  117. data/template/resources/hd-bg.png +0 -0
  118. data/template/resources/hide-inherited.gif +0 -0
  119. data/template/resources/images/default/box/corners-blue.gif +0 -0
  120. data/template/resources/images/default/box/corners.gif +0 -0
  121. data/template/resources/images/default/box/l-blue.gif +0 -0
  122. data/template/resources/images/default/box/l.gif +0 -0
  123. data/template/resources/images/default/box/r-blue.gif +0 -0
  124. data/template/resources/images/default/box/r.gif +0 -0
  125. data/template/resources/images/default/box/tb-blue.gif +0 -0
  126. data/template/resources/images/default/box/tb.gif +0 -0
  127. data/template/resources/images/default/button/arrow.gif +0 -0
  128. data/template/resources/images/default/button/btn.gif +0 -0
  129. data/template/resources/images/default/button/group-cs.gif +0 -0
  130. data/template/resources/images/default/button/group-lr.gif +0 -0
  131. data/template/resources/images/default/button/group-tb.gif +0 -0
  132. data/template/resources/images/default/button/s-arrow-b-noline.gif +0 -0
  133. data/template/resources/images/default/button/s-arrow-b.gif +0 -0
  134. data/template/resources/images/default/button/s-arrow-bo.gif +0 -0
  135. data/template/resources/images/default/button/s-arrow-noline.gif +0 -0
  136. data/template/resources/images/default/button/s-arrow-o.gif +0 -0
  137. data/template/resources/images/default/button/s-arrow.gif +0 -0
  138. data/template/resources/images/default/dd/drop-add.gif +0 -0
  139. data/template/resources/images/default/dd/drop-no.gif +0 -0
  140. data/template/resources/images/default/dd/drop-yes.gif +0 -0
  141. data/template/resources/images/default/editor/tb-sprite.gif +0 -0
  142. data/template/resources/images/default/form/checkbox.gif +0 -0
  143. data/template/resources/images/default/form/clear-trigger.gif +0 -0
  144. data/template/resources/images/default/form/clear-trigger.psd +0 -0
  145. data/template/resources/images/default/form/date-trigger.gif +0 -0
  146. data/template/resources/images/default/form/date-trigger.psd +0 -0
  147. data/template/resources/images/default/form/error-tip-corners.gif +0 -0
  148. data/template/resources/images/default/form/exclamation.gif +0 -0
  149. data/template/resources/images/default/form/radio.gif +0 -0
  150. data/template/resources/images/default/form/search-trigger.gif +0 -0
  151. data/template/resources/images/default/form/search-trigger.psd +0 -0
  152. data/template/resources/images/default/form/text-bg.gif +0 -0
  153. data/template/resources/images/default/form/trigger-square.gif +0 -0
  154. data/template/resources/images/default/form/trigger-square.psd +0 -0
  155. data/template/resources/images/default/form/trigger-tpl.gif +0 -0
  156. data/template/resources/images/default/form/trigger.gif +0 -0
  157. data/template/resources/images/default/form/trigger.psd +0 -0
  158. data/template/resources/images/default/gradient-bg.gif +0 -0
  159. data/template/resources/images/default/grid/arrow-left-white.gif +0 -0
  160. data/template/resources/images/default/grid/arrow-right-white.gif +0 -0
  161. data/template/resources/images/default/grid/col-move-bottom.gif +0 -0
  162. data/template/resources/images/default/grid/col-move-top.gif +0 -0
  163. data/template/resources/images/default/grid/columns.gif +0 -0
  164. data/template/resources/images/default/grid/dirty.gif +0 -0
  165. data/template/resources/images/default/grid/done.gif +0 -0
  166. data/template/resources/images/default/grid/drop-no.gif +0 -0
  167. data/template/resources/images/default/grid/drop-yes.gif +0 -0
  168. data/template/resources/images/default/grid/footer-bg.gif +0 -0
  169. data/template/resources/images/default/grid/grid-blue-hd.gif +0 -0
  170. data/template/resources/images/default/grid/grid-blue-split.gif +0 -0
  171. data/template/resources/images/default/grid/grid-hrow.gif +0 -0
  172. data/template/resources/images/default/grid/grid-loading.gif +0 -0
  173. data/template/resources/images/default/grid/grid-split.gif +0 -0
  174. data/template/resources/images/default/grid/grid-vista-hd.gif +0 -0
  175. data/template/resources/images/default/grid/grid3-hd-btn.gif +0 -0
  176. data/template/resources/images/default/grid/grid3-hrow-over.gif +0 -0
  177. data/template/resources/images/default/grid/grid3-hrow.gif +0 -0
  178. data/template/resources/images/default/grid/grid3-special-col-bg.gif +0 -0
  179. data/template/resources/images/default/grid/grid3-special-col-sel-bg.gif +0 -0
  180. data/template/resources/images/default/grid/group-by.gif +0 -0
  181. data/template/resources/images/default/grid/group-collapse.gif +0 -0
  182. data/template/resources/images/default/grid/group-expand-sprite.gif +0 -0
  183. data/template/resources/images/default/grid/group-expand.gif +0 -0
  184. data/template/resources/images/default/grid/hd-pop.gif +0 -0
  185. data/template/resources/images/default/grid/hmenu-asc.gif +0 -0
  186. data/template/resources/images/default/grid/hmenu-desc.gif +0 -0
  187. data/template/resources/images/default/grid/hmenu-lock.gif +0 -0
  188. data/template/resources/images/default/grid/hmenu-lock.png +0 -0
  189. data/template/resources/images/default/grid/hmenu-unlock.gif +0 -0
  190. data/template/resources/images/default/grid/hmenu-unlock.png +0 -0
  191. data/template/resources/images/default/grid/invalid_line.gif +0 -0
  192. data/template/resources/images/default/grid/loading.gif +0 -0
  193. data/template/resources/images/default/grid/mso-hd.gif +0 -0
  194. data/template/resources/images/default/grid/nowait.gif +0 -0
  195. data/template/resources/images/default/grid/page-first-disabled.gif +0 -0
  196. data/template/resources/images/default/grid/page-first.gif +0 -0
  197. data/template/resources/images/default/grid/page-last-disabled.gif +0 -0
  198. data/template/resources/images/default/grid/page-last.gif +0 -0
  199. data/template/resources/images/default/grid/page-next-disabled.gif +0 -0
  200. data/template/resources/images/default/grid/page-next.gif +0 -0
  201. data/template/resources/images/default/grid/page-prev-disabled.gif +0 -0
  202. data/template/resources/images/default/grid/page-prev.gif +0 -0
  203. data/template/resources/images/default/grid/pick-button.gif +0 -0
  204. data/template/resources/images/default/grid/refresh.gif +0 -0
  205. data/template/resources/images/default/grid/row-check-sprite.gif +0 -0
  206. data/template/resources/images/default/grid/row-expand-sprite.gif +0 -0
  207. data/template/resources/images/default/grid/row-over.gif +0 -0
  208. data/template/resources/images/default/grid/row-sel.gif +0 -0
  209. data/template/resources/images/default/grid/sort-hd.gif +0 -0
  210. data/template/resources/images/default/grid/sort_asc.gif +0 -0
  211. data/template/resources/images/default/grid/sort_desc.gif +0 -0
  212. data/template/resources/images/default/grid/wait.gif +0 -0
  213. data/template/resources/images/default/layout/collapse.gif +0 -0
  214. data/template/resources/images/default/layout/expand.gif +0 -0
  215. data/template/resources/images/default/layout/gradient-bg.gif +0 -0
  216. data/template/resources/images/default/layout/mini-bottom.gif +0 -0
  217. data/template/resources/images/default/layout/mini-left.gif +0 -0
  218. data/template/resources/images/default/layout/mini-right.gif +0 -0
  219. data/template/resources/images/default/layout/mini-top.gif +0 -0
  220. data/template/resources/images/default/layout/ns-collapse.gif +0 -0
  221. data/template/resources/images/default/layout/ns-expand.gif +0 -0
  222. data/template/resources/images/default/layout/panel-close.gif +0 -0
  223. data/template/resources/images/default/layout/panel-title-bg.gif +0 -0
  224. data/template/resources/images/default/layout/panel-title-light-bg.gif +0 -0
  225. data/template/resources/images/default/layout/stick.gif +0 -0
  226. data/template/resources/images/default/layout/stuck.gif +0 -0
  227. data/template/resources/images/default/layout/tab-close-on.gif +0 -0
  228. data/template/resources/images/default/layout/tab-close.gif +0 -0
  229. data/template/resources/images/default/menu/checked.gif +0 -0
  230. data/template/resources/images/default/menu/group-checked.gif +0 -0
  231. data/template/resources/images/default/menu/item-over.gif +0 -0
  232. data/template/resources/images/default/menu/menu-parent.gif +0 -0
  233. data/template/resources/images/default/menu/menu.gif +0 -0
  234. data/template/resources/images/default/menu/unchecked.gif +0 -0
  235. data/template/resources/images/default/panel/corners-sprite.gif +0 -0
  236. data/template/resources/images/default/panel/left-right.gif +0 -0
  237. data/template/resources/images/default/panel/light-hd.gif +0 -0
  238. data/template/resources/images/default/panel/tool-sprite-tpl.gif +0 -0
  239. data/template/resources/images/default/panel/tool-sprites.gif +0 -0
  240. data/template/resources/images/default/panel/tools-sprites-trans.gif +0 -0
  241. data/template/resources/images/default/panel/top-bottom.gif +0 -0
  242. data/template/resources/images/default/panel/top-bottom.png +0 -0
  243. data/template/resources/images/default/panel/white-corners-sprite.gif +0 -0
  244. data/template/resources/images/default/panel/white-left-right.gif +0 -0
  245. data/template/resources/images/default/panel/white-top-bottom.gif +0 -0
  246. data/template/resources/images/default/progress/progress-bg.gif +0 -0
  247. data/template/resources/images/default/qtip/bg.gif +0 -0
  248. data/template/resources/images/default/qtip/close.gif +0 -0
  249. data/template/resources/images/default/qtip/tip-anchor-sprite.gif +0 -0
  250. data/template/resources/images/default/qtip/tip-sprite.gif +0 -0
  251. data/template/resources/images/default/s.gif +0 -0
  252. data/template/resources/images/default/shadow-c.png +0 -0
  253. data/template/resources/images/default/shadow-lr.png +0 -0
  254. data/template/resources/images/default/shadow.png +0 -0
  255. data/template/resources/images/default/shared/blue-loading.gif +0 -0
  256. data/template/resources/images/default/shared/calendar.gif +0 -0
  257. data/template/resources/images/default/shared/glass-bg.gif +0 -0
  258. data/template/resources/images/default/shared/hd-sprite.gif +0 -0
  259. data/template/resources/images/default/shared/large-loading.gif +0 -0
  260. data/template/resources/images/default/shared/left-btn.gif +0 -0
  261. data/template/resources/images/default/shared/loading-balls.gif +0 -0
  262. data/template/resources/images/default/shared/right-btn.gif +0 -0
  263. data/template/resources/images/default/shared/warning.gif +0 -0
  264. data/template/resources/images/default/sizer/e-handle-dark.gif +0 -0
  265. data/template/resources/images/default/sizer/e-handle.gif +0 -0
  266. data/template/resources/images/default/sizer/ne-handle-dark.gif +0 -0
  267. data/template/resources/images/default/sizer/ne-handle.gif +0 -0
  268. data/template/resources/images/default/sizer/nw-handle-dark.gif +0 -0
  269. data/template/resources/images/default/sizer/nw-handle.gif +0 -0
  270. data/template/resources/images/default/sizer/s-handle-dark.gif +0 -0
  271. data/template/resources/images/default/sizer/s-handle.gif +0 -0
  272. data/template/resources/images/default/sizer/se-handle-dark.gif +0 -0
  273. data/template/resources/images/default/sizer/se-handle.gif +0 -0
  274. data/template/resources/images/default/sizer/square.gif +0 -0
  275. data/template/resources/images/default/sizer/sw-handle-dark.gif +0 -0
  276. data/template/resources/images/default/sizer/sw-handle.gif +0 -0
  277. data/template/resources/images/default/slider/slider-bg.png +0 -0
  278. data/template/resources/images/default/slider/slider-thumb.png +0 -0
  279. data/template/resources/images/default/slider/slider-v-bg.png +0 -0
  280. data/template/resources/images/default/slider/slider-v-thumb.png +0 -0
  281. data/template/resources/images/default/tabs/scroll-left.gif +0 -0
  282. data/template/resources/images/default/tabs/scroll-right.gif +0 -0
  283. data/template/resources/images/default/tabs/scroller-bg.gif +0 -0
  284. data/template/resources/images/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
  285. data/template/resources/images/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
  286. data/template/resources/images/default/tabs/tab-btm-left-bg.gif +0 -0
  287. data/template/resources/images/default/tabs/tab-btm-over-left-bg.gif +0 -0
  288. data/template/resources/images/default/tabs/tab-btm-over-right-bg.gif +0 -0
  289. data/template/resources/images/default/tabs/tab-btm-right-bg.gif +0 -0
  290. data/template/resources/images/default/tabs/tab-close.gif +0 -0
  291. data/template/resources/images/default/tabs/tab-strip-bg.gif +0 -0
  292. data/template/resources/images/default/tabs/tab-strip-bg.png +0 -0
  293. data/template/resources/images/default/tabs/tab-strip-btm-bg.gif +0 -0
  294. data/template/resources/images/default/tabs/tabs-sprite.gif +0 -0
  295. data/template/resources/images/default/toolbar/bg.gif +0 -0
  296. data/template/resources/images/default/toolbar/btn-arrow-light.gif +0 -0
  297. data/template/resources/images/default/toolbar/btn-arrow.gif +0 -0
  298. data/template/resources/images/default/toolbar/btn-over-bg.gif +0 -0
  299. data/template/resources/images/default/toolbar/gray-bg.gif +0 -0
  300. data/template/resources/images/default/toolbar/more.gif +0 -0
  301. data/template/resources/images/default/toolbar/tb-bg.gif +0 -0
  302. data/template/resources/images/default/toolbar/tb-btn-sprite.gif +0 -0
  303. data/template/resources/images/default/toolbar/tb-xl-btn-sprite.gif +0 -0
  304. data/template/resources/images/default/toolbar/tb-xl-sep.gif +0 -0
  305. data/template/resources/images/default/tree/arrows.gif +0 -0
  306. data/template/resources/images/default/tree/drop-add.gif +0 -0
  307. data/template/resources/images/default/tree/drop-between.gif +0 -0
  308. data/template/resources/images/default/tree/drop-no.gif +0 -0
  309. data/template/resources/images/default/tree/drop-over.gif +0 -0
  310. data/template/resources/images/default/tree/drop-under.gif +0 -0
  311. data/template/resources/images/default/tree/drop-yes.gif +0 -0
  312. data/template/resources/images/default/tree/elbow-end-minus-nl.gif +0 -0
  313. data/template/resources/images/default/tree/elbow-end-minus.gif +0 -0
  314. data/template/resources/images/default/tree/elbow-end-plus-nl.gif +0 -0
  315. data/template/resources/images/default/tree/elbow-end-plus.gif +0 -0
  316. data/template/resources/images/default/tree/elbow-end.gif +0 -0
  317. data/template/resources/images/default/tree/elbow-line.gif +0 -0
  318. data/template/resources/images/default/tree/elbow-minus-nl.gif +0 -0
  319. data/template/resources/images/default/tree/elbow-minus.gif +0 -0
  320. data/template/resources/images/default/tree/elbow-plus-nl.gif +0 -0
  321. data/template/resources/images/default/tree/elbow-plus.gif +0 -0
  322. data/template/resources/images/default/tree/elbow.gif +0 -0
  323. data/template/resources/images/default/tree/folder-open.gif +0 -0
  324. data/template/resources/images/default/tree/folder.gif +0 -0
  325. data/template/resources/images/default/tree/leaf.gif +0 -0
  326. data/template/resources/images/default/tree/loading.gif +0 -0
  327. data/template/resources/images/default/tree/s.gif +0 -0
  328. data/template/resources/images/default/window/icon-error.gif +0 -0
  329. data/template/resources/images/default/window/icon-info.gif +0 -0
  330. data/template/resources/images/default/window/icon-question.gif +0 -0
  331. data/template/resources/images/default/window/icon-warning.gif +0 -0
  332. data/template/resources/images/default/window/left-corners.png +0 -0
  333. data/template/resources/images/default/window/left-corners.psd +0 -0
  334. data/template/resources/images/default/window/left-right.png +0 -0
  335. data/template/resources/images/default/window/left-right.psd +0 -0
  336. data/template/resources/images/default/window/right-corners.png +0 -0
  337. data/template/resources/images/default/window/right-corners.psd +0 -0
  338. data/template/resources/images/default/window/top-bottom.png +0 -0
  339. data/template/resources/images/default/window/top-bottom.psd +0 -0
  340. data/template/resources/images/gray/button/btn-arrow.gif +0 -0
  341. data/template/resources/images/gray/button/btn-sprite.gif +0 -0
  342. data/template/resources/images/gray/button/btn.gif +0 -0
  343. data/template/resources/images/gray/button/group-cs.gif +0 -0
  344. data/template/resources/images/gray/button/group-lr.gif +0 -0
  345. data/template/resources/images/gray/button/group-tb.gif +0 -0
  346. data/template/resources/images/gray/button/s-arrow-bo.gif +0 -0
  347. data/template/resources/images/gray/button/s-arrow-o.gif +0 -0
  348. data/template/resources/images/gray/form/clear-trigger.gif +0 -0
  349. data/template/resources/images/gray/form/date-trigger.gif +0 -0
  350. data/template/resources/images/gray/form/search-trigger.gif +0 -0
  351. data/template/resources/images/gray/form/trigger-square.gif +0 -0
  352. data/template/resources/images/gray/form/trigger.gif +0 -0
  353. data/template/resources/images/gray/gradient-bg.gif +0 -0
  354. data/template/resources/images/gray/grid/col-move-bottom.gif +0 -0
  355. data/template/resources/images/gray/grid/col-move-top.gif +0 -0
  356. data/template/resources/images/gray/grid/grid3-hd-btn.gif +0 -0
  357. data/template/resources/images/gray/grid/grid3-hrow-over.gif +0 -0
  358. data/template/resources/images/gray/grid/grid3-hrow-over2.gif +0 -0
  359. data/template/resources/images/gray/grid/grid3-hrow.gif +0 -0
  360. data/template/resources/images/gray/grid/grid3-hrow2.gif +0 -0
  361. data/template/resources/images/gray/grid/grid3-special-col-bg.gif +0 -0
  362. data/template/resources/images/gray/grid/grid3-special-col-bg2.gif +0 -0
  363. data/template/resources/images/gray/grid/grid3-special-col-sel-bg.gif +0 -0
  364. data/template/resources/images/gray/grid/group-collapse.gif +0 -0
  365. data/template/resources/images/gray/grid/group-expand-sprite.gif +0 -0
  366. data/template/resources/images/gray/grid/group-expand.gif +0 -0
  367. data/template/resources/images/gray/grid/page-first.gif +0 -0
  368. data/template/resources/images/gray/grid/page-last.gif +0 -0
  369. data/template/resources/images/gray/grid/page-next.gif +0 -0
  370. data/template/resources/images/gray/grid/page-prev.gif +0 -0
  371. data/template/resources/images/gray/grid/refresh.gif +0 -0
  372. data/template/resources/images/gray/grid/row-expand-sprite.gif +0 -0
  373. data/template/resources/images/gray/grid/sort_asc.gif +0 -0
  374. data/template/resources/images/gray/grid/sort_desc.gif +0 -0
  375. data/template/resources/images/gray/menu/group-checked.gif +0 -0
  376. data/template/resources/images/gray/menu/item-over-disabled.gif +0 -0
  377. data/template/resources/images/gray/menu/item-over.gif +0 -0
  378. data/template/resources/images/gray/menu/menu-parent.gif +0 -0
  379. data/template/resources/images/gray/panel/corners-sprite.gif +0 -0
  380. data/template/resources/images/gray/panel/left-right.gif +0 -0
  381. data/template/resources/images/gray/panel/light-hd.gif +0 -0
  382. data/template/resources/images/gray/panel/tool-sprite-tpl.gif +0 -0
  383. data/template/resources/images/gray/panel/tool-sprites.gif +0 -0
  384. data/template/resources/images/gray/panel/tools-sprites-trans.gif +0 -0
  385. data/template/resources/images/gray/panel/top-bottom.gif +0 -0
  386. data/template/resources/images/gray/panel/top-bottom.png +0 -0
  387. data/template/resources/images/gray/panel/white-corners-sprite.gif +0 -0
  388. data/template/resources/images/gray/panel/white-left-right.gif +0 -0
  389. data/template/resources/images/gray/panel/white-top-bottom.gif +0 -0
  390. data/template/resources/images/gray/progress/progress-bg.gif +0 -0
  391. data/template/resources/images/gray/qtip/bg.gif +0 -0
  392. data/template/resources/images/gray/qtip/close.gif +0 -0
  393. data/template/resources/images/gray/qtip/tip-anchor-sprite.gif +0 -0
  394. data/template/resources/images/gray/qtip/tip-sprite.gif +0 -0
  395. data/template/resources/images/gray/s.gif +0 -0
  396. data/template/resources/images/gray/shared/hd-sprite.gif +0 -0
  397. data/template/resources/images/gray/shared/left-btn.gif +0 -0
  398. data/template/resources/images/gray/shared/right-btn.gif +0 -0
  399. data/template/resources/images/gray/sizer/e-handle.gif +0 -0
  400. data/template/resources/images/gray/sizer/ne-handle.gif +0 -0
  401. data/template/resources/images/gray/sizer/nw-handle.gif +0 -0
  402. data/template/resources/images/gray/sizer/s-handle.gif +0 -0
  403. data/template/resources/images/gray/sizer/se-handle.gif +0 -0
  404. data/template/resources/images/gray/sizer/square.gif +0 -0
  405. data/template/resources/images/gray/sizer/sw-handle.gif +0 -0
  406. data/template/resources/images/gray/slider/slider-thumb.png +0 -0
  407. data/template/resources/images/gray/slider/slider-v-thumb.png +0 -0
  408. data/template/resources/images/gray/tabs/scroll-left.gif +0 -0
  409. data/template/resources/images/gray/tabs/scroll-right.gif +0 -0
  410. data/template/resources/images/gray/tabs/scroller-bg.gif +0 -0
  411. data/template/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif +0 -0
  412. data/template/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif +0 -0
  413. data/template/resources/images/gray/tabs/tab-btm-left-bg.gif +0 -0
  414. data/template/resources/images/gray/tabs/tab-btm-over-left-bg.gif +0 -0
  415. data/template/resources/images/gray/tabs/tab-btm-over-right-bg.gif +0 -0
  416. data/template/resources/images/gray/tabs/tab-btm-right-bg.gif +0 -0
  417. data/template/resources/images/gray/tabs/tab-close.gif +0 -0
  418. data/template/resources/images/gray/tabs/tab-strip-bg.gif +0 -0
  419. data/template/resources/images/gray/tabs/tab-strip-bg.png +0 -0
  420. data/template/resources/images/gray/tabs/tab-strip-btm-bg.gif +0 -0
  421. data/template/resources/images/gray/tabs/tabs-sprite.gif +0 -0
  422. data/template/resources/images/gray/toolbar/bg.gif +0 -0
  423. data/template/resources/images/gray/toolbar/btn-arrow-light.gif +0 -0
  424. data/template/resources/images/gray/toolbar/btn-arrow.gif +0 -0
  425. data/template/resources/images/gray/toolbar/btn-over-bg.gif +0 -0
  426. data/template/resources/images/gray/toolbar/gray-bg.gif +0 -0
  427. data/template/resources/images/gray/toolbar/more.gif +0 -0
  428. data/template/resources/images/gray/toolbar/tb-bg.gif +0 -0
  429. data/template/resources/images/gray/toolbar/tb-btn-sprite.gif +0 -0
  430. data/template/resources/images/gray/tree/arrows.gif +0 -0
  431. data/template/resources/images/gray/tree/elbow-end-minus-nl.gif +0 -0
  432. data/template/resources/images/gray/tree/elbow-end-minus.gif +0 -0
  433. data/template/resources/images/gray/tree/elbow-end-plus-nl.gif +0 -0
  434. data/template/resources/images/gray/tree/elbow-end-plus.gif +0 -0
  435. data/template/resources/images/gray/window/icon-error.gif +0 -0
  436. data/template/resources/images/gray/window/icon-info.gif +0 -0
  437. data/template/resources/images/gray/window/icon-question.gif +0 -0
  438. data/template/resources/images/gray/window/icon-warning.gif +0 -0
  439. data/template/resources/images/gray/window/left-corners.png +0 -0
  440. data/template/resources/images/gray/window/left-corners.pspimage +0 -0
  441. data/template/resources/images/gray/window/left-right.png +0 -0
  442. data/template/resources/images/gray/window/right-corners.png +0 -0
  443. data/template/resources/images/gray/window/top-bottom.png +0 -0
  444. data/template/resources/inherited.gif +0 -0
  445. data/template/resources/method.gif +0 -0
  446. data/template/resources/pkg-closed.gif +0 -0
  447. data/template/resources/pkg-open.gif +0 -0
  448. data/template/resources/pkg.gif +0 -0
  449. data/template/resources/prop.gif +0 -0
  450. data/template/resources/s.gif +0 -0
  451. data/template/resources/static.gif +0 -0
  452. data/template/resources/style.css +0 -291
  453. data/template/welcome.html +0 -45
@@ -4,20 +4,26 @@ module JsDuck
4
4
  #
5
5
  # Also provides a place to look up classes by name.
6
6
  #
7
- # The constructor is initialized with array of all available
8
- # classes.
7
+ # The constructor is initialized with array of all available classes
8
+ # and list of class names to ignore. By default the latter list
9
+ # contains only JavaScript base class "Object".
9
10
  class Relations
10
11
  # Returns list of all classes
11
12
  attr_reader :classes
12
13
 
13
- def initialize(classes = [])
14
+ def initialize(classes = [], ignorables = [])
14
15
  @classes = classes
16
+ @ignorables = {"Object" => true}
17
+ ignorables.each {|classname| @ignorables[classname] = true }
15
18
 
16
19
  # First build class lookup table; building lookup tables for
17
20
  # mixins and subclasses will depend on that.
18
21
  @lookup = {}
19
22
  @classes.each do |cls|
20
23
  @lookup[cls.full_name] = cls
24
+ (cls[:alternateClassNames] || []).each do |alt_name|
25
+ @lookup[alt_name] = cls
26
+ end
21
27
  cls.relations = self
22
28
  end
23
29
 
@@ -34,6 +40,11 @@ module JsDuck
34
40
  @lookup[classname]
35
41
  end
36
42
 
43
+ # Returns true if class is in list of ignored classes.
44
+ def ignore?(classname)
45
+ @ignorables[classname]
46
+ end
47
+
37
48
  def each(&block)
38
49
  @classes.each(&block)
39
50
  end
@@ -3,7 +3,7 @@ module JsDuck
3
3
 
4
4
  # Creates list of all members in all classes that is used by the
5
5
  # searching feature in UI.
6
- class Members
6
+ class SearchData
7
7
  # Given list of class documentation objects returns an array of
8
8
  # hashes describing all the members.
9
9
  def create(docs)
@@ -13,7 +13,7 @@ module JsDuck
13
13
  [:cfg, :property, :method, :event].each do |type|
14
14
  cls.members(type).each do |m|
15
15
  # skip inherited items and constructors
16
- if m[:member] == cls.full_name && m[:name] != cls.short_name
16
+ if m[:owner] == cls.full_name && m[:name] != cls.short_name
17
17
  list << member_node(m, cls)
18
18
  end
19
19
  end
@@ -28,7 +28,7 @@ module JsDuck
28
28
  :cls => cls.full_name,
29
29
  :member => cls.short_name,
30
30
  :type => :cls,
31
- :doc => short_desc(cls[:doc])
31
+ :xtypes => cls[:xtypes]
32
32
  }
33
33
  end
34
34
 
@@ -38,34 +38,9 @@ module JsDuck
38
38
  :cls => cls.full_name,
39
39
  :member => member[:name],
40
40
  :type => member[:tagname],
41
- :doc => short_desc(member[:doc])
42
41
  }
43
42
  end
44
43
 
45
- def short_desc(str)
46
- tagless = first_sentence(strip_tags(strip_links(str)))
47
- if tagless.length > 120
48
- short_doc = tagless[0..116]
49
- ellipsis = tagless.length > short_doc.length ? "..." : ""
50
- tagless[0..116] + ellipsis
51
- else
52
- tagless
53
- end
54
- end
55
-
56
- def strip_tags(str)
57
- str.gsub(/<.*?>/, "")
58
- end
59
-
60
- def strip_links(str)
61
- str = str.gsub(/\{@link +(\S*?)(?: +(.+?))?\}/, "\\1")
62
- str = str.gsub(/#/, ".")
63
- end
64
-
65
- def first_sentence(str)
66
- str.sub(/\A(.+?\.)\s.*\Z/m, "\\1")
67
- end
68
-
69
44
  end
70
45
 
71
46
  end
@@ -68,8 +68,8 @@ module JsDuck
68
68
  doc[:name].gsub(/\./, '-')
69
69
  else
70
70
  # when creation of global class is skipped,
71
- # this member property can be nil.
72
- (doc[:member] || "global").gsub(/\./, '-') + "-" + doc[:tagname].to_s + "-" + doc[:name]
71
+ # this owner property can be nil.
72
+ (doc[:owner] || "global").gsub(/\./, '-') + "-" + doc[:tagname].to_s + "-" + doc[:name]
73
73
  end
74
74
  end
75
75
 
@@ -93,8 +93,8 @@ module JsDuck
93
93
  doc[:filename] = @filename
94
94
  doc[:linenr] = linenr
95
95
  if doc[:tagname] == :class
96
- doc[:cfg].each {|cfg| link(linenr, cfg) }
97
- doc[:method].each {|method| link(linenr, method) }
96
+ doc[:members][:cfg].each {|cfg| link(linenr, cfg) }
97
+ doc[:members][:method].each {|method| link(linenr, method) }
98
98
  end
99
99
  doc
100
100
  end
@@ -45,8 +45,8 @@ module JsDuck
45
45
  <head>
46
46
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
47
47
  <title>The source code</title>
48
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
49
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
48
+ <link href="../prettify/prettify.css" type="text/css" rel="stylesheet" />
49
+ <script type="text/javascript" src="../prettify/prettify.js"></script>
50
50
  <style type="text/css">
51
51
  .highlight { display: block; background-color: #ddd; }
52
52
  </style>
@@ -1,3 +1,5 @@
1
+ require 'jsduck/logger'
2
+
1
3
  module JsDuck
2
4
 
3
5
  # Helper for timing execution of named code blocks.
@@ -31,9 +33,11 @@ module JsDuck
31
33
  result
32
34
  end
33
35
 
34
- # prints timings report to console
36
+ # prints timings report to log
35
37
  def report
36
- @timings.each {|name, time| puts "#{name}:\t#{time} seconds" }
38
+ @timings.each do |name, time|
39
+ Logger.instance.log("#{name}:\t#{time} seconds")
40
+ end
37
41
  end
38
42
  end
39
43
 
@@ -12,7 +12,6 @@ module JsDuck
12
12
  :id => "apidocs",
13
13
  :iconCls => "icon-docs",
14
14
  :text => "API Documentation",
15
- :singleClickExpand => true,
16
15
  :children => []
17
16
  }
18
17
  @packages = {"" => @root}
@@ -21,24 +20,25 @@ module JsDuck
21
20
  # Given list of class documentation objects returns a
22
21
  # tree-structure that can be turned into JSON that's needed by
23
22
  # documentation browser interface.
24
- def create(docs)
23
+ def create(docs, guides=[])
25
24
  docs.each {|cls| add_class(cls) }
26
25
  sort_tree(@root)
26
+ add_guides(guides)
27
27
  @root
28
28
  end
29
29
 
30
30
  # Sorts all child nodes, and recursively all child packages.
31
31
  def sort_tree(node)
32
32
  node[:children].sort! {|a,b| compare(a, b) }
33
- node[:children].find_all {|c| c[:cls] == "package" }.each {|c| sort_tree(c) }
33
+ node[:children].find_all {|c| c[:children] }.each {|c| sort_tree(c) }
34
34
  end
35
35
 
36
36
  # Comparson method that sorts package nodes before class nodes.
37
37
  def compare(a, b)
38
- if a[:cls] == b[:cls]
39
- a[:text] <=> b[:text]
38
+ if a[:leaf] == b[:leaf]
39
+ a[:text].casecmp(b[:text])
40
40
  else
41
- a[:cls] == "package" ? -1 : 1
41
+ a[:leaf] ? 1 : -1
42
42
  end
43
43
  end
44
44
 
@@ -65,40 +65,53 @@ module JsDuck
65
65
  package
66
66
  end
67
67
 
68
+ # When guides list not empty, add guides to tree
69
+ def add_guides(guides)
70
+ if guides.length > 0
71
+ pkg = package_node("guides")
72
+ guides.each {|g| pkg[:children] << guide_node(g) }
73
+ @root[:children] << pkg
74
+ end
75
+ end
76
+
68
77
  # Given full doc object for class creates class node
69
78
  def class_node(cls)
70
79
  return {
71
- :href => "output/#{cls.full_name}.html",
72
80
  :text => cls.short_name,
73
- :id => cls.full_name,
74
- :isClass => true,
81
+ :url => "/api/"+cls.full_name,
75
82
  :iconCls => class_icon(cls),
76
- :cls => "cls",
77
83
  :leaf => true
78
84
  }
79
85
  end
80
86
 
81
87
  def class_icon(cls)
82
88
  if cls[:singleton]
83
- "icon-static"
89
+ "icon-singleton"
84
90
  elsif cls.inherits_from?("Ext.Component")
85
- "icon-cmp"
91
+ "icon-component"
86
92
  else
87
- "icon-cls"
93
+ "icon-class"
88
94
  end
89
95
  end
90
96
 
91
97
  # Given full package name like my.package creates package node
92
98
  def package_node(name)
93
99
  return {
94
- :id => "pkg-#{name}",
95
100
  :text => Class.short_name(name),
96
101
  :iconCls => "icon-pkg",
97
- :cls => "package",
98
- :singleClickExpand => true,
99
102
  :children => []
100
103
  }
101
104
  end
105
+
106
+ # Given full guide object creates guide node
107
+ def guide_node(guide)
108
+ return {
109
+ :text => guide[:title],
110
+ :url => "/guide/"+guide[:name],
111
+ :iconCls => "icon-guide",
112
+ :leaf => true
113
+ }
114
+ end
102
115
  end
103
116
 
104
117
  end
@@ -10,7 +10,7 @@ module JsDuck
10
10
  icons.merge!(extract_icons(child))
11
11
  end
12
12
  else
13
- icons[node[:id]] = node[:iconCls]
13
+ icons[node[:url]] = node[:iconCls]
14
14
  end
15
15
  icons
16
16
  end
@@ -0,0 +1,14 @@
1
+ Manyally create extjs/ directory inside this dir.
2
+
3
+ Either copy over ExtJS directory or create symlink to it.
4
+
5
+ $ cp -r /path/to/ext-4.0.0 template/extjs
6
+
7
+ or
8
+
9
+ $ ln -s /path/to/ext-4.0.0 template/extjs
10
+
11
+ Then run compass to generate custom ExtJS theme:
12
+
13
+ $ compass template/resources/sass
14
+
@@ -0,0 +1,25 @@
1
+ Ext.ns("Docs");
2
+
3
+ Ext.Loader.setConfig({
4
+ enabled: true,
5
+ paths: {
6
+ 'Docs': 'app'
7
+ }
8
+ });
9
+
10
+ Ext.require('Docs.view.Viewport');
11
+ Ext.require('Ext.form.field.Trigger');
12
+ Ext.require('Ext.tab.Panel');
13
+ Ext.require('Ext.grid.column.Action');
14
+ Ext.require('Ext.grid.plugin.DragDrop');
15
+ Ext.require('Ext.layout.container.Border');
16
+ Ext.require('Ext.data.TreeStore');
17
+
18
+ // The following is exactly what Ext.application() function does, but
19
+ // we use our own Application class that extends Ext.app.Application
20
+
21
+ Ext.require('Docs.Application');
22
+
23
+ Ext.onReady(function() {
24
+ Ext.create('Docs.Application');
25
+ });
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Main application definition for Docs app.
3
+ *
4
+ * We define our own Application class because this way we can also
5
+ * easily define the dependencies.
6
+ */
7
+ Ext.define('Docs.Application', {
8
+ extend: 'Ext.app.Application',
9
+ name: 'Docs',
10
+
11
+ requires: [
12
+ 'Docs.Favorites',
13
+ 'Docs.History',
14
+ 'Docs.Settings'
15
+ ],
16
+
17
+ uses: [
18
+ 'Ext.util.History',
19
+ 'Ext.data.JsonP'
20
+ ],
21
+
22
+ controllers: [
23
+ 'Classes',
24
+ 'Search'
25
+ ],
26
+
27
+ launch: function() {
28
+ Docs.App = this;
29
+ Docs.Favorites.init();
30
+ Docs.Settings.init();
31
+
32
+ Ext.create('Docs.view.Viewport');
33
+
34
+ // Update favorites grid height between browser tabs if changed
35
+ Ext.getStore('Settings').on('load', function(store) {
36
+ var favHeight = Docs.Settings.get('favorites-height');
37
+ if (favHeight) {
38
+ var tabPanel = Ext.getCmp('classes-tab-panel');
39
+ tabPanel.suspendEvents();
40
+ tabPanel.setHeight(favHeight);
41
+ tabPanel.resumeEvents();
42
+ }
43
+ });
44
+
45
+ Docs.History.init();
46
+
47
+ // When google analytics event tracking script present on page
48
+ if (Docs.initEventTracking) {
49
+ Docs.initEventTracking();
50
+ }
51
+ }
52
+
53
+ });
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Favorites management.
3
+ */
4
+ Ext.define("Docs.Favorites", {
5
+ extend: 'Docs.LocalStore',
6
+ storeName: 'Favorites',
7
+ singleton: true,
8
+
9
+ init: function() {
10
+ this.callParent(arguments);
11
+
12
+ // Populate favorites with Top 10 classes
13
+ if (this.store.data.items.length == 0) {
14
+ var top10 = [
15
+ 'Ext.data.Store',
16
+ 'Ext',
17
+ 'Ext.grid.Panel',
18
+ 'Ext.panel.Panel',
19
+ 'Ext.form.field.ComboBox',
20
+ 'Ext.data.Model',
21
+ 'Ext.form.Panel',
22
+ 'Ext.button.Button',
23
+ 'Ext.tree.Panel',
24
+ 'Ext.Component'
25
+ ];
26
+ this.store.add(Ext.Array.map(top10, function(clsName) {
27
+ return {url: "/api/"+clsName, title: clsName};
28
+ }));
29
+ this.syncStore();
30
+ }
31
+
32
+ // For backwards compatibility with old Favorites Model
33
+ // convert the old-style records to new schema.
34
+ else if (!this.store.first().get("url")) {
35
+ this.store.each(function(r) {
36
+ r.set("title", r.data.cls);
37
+ r.set("url", "/api/"+r.get("cls"));
38
+ r.set("cls", "");
39
+ });
40
+ this.syncStore();
41
+ }
42
+ },
43
+
44
+ /**
45
+ * Associates Favorites with Docs TreePanel component.
46
+ * @param {Docs.view.tree.Tree} tree
47
+ */
48
+ setTree: function(tree) {
49
+ this.tree = tree;
50
+ },
51
+
52
+ /**
53
+ * Adds page to favorites
54
+ *
55
+ * @param {String} url the page to add
56
+ * @param {String} title title for Favorites entry
57
+ */
58
+ add: function(url, title) {
59
+ if (!this.has(url)) {
60
+ this.store.add({url: url, title: title});
61
+ this.syncStore();
62
+ this.tree.setFavorite(url, true);
63
+ }
64
+ },
65
+
66
+ /**
67
+ * Removes page from favorites.
68
+ *
69
+ * @param {String} url the page URL to remove
70
+ */
71
+ remove: function(url) {
72
+ if (this.has(url)) {
73
+ this.store.removeAt(this.store.findExact('url', url));
74
+ this.syncStore();
75
+ this.tree.setFavorite(url, false);
76
+ }
77
+ },
78
+
79
+ /**
80
+ * Checks if page exists in favorites
81
+ *
82
+ * @param {String} url the URL to check
83
+ * @return {Boolean} true when present
84
+ */
85
+ has: function(url) {
86
+ return this.store.findExact('url', url) > -1;
87
+ }
88
+ });