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.
- data/.gitignore +4 -0
- data/README.md +35 -13
- data/Rakefile +129 -0
- data/bin/jsduck +112 -20
- data/jsduck.gemspec +10 -7
- data/lib/jsduck/aggregator.rb +46 -20
- data/lib/jsduck/aliases.rb +39 -0
- data/lib/jsduck/app.rb +123 -51
- data/lib/jsduck/categories.rb +132 -0
- data/lib/jsduck/class.rb +71 -18
- data/lib/jsduck/doc_formatter.rb +61 -26
- data/lib/jsduck/doc_parser.rb +53 -2
- data/lib/jsduck/exporter.rb +14 -15
- data/lib/jsduck/guides.rb +110 -0
- data/lib/jsduck/js_parser.rb +18 -4
- data/lib/jsduck/jsonp.rb +17 -0
- data/lib/jsduck/logger.rb +36 -0
- data/lib/jsduck/merger.rb +69 -51
- data/lib/jsduck/page.rb +1 -1
- data/lib/jsduck/relations.rb +14 -3
- data/lib/jsduck/{members.rb → search_data.rb} +3 -28
- data/lib/jsduck/source_file.rb +4 -4
- data/lib/jsduck/source_writer.rb +2 -2
- data/lib/jsduck/timer.rb +6 -2
- data/lib/jsduck/tree.rb +29 -16
- data/lib/jsduck/tree_icons.rb +1 -1
- data/template/README.md +14 -0
- data/template/app.js +25 -0
- data/template/app/Application.js +53 -0
- data/template/app/Favorites.js +88 -0
- data/template/app/History.js +45 -0
- data/template/app/LocalStore.js +45 -0
- data/template/app/Settings.js +39 -0
- data/template/app/Syntax.js +20 -0
- data/template/app/controller/Classes.js +301 -0
- data/template/app/controller/Search.js +156 -0
- data/template/app/model/Favorite.js +11 -0
- data/template/app/model/Setting.js +11 -0
- data/template/app/store/Favorites.js +7 -0
- data/template/app/store/Search.js +14 -0
- data/template/app/store/Settings.js +7 -0
- data/template/app/view/ClassGrid.js +109 -0
- data/template/app/view/HoverMenu.js +59 -0
- data/template/app/view/HoverMenuButton.js +147 -0
- data/template/app/view/Viewport.js +240 -0
- data/template/app/view/cls/Header.js +47 -0
- data/template/app/view/cls/Overview.js +415 -0
- data/template/app/view/cls/Toolbar.js +199 -0
- data/template/app/view/index/Container.js +63 -0
- data/template/app/view/search/Dropdown.js +53 -0
- data/template/app/view/tree/Tree.js +133 -0
- data/template/favicon.ico +0 -0
- data/template/index.html +32 -37
- data/template/{resources/prettify → prettify}/prettify.css +0 -0
- data/template/{resources/prettify → prettify}/prettify.js +0 -0
- data/template/resources/images/class-m.png +0 -0
- data/template/resources/images/class-sm.png +0 -0
- data/template/resources/images/component-m.png +0 -0
- data/template/resources/images/configs.png +0 -0
- data/template/resources/images/data-package.png +0 -0
- data/template/resources/images/doc-m.png +0 -0
- data/template/resources/images/drag-bar-center.png +0 -0
- data/template/resources/{elbow-end.gif → images/elbow-end.gif} +0 -0
- data/template/resources/images/events.png +0 -0
- data/template/resources/images/expandcollapse.png +0 -0
- data/template/resources/images/guide-icon.png +0 -0
- data/template/resources/images/guides.png +0 -0
- data/template/resources/images/headBG.png +0 -0
- data/template/resources/images/header.gif +0 -0
- data/template/resources/images/icon.png +0 -0
- data/template/resources/images/icons.png +0 -0
- data/template/resources/images/loading-title.png +0 -0
- data/template/resources/images/loading.gif +0 -0
- data/template/resources/{member-collapsed.gif → images/member-collapsed.gif} +0 -0
- data/template/resources/{member-expanded.gif → images/member-expanded.gif} +0 -0
- data/template/resources/{member-hover.gif → images/member-hover.gif} +0 -0
- data/template/resources/images/methods.png +0 -0
- data/template/resources/images/model.png +0 -0
- data/template/resources/images/properties.png +0 -0
- data/template/resources/images/root-lines.png +0 -0
- data/template/resources/images/search-box.png +0 -0
- data/template/resources/images/singleton-m.png +0 -0
- data/template/resources/images/version-tabs.png +0 -0
- data/template/resources/images/x.png +0 -0
- data/template/resources/images/x12.png +0 -0
- metadata +84 -387
- data/lib/jsduck/cfg_table.rb +0 -21
- data/lib/jsduck/event_table.rb +0 -33
- data/lib/jsduck/inheritance_tree.rb +0 -42
- data/lib/jsduck/long_params.rb +0 -30
- data/lib/jsduck/method_table.rb +0 -45
- data/lib/jsduck/property_table.rb +0 -21
- data/lib/jsduck/short_params.rb +0 -24
- data/lib/jsduck/table.rb +0 -121
- data/template/resources/TabCloseMenu.js +0 -150
- data/template/resources/block-bottom.gif +0 -0
- data/template/resources/block-top.gif +0 -0
- data/template/resources/class.gif +0 -0
- data/template/resources/cmp.gif +0 -0
- data/template/resources/collapse-all.gif +0 -0
- data/template/resources/config.gif +0 -0
- data/template/resources/css/ext-all.css +0 -6993
- data/template/resources/css/xtheme-gray.css +0 -1654
- data/template/resources/docs.css +0 -361
- data/template/resources/docs.gif +0 -0
- data/template/resources/docs.js +0 -769
- data/template/resources/event.gif +0 -0
- data/template/resources/expand-all.gif +0 -0
- data/template/resources/expand-bg-over.gif +0 -0
- data/template/resources/expand-bg.gif +0 -0
- data/template/resources/expand-members.gif +0 -0
- data/template/resources/ext-all.js +0 -11
- data/template/resources/ext-base.js +0 -7
- data/template/resources/extanim32.gif +0 -0
- data/template/resources/fav.gif +0 -0
- data/template/resources/favicon.ico +0 -0
- data/template/resources/hd-bg.png +0 -0
- data/template/resources/hide-inherited.gif +0 -0
- data/template/resources/images/default/box/corners-blue.gif +0 -0
- data/template/resources/images/default/box/corners.gif +0 -0
- data/template/resources/images/default/box/l-blue.gif +0 -0
- data/template/resources/images/default/box/l.gif +0 -0
- data/template/resources/images/default/box/r-blue.gif +0 -0
- data/template/resources/images/default/box/r.gif +0 -0
- data/template/resources/images/default/box/tb-blue.gif +0 -0
- data/template/resources/images/default/box/tb.gif +0 -0
- data/template/resources/images/default/button/arrow.gif +0 -0
- data/template/resources/images/default/button/btn.gif +0 -0
- data/template/resources/images/default/button/group-cs.gif +0 -0
- data/template/resources/images/default/button/group-lr.gif +0 -0
- data/template/resources/images/default/button/group-tb.gif +0 -0
- data/template/resources/images/default/button/s-arrow-b-noline.gif +0 -0
- data/template/resources/images/default/button/s-arrow-b.gif +0 -0
- data/template/resources/images/default/button/s-arrow-bo.gif +0 -0
- data/template/resources/images/default/button/s-arrow-noline.gif +0 -0
- data/template/resources/images/default/button/s-arrow-o.gif +0 -0
- data/template/resources/images/default/button/s-arrow.gif +0 -0
- data/template/resources/images/default/dd/drop-add.gif +0 -0
- data/template/resources/images/default/dd/drop-no.gif +0 -0
- data/template/resources/images/default/dd/drop-yes.gif +0 -0
- data/template/resources/images/default/editor/tb-sprite.gif +0 -0
- data/template/resources/images/default/form/checkbox.gif +0 -0
- data/template/resources/images/default/form/clear-trigger.gif +0 -0
- data/template/resources/images/default/form/clear-trigger.psd +0 -0
- data/template/resources/images/default/form/date-trigger.gif +0 -0
- data/template/resources/images/default/form/date-trigger.psd +0 -0
- data/template/resources/images/default/form/error-tip-corners.gif +0 -0
- data/template/resources/images/default/form/exclamation.gif +0 -0
- data/template/resources/images/default/form/radio.gif +0 -0
- data/template/resources/images/default/form/search-trigger.gif +0 -0
- data/template/resources/images/default/form/search-trigger.psd +0 -0
- data/template/resources/images/default/form/text-bg.gif +0 -0
- data/template/resources/images/default/form/trigger-square.gif +0 -0
- data/template/resources/images/default/form/trigger-square.psd +0 -0
- data/template/resources/images/default/form/trigger-tpl.gif +0 -0
- data/template/resources/images/default/form/trigger.gif +0 -0
- data/template/resources/images/default/form/trigger.psd +0 -0
- data/template/resources/images/default/gradient-bg.gif +0 -0
- data/template/resources/images/default/grid/arrow-left-white.gif +0 -0
- data/template/resources/images/default/grid/arrow-right-white.gif +0 -0
- data/template/resources/images/default/grid/col-move-bottom.gif +0 -0
- data/template/resources/images/default/grid/col-move-top.gif +0 -0
- data/template/resources/images/default/grid/columns.gif +0 -0
- data/template/resources/images/default/grid/dirty.gif +0 -0
- data/template/resources/images/default/grid/done.gif +0 -0
- data/template/resources/images/default/grid/drop-no.gif +0 -0
- data/template/resources/images/default/grid/drop-yes.gif +0 -0
- data/template/resources/images/default/grid/footer-bg.gif +0 -0
- data/template/resources/images/default/grid/grid-blue-hd.gif +0 -0
- data/template/resources/images/default/grid/grid-blue-split.gif +0 -0
- data/template/resources/images/default/grid/grid-hrow.gif +0 -0
- data/template/resources/images/default/grid/grid-loading.gif +0 -0
- data/template/resources/images/default/grid/grid-split.gif +0 -0
- data/template/resources/images/default/grid/grid-vista-hd.gif +0 -0
- data/template/resources/images/default/grid/grid3-hd-btn.gif +0 -0
- data/template/resources/images/default/grid/grid3-hrow-over.gif +0 -0
- data/template/resources/images/default/grid/grid3-hrow.gif +0 -0
- data/template/resources/images/default/grid/grid3-special-col-bg.gif +0 -0
- data/template/resources/images/default/grid/grid3-special-col-sel-bg.gif +0 -0
- data/template/resources/images/default/grid/group-by.gif +0 -0
- data/template/resources/images/default/grid/group-collapse.gif +0 -0
- data/template/resources/images/default/grid/group-expand-sprite.gif +0 -0
- data/template/resources/images/default/grid/group-expand.gif +0 -0
- data/template/resources/images/default/grid/hd-pop.gif +0 -0
- data/template/resources/images/default/grid/hmenu-asc.gif +0 -0
- data/template/resources/images/default/grid/hmenu-desc.gif +0 -0
- data/template/resources/images/default/grid/hmenu-lock.gif +0 -0
- data/template/resources/images/default/grid/hmenu-lock.png +0 -0
- data/template/resources/images/default/grid/hmenu-unlock.gif +0 -0
- data/template/resources/images/default/grid/hmenu-unlock.png +0 -0
- data/template/resources/images/default/grid/invalid_line.gif +0 -0
- data/template/resources/images/default/grid/loading.gif +0 -0
- data/template/resources/images/default/grid/mso-hd.gif +0 -0
- data/template/resources/images/default/grid/nowait.gif +0 -0
- data/template/resources/images/default/grid/page-first-disabled.gif +0 -0
- data/template/resources/images/default/grid/page-first.gif +0 -0
- data/template/resources/images/default/grid/page-last-disabled.gif +0 -0
- data/template/resources/images/default/grid/page-last.gif +0 -0
- data/template/resources/images/default/grid/page-next-disabled.gif +0 -0
- data/template/resources/images/default/grid/page-next.gif +0 -0
- data/template/resources/images/default/grid/page-prev-disabled.gif +0 -0
- data/template/resources/images/default/grid/page-prev.gif +0 -0
- data/template/resources/images/default/grid/pick-button.gif +0 -0
- data/template/resources/images/default/grid/refresh.gif +0 -0
- data/template/resources/images/default/grid/row-check-sprite.gif +0 -0
- data/template/resources/images/default/grid/row-expand-sprite.gif +0 -0
- data/template/resources/images/default/grid/row-over.gif +0 -0
- data/template/resources/images/default/grid/row-sel.gif +0 -0
- data/template/resources/images/default/grid/sort-hd.gif +0 -0
- data/template/resources/images/default/grid/sort_asc.gif +0 -0
- data/template/resources/images/default/grid/sort_desc.gif +0 -0
- data/template/resources/images/default/grid/wait.gif +0 -0
- data/template/resources/images/default/layout/collapse.gif +0 -0
- data/template/resources/images/default/layout/expand.gif +0 -0
- data/template/resources/images/default/layout/gradient-bg.gif +0 -0
- data/template/resources/images/default/layout/mini-bottom.gif +0 -0
- data/template/resources/images/default/layout/mini-left.gif +0 -0
- data/template/resources/images/default/layout/mini-right.gif +0 -0
- data/template/resources/images/default/layout/mini-top.gif +0 -0
- data/template/resources/images/default/layout/ns-collapse.gif +0 -0
- data/template/resources/images/default/layout/ns-expand.gif +0 -0
- data/template/resources/images/default/layout/panel-close.gif +0 -0
- data/template/resources/images/default/layout/panel-title-bg.gif +0 -0
- data/template/resources/images/default/layout/panel-title-light-bg.gif +0 -0
- data/template/resources/images/default/layout/stick.gif +0 -0
- data/template/resources/images/default/layout/stuck.gif +0 -0
- data/template/resources/images/default/layout/tab-close-on.gif +0 -0
- data/template/resources/images/default/layout/tab-close.gif +0 -0
- data/template/resources/images/default/menu/checked.gif +0 -0
- data/template/resources/images/default/menu/group-checked.gif +0 -0
- data/template/resources/images/default/menu/item-over.gif +0 -0
- data/template/resources/images/default/menu/menu-parent.gif +0 -0
- data/template/resources/images/default/menu/menu.gif +0 -0
- data/template/resources/images/default/menu/unchecked.gif +0 -0
- data/template/resources/images/default/panel/corners-sprite.gif +0 -0
- data/template/resources/images/default/panel/left-right.gif +0 -0
- data/template/resources/images/default/panel/light-hd.gif +0 -0
- data/template/resources/images/default/panel/tool-sprite-tpl.gif +0 -0
- data/template/resources/images/default/panel/tool-sprites.gif +0 -0
- data/template/resources/images/default/panel/tools-sprites-trans.gif +0 -0
- data/template/resources/images/default/panel/top-bottom.gif +0 -0
- data/template/resources/images/default/panel/top-bottom.png +0 -0
- data/template/resources/images/default/panel/white-corners-sprite.gif +0 -0
- data/template/resources/images/default/panel/white-left-right.gif +0 -0
- data/template/resources/images/default/panel/white-top-bottom.gif +0 -0
- data/template/resources/images/default/progress/progress-bg.gif +0 -0
- data/template/resources/images/default/qtip/bg.gif +0 -0
- data/template/resources/images/default/qtip/close.gif +0 -0
- data/template/resources/images/default/qtip/tip-anchor-sprite.gif +0 -0
- data/template/resources/images/default/qtip/tip-sprite.gif +0 -0
- data/template/resources/images/default/s.gif +0 -0
- data/template/resources/images/default/shadow-c.png +0 -0
- data/template/resources/images/default/shadow-lr.png +0 -0
- data/template/resources/images/default/shadow.png +0 -0
- data/template/resources/images/default/shared/blue-loading.gif +0 -0
- data/template/resources/images/default/shared/calendar.gif +0 -0
- data/template/resources/images/default/shared/glass-bg.gif +0 -0
- data/template/resources/images/default/shared/hd-sprite.gif +0 -0
- data/template/resources/images/default/shared/large-loading.gif +0 -0
- data/template/resources/images/default/shared/left-btn.gif +0 -0
- data/template/resources/images/default/shared/loading-balls.gif +0 -0
- data/template/resources/images/default/shared/right-btn.gif +0 -0
- data/template/resources/images/default/shared/warning.gif +0 -0
- data/template/resources/images/default/sizer/e-handle-dark.gif +0 -0
- data/template/resources/images/default/sizer/e-handle.gif +0 -0
- data/template/resources/images/default/sizer/ne-handle-dark.gif +0 -0
- data/template/resources/images/default/sizer/ne-handle.gif +0 -0
- data/template/resources/images/default/sizer/nw-handle-dark.gif +0 -0
- data/template/resources/images/default/sizer/nw-handle.gif +0 -0
- data/template/resources/images/default/sizer/s-handle-dark.gif +0 -0
- data/template/resources/images/default/sizer/s-handle.gif +0 -0
- data/template/resources/images/default/sizer/se-handle-dark.gif +0 -0
- data/template/resources/images/default/sizer/se-handle.gif +0 -0
- data/template/resources/images/default/sizer/square.gif +0 -0
- data/template/resources/images/default/sizer/sw-handle-dark.gif +0 -0
- data/template/resources/images/default/sizer/sw-handle.gif +0 -0
- data/template/resources/images/default/slider/slider-bg.png +0 -0
- data/template/resources/images/default/slider/slider-thumb.png +0 -0
- data/template/resources/images/default/slider/slider-v-bg.png +0 -0
- data/template/resources/images/default/slider/slider-v-thumb.png +0 -0
- data/template/resources/images/default/tabs/scroll-left.gif +0 -0
- data/template/resources/images/default/tabs/scroll-right.gif +0 -0
- data/template/resources/images/default/tabs/scroller-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-btm-left-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-btm-over-left-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-btm-over-right-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-btm-right-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-close.gif +0 -0
- data/template/resources/images/default/tabs/tab-strip-bg.gif +0 -0
- data/template/resources/images/default/tabs/tab-strip-bg.png +0 -0
- data/template/resources/images/default/tabs/tab-strip-btm-bg.gif +0 -0
- data/template/resources/images/default/tabs/tabs-sprite.gif +0 -0
- data/template/resources/images/default/toolbar/bg.gif +0 -0
- data/template/resources/images/default/toolbar/btn-arrow-light.gif +0 -0
- data/template/resources/images/default/toolbar/btn-arrow.gif +0 -0
- data/template/resources/images/default/toolbar/btn-over-bg.gif +0 -0
- data/template/resources/images/default/toolbar/gray-bg.gif +0 -0
- data/template/resources/images/default/toolbar/more.gif +0 -0
- data/template/resources/images/default/toolbar/tb-bg.gif +0 -0
- data/template/resources/images/default/toolbar/tb-btn-sprite.gif +0 -0
- data/template/resources/images/default/toolbar/tb-xl-btn-sprite.gif +0 -0
- data/template/resources/images/default/toolbar/tb-xl-sep.gif +0 -0
- data/template/resources/images/default/tree/arrows.gif +0 -0
- data/template/resources/images/default/tree/drop-add.gif +0 -0
- data/template/resources/images/default/tree/drop-between.gif +0 -0
- data/template/resources/images/default/tree/drop-no.gif +0 -0
- data/template/resources/images/default/tree/drop-over.gif +0 -0
- data/template/resources/images/default/tree/drop-under.gif +0 -0
- data/template/resources/images/default/tree/drop-yes.gif +0 -0
- data/template/resources/images/default/tree/elbow-end-minus-nl.gif +0 -0
- data/template/resources/images/default/tree/elbow-end-minus.gif +0 -0
- data/template/resources/images/default/tree/elbow-end-plus-nl.gif +0 -0
- data/template/resources/images/default/tree/elbow-end-plus.gif +0 -0
- data/template/resources/images/default/tree/elbow-end.gif +0 -0
- data/template/resources/images/default/tree/elbow-line.gif +0 -0
- data/template/resources/images/default/tree/elbow-minus-nl.gif +0 -0
- data/template/resources/images/default/tree/elbow-minus.gif +0 -0
- data/template/resources/images/default/tree/elbow-plus-nl.gif +0 -0
- data/template/resources/images/default/tree/elbow-plus.gif +0 -0
- data/template/resources/images/default/tree/elbow.gif +0 -0
- data/template/resources/images/default/tree/folder-open.gif +0 -0
- data/template/resources/images/default/tree/folder.gif +0 -0
- data/template/resources/images/default/tree/leaf.gif +0 -0
- data/template/resources/images/default/tree/loading.gif +0 -0
- data/template/resources/images/default/tree/s.gif +0 -0
- data/template/resources/images/default/window/icon-error.gif +0 -0
- data/template/resources/images/default/window/icon-info.gif +0 -0
- data/template/resources/images/default/window/icon-question.gif +0 -0
- data/template/resources/images/default/window/icon-warning.gif +0 -0
- data/template/resources/images/default/window/left-corners.png +0 -0
- data/template/resources/images/default/window/left-corners.psd +0 -0
- data/template/resources/images/default/window/left-right.png +0 -0
- data/template/resources/images/default/window/left-right.psd +0 -0
- data/template/resources/images/default/window/right-corners.png +0 -0
- data/template/resources/images/default/window/right-corners.psd +0 -0
- data/template/resources/images/default/window/top-bottom.png +0 -0
- data/template/resources/images/default/window/top-bottom.psd +0 -0
- data/template/resources/images/gray/button/btn-arrow.gif +0 -0
- data/template/resources/images/gray/button/btn-sprite.gif +0 -0
- data/template/resources/images/gray/button/btn.gif +0 -0
- data/template/resources/images/gray/button/group-cs.gif +0 -0
- data/template/resources/images/gray/button/group-lr.gif +0 -0
- data/template/resources/images/gray/button/group-tb.gif +0 -0
- data/template/resources/images/gray/button/s-arrow-bo.gif +0 -0
- data/template/resources/images/gray/button/s-arrow-o.gif +0 -0
- data/template/resources/images/gray/form/clear-trigger.gif +0 -0
- data/template/resources/images/gray/form/date-trigger.gif +0 -0
- data/template/resources/images/gray/form/search-trigger.gif +0 -0
- data/template/resources/images/gray/form/trigger-square.gif +0 -0
- data/template/resources/images/gray/form/trigger.gif +0 -0
- data/template/resources/images/gray/gradient-bg.gif +0 -0
- data/template/resources/images/gray/grid/col-move-bottom.gif +0 -0
- data/template/resources/images/gray/grid/col-move-top.gif +0 -0
- data/template/resources/images/gray/grid/grid3-hd-btn.gif +0 -0
- data/template/resources/images/gray/grid/grid3-hrow-over.gif +0 -0
- data/template/resources/images/gray/grid/grid3-hrow-over2.gif +0 -0
- data/template/resources/images/gray/grid/grid3-hrow.gif +0 -0
- data/template/resources/images/gray/grid/grid3-hrow2.gif +0 -0
- data/template/resources/images/gray/grid/grid3-special-col-bg.gif +0 -0
- data/template/resources/images/gray/grid/grid3-special-col-bg2.gif +0 -0
- data/template/resources/images/gray/grid/grid3-special-col-sel-bg.gif +0 -0
- data/template/resources/images/gray/grid/group-collapse.gif +0 -0
- data/template/resources/images/gray/grid/group-expand-sprite.gif +0 -0
- data/template/resources/images/gray/grid/group-expand.gif +0 -0
- data/template/resources/images/gray/grid/page-first.gif +0 -0
- data/template/resources/images/gray/grid/page-last.gif +0 -0
- data/template/resources/images/gray/grid/page-next.gif +0 -0
- data/template/resources/images/gray/grid/page-prev.gif +0 -0
- data/template/resources/images/gray/grid/refresh.gif +0 -0
- data/template/resources/images/gray/grid/row-expand-sprite.gif +0 -0
- data/template/resources/images/gray/grid/sort_asc.gif +0 -0
- data/template/resources/images/gray/grid/sort_desc.gif +0 -0
- data/template/resources/images/gray/menu/group-checked.gif +0 -0
- data/template/resources/images/gray/menu/item-over-disabled.gif +0 -0
- data/template/resources/images/gray/menu/item-over.gif +0 -0
- data/template/resources/images/gray/menu/menu-parent.gif +0 -0
- data/template/resources/images/gray/panel/corners-sprite.gif +0 -0
- data/template/resources/images/gray/panel/left-right.gif +0 -0
- data/template/resources/images/gray/panel/light-hd.gif +0 -0
- data/template/resources/images/gray/panel/tool-sprite-tpl.gif +0 -0
- data/template/resources/images/gray/panel/tool-sprites.gif +0 -0
- data/template/resources/images/gray/panel/tools-sprites-trans.gif +0 -0
- data/template/resources/images/gray/panel/top-bottom.gif +0 -0
- data/template/resources/images/gray/panel/top-bottom.png +0 -0
- data/template/resources/images/gray/panel/white-corners-sprite.gif +0 -0
- data/template/resources/images/gray/panel/white-left-right.gif +0 -0
- data/template/resources/images/gray/panel/white-top-bottom.gif +0 -0
- data/template/resources/images/gray/progress/progress-bg.gif +0 -0
- data/template/resources/images/gray/qtip/bg.gif +0 -0
- data/template/resources/images/gray/qtip/close.gif +0 -0
- data/template/resources/images/gray/qtip/tip-anchor-sprite.gif +0 -0
- data/template/resources/images/gray/qtip/tip-sprite.gif +0 -0
- data/template/resources/images/gray/s.gif +0 -0
- data/template/resources/images/gray/shared/hd-sprite.gif +0 -0
- data/template/resources/images/gray/shared/left-btn.gif +0 -0
- data/template/resources/images/gray/shared/right-btn.gif +0 -0
- data/template/resources/images/gray/sizer/e-handle.gif +0 -0
- data/template/resources/images/gray/sizer/ne-handle.gif +0 -0
- data/template/resources/images/gray/sizer/nw-handle.gif +0 -0
- data/template/resources/images/gray/sizer/s-handle.gif +0 -0
- data/template/resources/images/gray/sizer/se-handle.gif +0 -0
- data/template/resources/images/gray/sizer/square.gif +0 -0
- data/template/resources/images/gray/sizer/sw-handle.gif +0 -0
- data/template/resources/images/gray/slider/slider-thumb.png +0 -0
- data/template/resources/images/gray/slider/slider-v-thumb.png +0 -0
- data/template/resources/images/gray/tabs/scroll-left.gif +0 -0
- data/template/resources/images/gray/tabs/scroll-right.gif +0 -0
- data/template/resources/images/gray/tabs/scroller-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-btm-left-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-btm-over-left-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-btm-over-right-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-btm-right-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-close.gif +0 -0
- data/template/resources/images/gray/tabs/tab-strip-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tab-strip-bg.png +0 -0
- data/template/resources/images/gray/tabs/tab-strip-btm-bg.gif +0 -0
- data/template/resources/images/gray/tabs/tabs-sprite.gif +0 -0
- data/template/resources/images/gray/toolbar/bg.gif +0 -0
- data/template/resources/images/gray/toolbar/btn-arrow-light.gif +0 -0
- data/template/resources/images/gray/toolbar/btn-arrow.gif +0 -0
- data/template/resources/images/gray/toolbar/btn-over-bg.gif +0 -0
- data/template/resources/images/gray/toolbar/gray-bg.gif +0 -0
- data/template/resources/images/gray/toolbar/more.gif +0 -0
- data/template/resources/images/gray/toolbar/tb-bg.gif +0 -0
- data/template/resources/images/gray/toolbar/tb-btn-sprite.gif +0 -0
- data/template/resources/images/gray/tree/arrows.gif +0 -0
- data/template/resources/images/gray/tree/elbow-end-minus-nl.gif +0 -0
- data/template/resources/images/gray/tree/elbow-end-minus.gif +0 -0
- data/template/resources/images/gray/tree/elbow-end-plus-nl.gif +0 -0
- data/template/resources/images/gray/tree/elbow-end-plus.gif +0 -0
- data/template/resources/images/gray/window/icon-error.gif +0 -0
- data/template/resources/images/gray/window/icon-info.gif +0 -0
- data/template/resources/images/gray/window/icon-question.gif +0 -0
- data/template/resources/images/gray/window/icon-warning.gif +0 -0
- data/template/resources/images/gray/window/left-corners.png +0 -0
- data/template/resources/images/gray/window/left-corners.pspimage +0 -0
- data/template/resources/images/gray/window/left-right.png +0 -0
- data/template/resources/images/gray/window/right-corners.png +0 -0
- data/template/resources/images/gray/window/top-bottom.png +0 -0
- data/template/resources/inherited.gif +0 -0
- data/template/resources/method.gif +0 -0
- data/template/resources/pkg-closed.gif +0 -0
- data/template/resources/pkg-open.gif +0 -0
- data/template/resources/pkg.gif +0 -0
- data/template/resources/prop.gif +0 -0
- data/template/resources/s.gif +0 -0
- data/template/resources/static.gif +0 -0
- data/template/resources/style.css +0 -291
- data/template/welcome.html +0 -45
data/lib/jsduck/class.rb
CHANGED
|
@@ -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
|
|
50
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
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
|
data/lib/jsduck/doc_formatter.rb
CHANGED
|
@@ -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
|
-
#
|
|
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 :
|
|
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
|
-
@
|
|
52
|
+
@class_context = ""
|
|
53
|
+
@doc_context = {}
|
|
47
54
|
@max_length = 120
|
|
48
55
|
@relations = {}
|
|
49
|
-
@link_tpl = '<a href="%c
|
|
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? ? @
|
|
89
|
-
|
|
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 == @
|
|
108
|
+
text = (cls == @class_context) ? member : (cls + "." + member)
|
|
100
109
|
else
|
|
101
110
|
text = cls
|
|
102
111
|
end
|
|
103
112
|
|
|
104
|
-
|
|
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
|
-
|
|
136
|
+
member = $4
|
|
118
137
|
after = $5
|
|
119
138
|
|
|
120
|
-
if @relations[cls]
|
|
121
|
-
label =
|
|
122
|
-
before + link(cls,
|
|
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 || "") + (
|
|
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
|
-
|
|
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 '
|
|
152
|
-
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
|
|
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
|
-
|
|
195
|
-
|
|
223
|
+
sent = first_sentence(strip_tags(input))
|
|
224
|
+
if sent.length > @max_length
|
|
225
|
+
sent[0..(@max_length-4)] + "..."
|
|
196
226
|
else
|
|
197
|
-
|
|
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)
|
|
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
|
|
data/lib/jsduck/doc_parser.rb
CHANGED
|
@@ -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(/@
|
|
111
|
-
boolean_at_tag(/@
|
|
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)
|
data/lib/jsduck/exporter.rb
CHANGED
|
@@ -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[:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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.
|
|
35
|
+
@formatter.class_context = c[:name]
|
|
36
|
+
@formatter.doc_context = c
|
|
43
37
|
c[:doc] = @formatter.format(c[:doc]) if c[:doc]
|
|
44
|
-
[:
|
|
45
|
-
c[type] =
|
|
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
|