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
@@ -1,3 +1,5 @@
1
+ require 'jsduck/logger'
2
+
1
3
  module JsDuck
2
4
 
3
5
  # Encapsulates class documentation and provides some commonly needed
@@ -8,6 +10,8 @@ module JsDuck
8
10
 
9
11
  def initialize(doc)
10
12
  @doc = doc
13
+ @doc[:members] = Class.default_members_hash if !@doc[:members]
14
+ @doc[:statics] = Class.default_members_hash if !@doc[:statics]
11
15
  @relations = nil
12
16
  end
13
17
 
@@ -46,8 +50,9 @@ module JsDuck
46
50
  def lookup(classname)
47
51
  if @relations[classname]
48
52
  @relations[classname]
49
- elsif classname != "Object"
50
- puts "Warning: Class #{classname} not found in #{@doc[:filename]} line #{@doc[:linenr]}"
53
+ elsif !@relations.ignore?(classname)
54
+ Logger.instance.warn("Class #{classname} not found in #{@doc[:filename]} line #{@doc[:linenr]}")
55
+ nil
51
56
  end
52
57
  end
53
58
 
@@ -65,12 +70,11 @@ module JsDuck
65
70
  # Returns array of all public members of particular type in a class,
66
71
  # sorted by name.
67
72
  #
68
- # For methods the the constructor is listed as first method having
69
- # the same name as class itself.
73
+ # For methods the the constructor is listed first.
70
74
  #
71
75
  # See members_hash for details.
72
- def members(type)
73
- ms = members_hash(type).values.sort {|a,b| a[:name] <=> b[:name] }
76
+ def members(type, context=:members)
77
+ ms = members_hash(type, context).values.sort {|a,b| a[:name] <=> b[:name] }
74
78
  type == :method ? constructor_first(ms) : ms
75
79
  end
76
80
 
@@ -80,11 +84,7 @@ module JsDuck
80
84
  constr = ms.find {|m| m[:name] == "constructor" }
81
85
  if constr
82
86
  ms.delete(constr)
83
- # Clone it. Otherwise the search for "constructor" from this
84
- # class will return nothing as we have renamed it.
85
- constr2 = constr.clone
86
- constr2[:name] = short_name
87
- ms.unshift(constr2)
87
+ ms.unshift(constr)
88
88
  end
89
89
  ms
90
90
  end
@@ -95,23 +95,64 @@ module JsDuck
95
95
  #
96
96
  # When parent and child have members with same name,
97
97
  # member from child overrides tha parent member.
98
- #
99
- # We also set :member property to each member to the full class
100
- # name where it belongs, so one can tell them apart afterwards.
101
- def members_hash(type)
102
- all_members = parent ? parent.members_hash(type) : {}
98
+ def members_hash(type, context=:members)
99
+ # Singletons have no static members
100
+ if @doc[:singleton] && context == :statics
101
+ # Warn if singleton has static members
102
+ if @doc[context][type].length > 0
103
+ Logger.instance.warn("Singleton class #{@doc[:name]} can't have static members, remove the @static tag.")
104
+ end
105
+ return {}
106
+ end
107
+
108
+ all_members = parent ? parent.members_hash(type, context) : {}
103
109
 
104
110
  mixins.each do |mix|
105
- all_members.merge!(mix.members_hash(type))
111
+ all_members.merge!(mix.members_hash(type, context))
106
112
  end
107
113
 
108
- @doc[type].each do |m|
114
+ # For static members, exclude everything not explicitly marked as inheritable
115
+ if context == :statics
116
+ all_members.delete_if {|key, member| !member[:inheritable] }
117
+ end
118
+
119
+ (@doc[context][type] || []).each do |m|
109
120
  all_members[m[:name]] = m if !m[:private]
110
121
  end
111
122
 
112
123
  all_members
113
124
  end
114
125
 
126
+ # Returns member by name.
127
+ #
128
+ # Optionally one can also specify type name to differenciate
129
+ # between different types of members.
130
+ def get_member(name, type_name=nil)
131
+ # build hash of all members
132
+ unless @members_map
133
+ @members_map = {}
134
+ [:members, :statics].each do |group|
135
+ @doc[group].each_key do |type|
136
+ members_hash(type, group).each_pair do |key, member|
137
+ @members_map["#{type}-#{key}"] = member
138
+ @members_map[key] = member
139
+ end
140
+ end
141
+ end
142
+ end
143
+
144
+ @members_map[type_name ? "#{type_name}-#{name}" : name]
145
+ end
146
+
147
+ # Loops through each member of the class, invoking block with each of them
148
+ def each_member(&block)
149
+ [:members, :statics].each do |group|
150
+ @doc[group].each_value do |members|
151
+ members.each(&block)
152
+ end
153
+ end
154
+ end
155
+
115
156
  # A way to access full class name with similar syntax to
116
157
  # package_name and short_name
117
158
  def full_name
@@ -155,6 +196,18 @@ module JsDuck
155
196
  end
156
197
  short
157
198
  end
199
+
200
+ # Returns default hash that has empty array for each member type
201
+ def self.default_members_hash
202
+ return {
203
+ :cfg => [],
204
+ :property => [],
205
+ :method => [],
206
+ :event => [],
207
+ :css_var => [],
208
+ :css_mixin => [],
209
+ }
210
+ end
158
211
  end
159
212
 
160
213
  end
@@ -2,6 +2,7 @@ require 'rubygems'
2
2
  require 'rdiscount'
3
3
  require 'strscan'
4
4
  require 'cgi'
5
+ require 'jsduck/logger'
5
6
 
6
7
  module JsDuck
7
8
 
@@ -11,8 +12,9 @@ module JsDuck
11
12
  # Can contain placeholders:
12
13
  #
13
14
  # %c - full class name (e.g. "Ext.Panel")
14
- # %m - class member name (e.g. "urlEncode")
15
- # %M - class member name, prefixed with hash (e.g. "#urlEncode")
15
+ # %m - class member name prefixed with member type (e.g. "method-urlEncode")
16
+ # %# - inserts "#" if member name present
17
+ # %- - inserts "-" if member name present
16
18
  # %a - anchor text for link
17
19
  #
18
20
  # Default value: '<a href="%c%M">%a</a>'
@@ -30,7 +32,11 @@ module JsDuck
30
32
  # Sets up instance to work in context of particular class, so
31
33
  # that when {@link #blah} is encountered it knows that
32
34
  # Context#blah is meant.
33
- attr_accessor :context
35
+ attr_accessor :class_context
36
+
37
+ # Sets up instance to work in context of particular doc object.
38
+ # Used for error reporting.
39
+ attr_accessor :doc_context
34
40
 
35
41
  # Maximum length for text that doesn't get shortened, defaults to 120
36
42
  attr_accessor :max_length
@@ -43,10 +49,11 @@ module JsDuck
43
49
  attr_accessor :relations
44
50
 
45
51
  def initialize
46
- @context = ""
52
+ @class_context = ""
53
+ @doc_context = {}
47
54
  @max_length = 120
48
55
  @relations = {}
49
- @link_tpl = '<a href="%c%M">%a</a>'
56
+ @link_tpl = '<a href="%c%#%m">%a</a>'
50
57
  @img_tpl = '<img src="%u" alt="%a"/>'
51
58
  @link_re = /\{@link\s+(\S*?)(?:\s+(.+?))?\}/m
52
59
  @img_re = /\{@img\s+(\S*?)(?:\s+(.+?))?\}/m
@@ -84,11 +91,13 @@ module JsDuck
84
91
  input.sub(@link_re) do
85
92
  target = $1
86
93
  text = $2
87
- if target =~ /^(.*)#(.*)$/
88
- cls = $1.empty? ? @context : $1
89
- member = $2
94
+ if target =~ /^(.*)#(?:(.*)-)?(.*)$/
95
+ cls = $1.empty? ? @class_context : $1
96
+ type = $2 ? $2.intern : nil
97
+ member = $3
90
98
  else
91
99
  cls = target
100
+ type = false
92
101
  member = false
93
102
  end
94
103
 
@@ -96,12 +105,22 @@ module JsDuck
96
105
  if text
97
106
  text = text
98
107
  elsif member
99
- text = (cls == @context) ? member : (cls + "." + member)
108
+ text = (cls == @class_context) ? member : (cls + "." + member)
100
109
  else
101
110
  text = cls
102
111
  end
103
112
 
104
- link(cls, member, text)
113
+ file = @doc_context[:filename]
114
+ line = @doc_context[:linenr]
115
+ if !@relations[cls]
116
+ Logger.instance.warn("#{file} line #{line} #{input} links to non-existing class.")
117
+ text
118
+ elsif member && !get_member(cls, member, type)
119
+ Logger.instance.warn("#{file} line #{line} #{input} links to non-existing member.")
120
+ text
121
+ else
122
+ link(cls, member, text, type)
123
+ end
105
124
  end
106
125
  end
107
126
 
@@ -114,14 +133,14 @@ module JsDuck
114
133
  before = $1
115
134
  cls = $2
116
135
  hash = $3
117
- method = $4
136
+ member = $4
118
137
  after = $5
119
138
 
120
- if @relations[cls]
121
- label = method ? cls+"."+method : cls
122
- before + link(cls, method, label) + after
139
+ if @relations[cls] && (!member || get_member(cls, member))
140
+ label = member ? cls+"."+member : cls
141
+ before + link(cls, member, label) + after
123
142
  else
124
- before + cls + (hash || "") + (method || "") + after
143
+ before + cls + (hash || "") + (member || "") + after
125
144
  end
126
145
  end
127
146
  end
@@ -141,15 +160,22 @@ module JsDuck
141
160
  end
142
161
 
143
162
  # applies the link template
144
- def link(cls, member, anchor_text)
145
- @link_tpl.gsub(/(%\w)/) do
163
+ def link(cls, member, anchor_text, type=nil)
164
+ # Use the canonical class name for link (not some alternateClassName)
165
+ cls = @relations[cls].full_name
166
+ # prepend type name to member name
167
+ member = member && (get_member(cls, member, type)[:tagname].to_s + "-" + member)
168
+
169
+ @link_tpl.gsub(/(%[\w#-])/) do
146
170
  case $1
147
171
  when '%c'
148
172
  cls
149
173
  when '%m'
150
174
  member ? member : ""
151
- when '%M'
152
- member ? "#"+member : ""
175
+ when '%#'
176
+ member ? "#" : ""
177
+ when '%-'
178
+ member ? "-" : ""
153
179
  when '%a'
154
180
  CGI.escapeHTML(anchor_text||"")
155
181
  else
@@ -158,6 +184,10 @@ module JsDuck
158
184
  end
159
185
  end
160
186
 
187
+ def get_member(cls, member, type=nil)
188
+ @relations[cls] && @relations[cls].get_member(member, type)
189
+ end
190
+
161
191
  # Formats doc-comment for placement into HTML.
162
192
  # Renders it with Markdown-formatter and replaces @link-s.
163
193
  def format(input)
@@ -176,7 +206,7 @@ module JsDuck
176
206
  replace(RDiscount.new(input).to_html)
177
207
  end
178
208
 
179
- # Shortens text if needed.
209
+ # Shortens text
180
210
  #
181
211
  # 116 chars is also where ext-doc makes its cut, but unlike
182
212
  # ext-doc we only make the cut when there's more than 120 chars.
@@ -189,22 +219,27 @@ module JsDuck
189
219
  #
190
220
  # Blah blah blah some text.
191
221
  #
192
- # Ellipsis is only added when input actually gets shortened.
193
222
  def shorten(input)
194
- if too_long?(input)
195
- strip_tags(input)[0..(@max_length-4)] + "..."
223
+ sent = first_sentence(strip_tags(input))
224
+ if sent.length > @max_length
225
+ sent[0..(@max_length-4)] + "..."
196
226
  else
197
- input
227
+ sent + " ..."
198
228
  end
199
229
  end
200
230
 
231
+ def first_sentence(str)
232
+ str.sub(/\A(.+?\.)\s.*\Z/m, "\\1")
233
+ end
234
+
201
235
  # Returns true when input should get shortened.
202
236
  def too_long?(input)
203
- strip_tags(input).length > @max_length
237
+ stripped = strip_tags(input)
238
+ first_sentence(stripped).length < stripped.length || stripped.length > @max_length
204
239
  end
205
240
 
206
241
  def strip_tags(str)
207
- str.gsub(/<.*?>/, "")
242
+ str.gsub(/<.*?>/, "").strip
208
243
  end
209
244
  end
210
245
 
@@ -97,21 +97,34 @@ module JsDuck
97
97
  at_type
98
98
  elsif look(/@xtype\b/)
99
99
  at_xtype
100
+ elsif look(/@ftype\b/)
101
+ at_ftype
100
102
  elsif look(/@member\b/)
101
103
  at_member
104
+ elsif look(/@alias\b/)
105
+ at_alias
102
106
  elsif look(/@author\b/)
103
107
  at_author
104
108
  elsif look(/@docauthor\b/)
105
109
  at_docauthor
110
+ elsif look(/@deprecated\b/)
111
+ at_deprecated
106
112
  elsif look(/@var\b/)
107
113
  at_var
108
114
  elsif look(/@static\b/)
109
115
  boolean_at_tag(/@static/, :static)
110
- elsif look(/@(private|ignore|hide|protected)\b/)
111
- boolean_at_tag(/@(private|ignore|hide|protected)/, :private)
116
+ elsif look(/@inheritable\b/)
117
+ boolean_at_tag(/@inheritable/, :inheritable)
118
+ elsif look(/@(private|ignore|hide)\b/)
119
+ boolean_at_tag(/@(private|ignore|hide)/, :private)
120
+ elsif look(/@protected\b/)
121
+ boolean_at_tag(/@protected/, :protected)
112
122
  elsif look(/@markdown\b/)
113
123
  # this is detected just to be ignored
114
124
  boolean_at_tag(/@markdown/, :markdown)
125
+ elsif look(/@abstract\b/)
126
+ # this is detected just to be ignored
127
+ boolean_at_tag(/@abstract/, :abstract)
115
128
  elsif look(/@/)
116
129
  @current_tag[:doc] += @input.scan(/@/)
117
130
  elsif look(/[^@]/)
@@ -244,6 +257,14 @@ module JsDuck
244
257
  skip_white
245
258
  end
246
259
 
260
+ # matches @ftype name
261
+ def at_ftype
262
+ match(/@ftype/)
263
+ add_tag(:ftype)
264
+ maybe_ident_chain(:name)
265
+ skip_white
266
+ end
267
+
247
268
  # matches @member name ...
248
269
  def at_member
249
270
  match(/@member/)
@@ -252,6 +273,25 @@ module JsDuck
252
273
  skip_white
253
274
  end
254
275
 
276
+ # matches @alias class.name#type-member
277
+ def at_alias
278
+ match(/@alias/)
279
+ add_tag(:alias)
280
+ skip_horiz_white
281
+ if look(/\w/)
282
+ @current_tag[:cls] = ident_chain
283
+ if look(/#\w/)
284
+ @input.scan(/#/)
285
+ if look(/\w+-\w+/)
286
+ @current_tag[:type] = ident
287
+ @input.scan(/-/)
288
+ end
289
+ @current_tag[:member] = ident
290
+ end
291
+ end
292
+ skip_white
293
+ end
294
+
255
295
  # matches @author some name ... newline
256
296
  def at_author
257
297
  match(/@author/)
@@ -270,6 +310,17 @@ module JsDuck
270
310
  skip_white
271
311
  end
272
312
 
313
+ # matches @deprecated <version> some text ... newline
314
+ def at_deprecated
315
+ match(/@deprecated/)
316
+ add_tag(:deprecated)
317
+ skip_horiz_white
318
+ @current_tag[:version] = @input.scan(/[0-9.]+/)
319
+ skip_horiz_white
320
+ @current_tag[:text] = @input.scan(/.*$/)
321
+ skip_white
322
+ end
323
+
273
324
  # Used to match @private, @ignore, @hide, ...
274
325
  def boolean_at_tag(regex, propname)
275
326
  match(regex)
@@ -17,18 +17,11 @@ module JsDuck
17
17
  # Returns all data in Class object as hash.
18
18
  def export(cls)
19
19
  h = cls.to_hash
20
- h[:cfgs] = cls.members(:cfg)
21
- h.delete(:cfg)
22
- h[:properties] = cls.members(:property)
23
- h.delete(:property)
24
- h[:methods] = cls.members(:method)
25
- h.delete(:method)
26
- h[:events] = cls.members(:event)
27
- h.delete(:event)
28
- h[:cssVars] = cls.members(:css_var)
29
- h.delete(:css_var)
30
- h[:cssMixins] = cls.members(:css_mixin)
31
- h.delete(:css_mixin)
20
+ h[:members] = {}
21
+ Class.default_members_hash.each_key do |key|
22
+ h[:members][key] = cls.members(key)
23
+ h[:statics][key] = cls.members(key, :statics)
24
+ end
32
25
  h[:component] = cls.inherits_from?("Ext.Component")
33
26
  h[:superclasses] = cls.superclasses.collect {|c| c.full_name }
34
27
  h[:subclasses] = @relations.subclasses(cls).collect {|c| c.full_name }
@@ -39,17 +32,23 @@ module JsDuck
39
32
 
40
33
  # converts :doc properties from markdown to html and resolve @links
41
34
  def format_class(c)
42
- @formatter.context = c[:name]
35
+ @formatter.class_context = c[:name]
36
+ @formatter.doc_context = c
43
37
  c[:doc] = @formatter.format(c[:doc]) if c[:doc]
44
- [:cfgs, :properties, :methods, :events, :cssVars, :cssMixins].each do |type|
45
- c[type] = c[type].map {|m| format_member(m) }
38
+ c[:members].each_pair do |type, members|
39
+ c[:members][type] = members.map {|m| format_member(m) }
40
+ end
41
+ c[:statics].each_pair do |type, members|
42
+ c[:statics][type] = members.map {|m| format_member(m) }
46
43
  end
47
44
  c
48
45
  end
49
46
 
50
47
  def format_member(m)
51
48
  m = m.clone
49
+ @formatter.doc_context = m
52
50
  m[:doc] = @formatter.format(m[:doc]) if m[:doc]
51
+ m[:deprecated][:text] = @formatter.format(m[:deprecated][:text]) if m[:deprecated]
53
52
  if m[:params] || @formatter.too_long?(m[:doc])
54
53
  m[:shortDoc] = @formatter.shorten(m[:doc])
55
54
  end