jsduck 5.0.0 → 5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/jsduck/class.rb +2 -2
- data/lib/jsduck/guide_anchors.rb +8 -1
- data/lib/jsduck/guide_toc.rb +1 -1
- data/lib/jsduck/js/associator.rb +3 -1
- data/lib/jsduck/js/method.rb +5 -0
- data/lib/jsduck/js/node.rb +17 -0
- data/lib/jsduck/js/parser.rb +15 -1
- data/lib/jsduck/js/property.rb +9 -1
- data/lib/jsduck/js/rkelly_adapter.rb +29 -2
- data/lib/jsduck/members_index.rb +4 -5
- data/lib/jsduck/options.rb +1 -1
- data/lib/jsduck/process/inherit_doc.rb +4 -0
- data/lib/jsduck/process/inherit_members.rb +0 -2
- data/lib/jsduck/tag/cfg.rb +6 -1
- data/lib/jsduck/tag/property.rb +1 -0
- data/template-min/README.md +14 -0
- data/template-min/app-8718a7273ffcf400247ec95230aa1737.js +1 -0
- data/template-min/eg-iframe.html +26 -0
- data/template-min/extjs/ext-all.js +38 -0
- data/template-min/extjs/resources/themes/images/default/boundlist/trigger-arrow.png +0 -0
- data/template-min/extjs/resources/themes/images/default/box/corners-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/l-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/l.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/r-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/r.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/tb-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/tb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/arrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/group-cs.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/group-lr.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/group-tb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-b.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-bo.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-light.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-noline.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-o.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/dd/drop-add.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/dd/drop-no.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/dd/drop-yes.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/editor/tb-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/checkbox.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/clear-trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/date-trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/error-tip-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/exclamation.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/radio.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/search-trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/spinner-small.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/spinner.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/text-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/trigger-square.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/trigger-tpl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/arrow-left-white.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/arrow-right-white.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/checked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/col-move-bottom.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/col-move-top.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-over-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/columns.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dirty.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/done.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/drop-no.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/drop-yes.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/footer-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-blue-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-blue-split.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-hrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-split.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-vista-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-hd-btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-hrow-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-hrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-rowheader.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-by.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-collapse.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-expand-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-expand.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hd-pop.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-asc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-desc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-lock.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-lock.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-unlock.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-unlock.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/invalid_line.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/mso-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/nowait.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-first-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-first.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-last-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-last.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-next-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-next.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-prev-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-prev.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/pick-button.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/property-cell-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/refresh-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/refresh.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-check-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-expand-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-sel.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/sort-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/sort_asc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/sort_desc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/unchecked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/wait.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-bottom.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-top.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/checked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/group-checked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/item-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-item-active-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-item-active-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-parent.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/unchecked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/progress/progress-default-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/blue-loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/calendar.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/glass-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/hd-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-error.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-info.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-question.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-warning.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/large-loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/left-btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/loading-balls.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/right-btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/shadow-c.png +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/shadow-lr.png +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/shadow.png +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/warning.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/e-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/e-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/ne-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/nw-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/s-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/s-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/se-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/se-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/square.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/sw-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-thumb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-thumb.png +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-thumb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-thumb.png +0 -0
- data/template-min/extjs/resources/themes/images/default/tab-bar/scroll-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab-bar/scroll-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-close.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tip/tip-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tip/tip-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/more.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/scroll-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/scroll-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tools/tool-sprite-tpl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tools/tool-sprites.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/arrows.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-above.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-add.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-append.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-below.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-between.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-no.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-under.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-yes.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-minus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-plus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-line.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-minus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-plus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/folder-open.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/folder.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/leaf.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/s.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-top.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window/window-default-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window/window-default-sides.gif +0 -0
- data/template-min/favicon.ico +0 -0
- data/template-min/index-template.html +35 -0
- data/template-min/index.php +94 -0
- data/template-min/mobile-redirect.js +1 -0
- data/template-min/print-template.html +52 -0
- data/template-min/resources/css/app-68f1acb2324b20262c41507f2e1b4b0b.css +1 -0
- data/template-min/resources/images/ajax-loader.gif +0 -0
- data/template-min/resources/images/arrows.png +0 -0
- data/template-min/resources/images/class-m.png +0 -0
- data/template-min/resources/images/comment-bubble.png +0 -0
- data/template-min/resources/images/comment.png +0 -0
- data/template-min/resources/images/component-m.png +0 -0
- data/template-min/resources/images/default-guide.png +0 -0
- data/template-min/resources/images/doc-m.png +0 -0
- data/template-min/resources/images/down-arr.png +0 -0
- data/template-min/resources/images/elbow-end.gif +0 -0
- data/template-min/resources/images/example-icons.png +0 -0
- data/template-min/resources/images/expandcollapse.png +0 -0
- data/template-min/resources/images/group-expand-sprite.gif +0 -0
- data/template-min/resources/images/header.png +0 -0
- data/template-min/resources/images/hero-extjs4-alt.png +0 -0
- data/template-min/resources/images/icons.png +0 -0
- data/template-min/resources/images/link-green-standard-over.png +0 -0
- data/template-min/resources/images/link-green-standard.png +0 -0
- data/template-min/resources/images/loading.gif +0 -0
- data/template-min/resources/images/logo-screen-noglow.png +0 -0
- data/template-min/resources/images/logo.png +0 -0
- data/template-min/resources/images/member-collapsed.gif +0 -0
- data/template-min/resources/images/member-expanded.gif +0 -0
- data/template-min/resources/images/member-hover.gif +0 -0
- data/template-min/resources/images/more.png +0 -0
- data/template-min/resources/images/phone-l.jpg +0 -0
- data/template-min/resources/images/phone-p.jpg +0 -0
- data/template-min/resources/images/phone-small-l.jpg +0 -0
- data/template-min/resources/images/phone-small-p.jpg +0 -0
- data/template-min/resources/images/print.png +0 -0
- data/template-min/resources/images/sample-over.gif +0 -0
- data/template-min/resources/images/search-box.png +0 -0
- data/template-min/resources/images/singleton-m.png +0 -0
- data/template-min/resources/images/tablet-l.jpg +0 -0
- data/template-min/resources/images/tablet-p.jpg +0 -0
- data/template-min/resources/images/tabs.png +0 -0
- data/template-min/resources/images/text-bg.gif +0 -0
- data/template-min/resources/images/vote-arrows.png +0 -0
- data/template-min/resources/images/welcome-bg-js4.gif +0 -0
- data/template-min/resources/images/x.png +0 -0
- data/template-min/resources/images/x12.png +0 -0
- data/template-min/resources/prettify/prettify.css +1 -0
- data/template-min/resources/prettify/prettify.js +30 -0
- data/template-min/template.html +44 -0
- metadata +196 -201
- data/.gitignore +0 -6
- data/.travis.yml +0 -12
- data/Rakefile +0 -302
- data/bin/compare +0 -374
- data/bin/graph +0 -52
- data/jsduck.gemspec +0 -33
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Rakefile
DELETED
@@ -1,302 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
5
|
-
|
6
|
-
require 'jsduck/util/md5'
|
7
|
-
|
8
|
-
def os_is_windows?
|
9
|
-
RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
10
|
-
end
|
11
|
-
|
12
|
-
require 'rspec'
|
13
|
-
require 'rspec/core/rake_task'
|
14
|
-
RSpec::Core::RakeTask.new(:spec) do |spec|
|
15
|
-
spec.rspec_opts = ["--color"] unless os_is_windows?
|
16
|
-
spec.pattern = "spec/**/*_spec.rb"
|
17
|
-
end
|
18
|
-
|
19
|
-
def load_sdk_vars
|
20
|
-
if File.exists?("sdk-vars.rb")
|
21
|
-
require "./sdk-vars.rb"
|
22
|
-
else
|
23
|
-
puts "Error: sdk-vars.rb not found."
|
24
|
-
puts
|
25
|
-
puts "Please create file sdk-vars.rb and define in it:"
|
26
|
-
puts
|
27
|
-
puts " # where to output the docs"
|
28
|
-
puts " OUT_DIR='/path/to/ouput/dir'"
|
29
|
-
puts " # path to Ext JS 4 build"
|
30
|
-
puts " EXT_BUILD='/path/to/ext-4'"
|
31
|
-
puts " # path to Touch 2 build (for building Sencha Touch)"
|
32
|
-
puts " TOUCH_BUILD='/path/to/touch-2'"
|
33
|
-
puts " # path to SDK (for developers at Sencha)"
|
34
|
-
puts " SDK_DIR='/path/to/SDK'"
|
35
|
-
exit 1
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# Compress JS/CSS file in-place
|
40
|
-
# Using a hackish way to access yui-compressor
|
41
|
-
def yui_compress(fname)
|
42
|
-
system "java -jar $(dirname $(which sencha))/bin/yuicompressor.jar -o #{fname} #{fname}"
|
43
|
-
end
|
44
|
-
|
45
|
-
# Reads in all CSS files referenced between BEGIN CSS and END CSS markers.
|
46
|
-
# Deletes those input CSS files and writes out concatenated CSS to
|
47
|
-
# resources/css/app.css
|
48
|
-
# Finally replaces the CSS section with <link> to that one CSS file.
|
49
|
-
def combine_css(html, dir)
|
50
|
-
css_section_re = /<!-- BEGIN CSS -->.*<!-- END CSS -->/m
|
51
|
-
css = []
|
52
|
-
css_section_re.match(html)[0].each_line do |line|
|
53
|
-
if line =~ /<link rel="stylesheet" href="(.*?)"/
|
54
|
-
file = $1
|
55
|
-
css << IO.read(dir + "/" + file)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
fname = "#{dir}/resources/css/app.css"
|
60
|
-
File.open(fname, 'w') {|f| f.write(css.join("\n")) }
|
61
|
-
yui_compress(fname)
|
62
|
-
fname = JsDuck::Util::MD5.rename(fname)
|
63
|
-
|
64
|
-
html.sub(css_section_re, '<link rel="stylesheet" href="resources/css/' + File.basename(fname) + '" type="text/css" />')
|
65
|
-
end
|
66
|
-
|
67
|
-
# Same thing for JavaScript, result is written to: app.js
|
68
|
-
def combine_js(html, dir)
|
69
|
-
js_section_re = /<!-- BEGIN JS -->.*<!-- END JS -->/m
|
70
|
-
js = []
|
71
|
-
js_section_re.match(html)[0].each_line do |line|
|
72
|
-
if line =~ /<script .* src="(.*)">/
|
73
|
-
file = $1
|
74
|
-
js << IO.read(dir + "/" + file)
|
75
|
-
elsif line =~ /<script .*>(.*)<\/script>/
|
76
|
-
js << $1
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
fname = "#{dir}/app.js"
|
81
|
-
|
82
|
-
File.open(fname, 'w') {|f| f.write(js.join("\n")) }
|
83
|
-
yui_compress(fname)
|
84
|
-
fname = JsDuck::Util::MD5.rename(fname)
|
85
|
-
html.sub(js_section_re, '<script type="text/javascript" src="' + File.basename(fname) + '"></script>')
|
86
|
-
end
|
87
|
-
|
88
|
-
# Modifies HTML to link app.css.
|
89
|
-
def rewrite_css_links(dir, filename)
|
90
|
-
html = IO.read(dir + "/" + filename);
|
91
|
-
html = combine_css(html, dir)
|
92
|
-
File.open(dir + "/" + filename, 'w') {|f| f.write(html) }
|
93
|
-
end
|
94
|
-
|
95
|
-
# Compress JavaScript and CSS files of JSDuck
|
96
|
-
def compress
|
97
|
-
load_sdk_vars
|
98
|
-
|
99
|
-
# Clean up template-min/ left over from previous compress task
|
100
|
-
system("rm", "-rf", "template-min")
|
101
|
-
# Copy template/ files to template-min/
|
102
|
-
system("cp", "-r", "template", "template-min")
|
103
|
-
# Now do everything that follows in template-min/ dir
|
104
|
-
dir = "template-min"
|
105
|
-
|
106
|
-
# Create JSB3 file for Docs app
|
107
|
-
system("sencha", "create", "jsb", "-a", "http://localhost/docs/", "-p", "#{dir}/app.jsb3")
|
108
|
-
# Concatenate files listed in JSB3 file
|
109
|
-
system("sencha", "build", "-p", "#{dir}/app.jsb3", "-d", dir)
|
110
|
-
|
111
|
-
# Remove intermediate build files
|
112
|
-
system("rm", "#{dir}/app.jsb3")
|
113
|
-
system("rm", "#{dir}/all-classes.js")
|
114
|
-
# Replace app.js with app-all.js
|
115
|
-
system("mv", "#{dir}/app-all.js", "#{dir}/app.js")
|
116
|
-
# Remove the entire app/ dir
|
117
|
-
system("rm", "-r", "#{dir}/app")
|
118
|
-
|
119
|
-
# Change CSS links in print-template.html and index-template.html files
|
120
|
-
rewrite_css_links(dir, "print-template.html")
|
121
|
-
rewrite_css_links(dir, "index-template.html")
|
122
|
-
|
123
|
-
# Concatenate CSS and JS files referenced in template.html file
|
124
|
-
template_html = "#{dir}/template.html"
|
125
|
-
html = IO.read(template_html)
|
126
|
-
html = combine_css(html, dir)
|
127
|
-
html = combine_js(html, dir)
|
128
|
-
File.open(template_html, 'w') {|f| f.write(html) }
|
129
|
-
|
130
|
-
# Clean up SASS files
|
131
|
-
# (But keep prettify lib, which is needed for source files)
|
132
|
-
system "rm -rf #{dir}/resources/css/docs-ext.css"
|
133
|
-
system "rm -rf #{dir}/resources/css/viewport.css"
|
134
|
-
system "rm -rf #{dir}/resources/sass"
|
135
|
-
system "rm -rf #{dir}/resources/codemirror"
|
136
|
-
system "rm -rf #{dir}/resources/.sass-cache"
|
137
|
-
|
138
|
-
# Empty the extjs dir, leave only the main JS file and images
|
139
|
-
system "rm -rf #{dir}/extjs"
|
140
|
-
system "mkdir #{dir}/extjs"
|
141
|
-
system "cp template/extjs/ext-all.js #{dir}/extjs"
|
142
|
-
system "mkdir -p #{dir}/extjs/resources/themes/images"
|
143
|
-
system "cp -r template/extjs/resources/themes/images/default #{dir}/extjs/resources/themes/images"
|
144
|
-
end
|
145
|
-
|
146
|
-
|
147
|
-
class JsDuckRunner
|
148
|
-
def initialize
|
149
|
-
@options = []
|
150
|
-
load_sdk_vars
|
151
|
-
end
|
152
|
-
|
153
|
-
def add_options(*options)
|
154
|
-
@options += options
|
155
|
-
end
|
156
|
-
|
157
|
-
def add_comments(db_name, version)
|
158
|
-
add_options("--comments-url", "http://localhost:3000/auth")
|
159
|
-
add_options("--comments-domain", db_name+"/"+version)
|
160
|
-
end
|
161
|
-
|
162
|
-
def add_search(product, version)
|
163
|
-
add_options("--search-url", "http://support-test.sencha.com:8080/docsearch/search")
|
164
|
-
add_options("--search-domain", product+"/"+version)
|
165
|
-
end
|
166
|
-
|
167
|
-
def add_ext4
|
168
|
-
@options += [
|
169
|
-
"--title", "Sencha Docs - Ext JS 4.0",
|
170
|
-
"--footer", "Ext JS 4.0 Docs - Generated with <a href='https://github.com/senchalabs/jsduck'>JSDuck</a> {VERSION}." +
|
171
|
-
" <a href='http://www.sencha.com/legal/terms-of-use/'>Terms of Use</a>",
|
172
|
-
"--ignore-global",
|
173
|
-
"--warnings", "-all",
|
174
|
-
"--images", "#{EXT_BUILD}/docs/images",
|
175
|
-
"--local-storage-db", "ext-4",
|
176
|
-
"--output", "#{OUT_DIR}",
|
177
|
-
"#{EXT_BUILD}/src",
|
178
|
-
]
|
179
|
-
end
|
180
|
-
|
181
|
-
def add_debug
|
182
|
-
add_options(
|
183
|
-
"--extjs-path", "extjs/ext-all-debug.js",
|
184
|
-
"--template", "template"
|
185
|
-
)
|
186
|
-
add_options("--template-links") unless os_is_windows?
|
187
|
-
end
|
188
|
-
|
189
|
-
def run
|
190
|
-
# Pass multiple arguments to system, so we'll take advantage of the built-in escaping
|
191
|
-
system(*["ruby", "bin/jsduck"].concat(@options))
|
192
|
-
end
|
193
|
-
end
|
194
|
-
|
195
|
-
# Download ExtJS into template/extjs
|
196
|
-
task :get_extjs do
|
197
|
-
system "curl -o template/extjs.zip http://cdn.sencha.com/ext-4.1.1a-gpl.zip"
|
198
|
-
system "unzip template/extjs.zip -d template/"
|
199
|
-
system "rm -rf template/extjs"
|
200
|
-
system "mv template/ext-4.1.1a template/extjs"
|
201
|
-
system "rm template/extjs.zip"
|
202
|
-
end
|
203
|
-
|
204
|
-
# Auto-generate sdk-vars.rb config file
|
205
|
-
task :config_file do
|
206
|
-
if File.exists?("sdk-vars.rb")
|
207
|
-
puts "sdk-vars.rb already exists. Keeping it."
|
208
|
-
else
|
209
|
-
puts "Generating sdk-vars.rb with the following content:"
|
210
|
-
config = <<-EORUBY
|
211
|
-
# where to output the docs
|
212
|
-
OUT_DIR='#{Dir.pwd}/output'
|
213
|
-
# path to Ext JS 4 build
|
214
|
-
EXT_BUILD='#{Dir.pwd}/template/extjs'
|
215
|
-
EORUBY
|
216
|
-
puts
|
217
|
-
puts config
|
218
|
-
File.open("sdk-vars.rb", "w") {|h| h.write(config) }
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
|
-
desc "Download ExtJS and initialize sdk-vars.rb config file"
|
223
|
-
task :configure => [:get_extjs, :config_file]
|
224
|
-
|
225
|
-
# Run compass to generate CSS files
|
226
|
-
task :sass do
|
227
|
-
system "compass compile --quiet template/resources/sass"
|
228
|
-
end
|
229
|
-
|
230
|
-
desc "Build JSDuck gem"
|
231
|
-
task :gem => :sass do
|
232
|
-
compress
|
233
|
-
system "gem build jsduck.gemspec"
|
234
|
-
end
|
235
|
-
|
236
|
-
desc "Run JSDuck on Docs app itself"
|
237
|
-
task :docs do
|
238
|
-
runner = JsDuckRunner.new
|
239
|
-
runner.add_ext4
|
240
|
-
runner.add_options(
|
241
|
-
"--builtin-classes",
|
242
|
-
"template/app"
|
243
|
-
)
|
244
|
-
runner.add_debug
|
245
|
-
runner.run
|
246
|
-
end
|
247
|
-
|
248
|
-
desc "Run JSDuck on official Ext JS 4 build"
|
249
|
-
task :ext4 => :sass do
|
250
|
-
runner = JsDuckRunner.new
|
251
|
-
runner.add_ext4
|
252
|
-
runner.add_debug
|
253
|
-
runner.run
|
254
|
-
|
255
|
-
system("ln -s #{EXT_BUILD} #{OUT_DIR}/extjs-build")
|
256
|
-
end
|
257
|
-
|
258
|
-
desc "Run JSDuck on Ext JS from SDK repo (for internal use at Sencha)"
|
259
|
-
task :sdk => :sass do
|
260
|
-
runner = JsDuckRunner.new
|
261
|
-
runner.add_options(
|
262
|
-
"--output", OUT_DIR,
|
263
|
-
"--config", "#{SDK_DIR}/extjs/docs/config.json",
|
264
|
-
"--examples-base-url", "extjs-build/examples/",
|
265
|
-
# "--import", "4.1.3:../docs.sencha.com/exports/extjs-4.1.3",
|
266
|
-
# "--import", "4.2",
|
267
|
-
"--seo"
|
268
|
-
)
|
269
|
-
runner.add_debug
|
270
|
-
runner.add_comments('ext-js', '4')
|
271
|
-
runner.add_search('Ext JS', '4.2.0')
|
272
|
-
runner.run
|
273
|
-
|
274
|
-
system("ln -s #{EXT_BUILD} #{OUT_DIR}/extjs-build")
|
275
|
-
end
|
276
|
-
|
277
|
-
desc "Run JSDuck on Sencha Touch 2 repo (for internal use at Sencha)"
|
278
|
-
task :touch2 => :sass do
|
279
|
-
runner = JsDuckRunner.new
|
280
|
-
runner.add_options(
|
281
|
-
"--output", OUT_DIR,
|
282
|
-
"--config", "#{SDK_DIR}/touch/docs/config.json",
|
283
|
-
"--examples-base-url", "touch-build/examples/production/",
|
284
|
-
# "--import", "1.1.0:../docs.sencha.com/exports/touch-1.1.0",
|
285
|
-
# "--import", "1.1.1:../docs.sencha.com/exports/touch-1.1.1",
|
286
|
-
# "--import", "2.0.0:../docs.sencha.com/exports/touch-2.0.0",
|
287
|
-
# "--import", "2.0.1:../docs.sencha.com/exports/touch-2.0.1",
|
288
|
-
# "--import", "2.1.0:../docs.sencha.com/exports/touch-2.1.0",
|
289
|
-
# "--import", "2.1.1:../docs.sencha.com/exports/touch-2.1.1",
|
290
|
-
# "--import", "2.2.0:../docs.sencha.com/exports/touch-2.2.0",
|
291
|
-
# "--import", "2.2.1",
|
292
|
-
"--seo"
|
293
|
-
)
|
294
|
-
|
295
|
-
runner.add_debug
|
296
|
-
runner.add_comments('touch', '2')
|
297
|
-
runner.run
|
298
|
-
|
299
|
-
system("ln -s #{TOUCH_BUILD} #{OUT_DIR}/touch-build")
|
300
|
-
end
|
301
|
-
|
302
|
-
task :default => :spec
|
data/bin/compare
DELETED
@@ -1,374 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Produces diff of two JSDuck exports.
|
3
|
-
|
4
|
-
# For running when gem not installed
|
5
|
-
$:.unshift File.dirname(File.dirname(__FILE__)) + "/lib"
|
6
|
-
|
7
|
-
require "rubygems"
|
8
|
-
require "cgi"
|
9
|
-
require "optparse"
|
10
|
-
require "jsduck/util/json"
|
11
|
-
|
12
|
-
options = {
|
13
|
-
:title => "Comparison of Ext 4.0.7 and Ext 4.1.1",
|
14
|
-
:remap => {},
|
15
|
-
}
|
16
|
-
|
17
|
-
input_files = OptionParser.new do |opts|
|
18
|
-
opts.banner = "Produces diff of two JSDuck exports.\n\n" +
|
19
|
-
"Usage: compare [options] old/classes/ new/classes/ output.html\n\n"
|
20
|
-
|
21
|
-
opts.on("--ignore=FILE", "A file listing members to be ignored") do |file|
|
22
|
-
options[:ignore] = file
|
23
|
-
end
|
24
|
-
|
25
|
-
opts.on("--type=NAME", "Only produce diff of cfg, property, method or event.") do |name|
|
26
|
-
options[:type] = name
|
27
|
-
end
|
28
|
-
|
29
|
-
opts.on("--title=TEXT", "Title for the generated HTML page.",
|
30
|
-
"Defaults to: 'Comparison of Ext 4.0.7 and Ext 4.1.1'") do |text|
|
31
|
-
options[:title] = text
|
32
|
-
end
|
33
|
-
|
34
|
-
opts.on("--show-unchanged", "To list classes that have not changed.",
|
35
|
-
"By default only classes with changes are listed.") do
|
36
|
-
options[:show_unchanged] = true
|
37
|
-
end
|
38
|
-
|
39
|
-
opts.on("--map=A:B", "Maps class A in old/classes/ to class B",
|
40
|
-
"in new/classes/. For example --map Ext.Foo:Ext.NewFoo") do |pair|
|
41
|
-
(a, b) = pair.split(/:/)
|
42
|
-
options[:remap][a] = b
|
43
|
-
end
|
44
|
-
|
45
|
-
opts.on("-h", "--help", "Show this help message") do
|
46
|
-
puts opts
|
47
|
-
exit
|
48
|
-
end
|
49
|
-
end.parse!
|
50
|
-
|
51
|
-
if input_files.length == 3
|
52
|
-
options[:old_classes] = input_files[0]
|
53
|
-
options[:new_classes] = input_files[1]
|
54
|
-
options[:out_file] = input_files[2]
|
55
|
-
else
|
56
|
-
puts "You must specify exactly 3 filenames: old/classes/ new/classes/ output.html"
|
57
|
-
exit 1
|
58
|
-
end
|
59
|
-
|
60
|
-
|
61
|
-
def read_class(filename)
|
62
|
-
JsDuck::Util::Json.read(filename)
|
63
|
-
end
|
64
|
-
|
65
|
-
# loops through all members of class
|
66
|
-
def each_member(cls)
|
67
|
-
["members", "statics"].each do |category|
|
68
|
-
cls[category].each_pair do |k, members|
|
69
|
-
members.each do |m|
|
70
|
-
yield m
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def discard_docs(cls)
|
77
|
-
each_member(cls) do |m|
|
78
|
-
m["doc"] = nil
|
79
|
-
m["params"] = nil
|
80
|
-
end
|
81
|
-
cls
|
82
|
-
end
|
83
|
-
|
84
|
-
def read_all_classes(dir)
|
85
|
-
map = {}
|
86
|
-
Dir[dir+"/*.json"].each do |filename|
|
87
|
-
print "."
|
88
|
-
STDOUT.flush
|
89
|
-
cls = discard_docs(read_class(filename))
|
90
|
-
map[cls["name"]] = cls
|
91
|
-
cls["alternateClassNames"].each do |name|
|
92
|
-
map[name] = cls
|
93
|
-
end
|
94
|
-
end
|
95
|
-
puts "OK"
|
96
|
-
map
|
97
|
-
end
|
98
|
-
|
99
|
-
def read_ignored_members(filename)
|
100
|
-
map = {}
|
101
|
-
IO.read(filename).each_line do |line|
|
102
|
-
map[line.chomp] = true
|
103
|
-
end
|
104
|
-
map
|
105
|
-
end
|
106
|
-
|
107
|
-
def normal_public_member?(m)
|
108
|
-
!m["private"] && !m["protected"] && !m["deprecated"] && !m["removed"]
|
109
|
-
end
|
110
|
-
|
111
|
-
def unify_default(v)
|
112
|
-
(v || "undefined").gsub(/"/, "'").sub(/^Ext\.baseCSSPrefix \+ '/, "'x-")
|
113
|
-
end
|
114
|
-
|
115
|
-
def visibility(m)
|
116
|
-
if m["private"]
|
117
|
-
"private"
|
118
|
-
elsif m["protected"]
|
119
|
-
"protected"
|
120
|
-
else
|
121
|
-
"public"
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
# Finds equivalent member to given member from class.
|
126
|
-
# Returns the member found or nil.
|
127
|
-
def find_member(cls, member)
|
128
|
-
cls[member["static"] ? "statics" : "members"][member["tagname"]].find do |m|
|
129
|
-
member["name"] == m["name"]
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
|
134
|
-
# Compares members of cls1 to cls2.
|
135
|
-
# Returns diff array of added, removed and changed members.
|
136
|
-
def compare_classes(cls1, cls2)
|
137
|
-
diff = []
|
138
|
-
|
139
|
-
checked_members = {}
|
140
|
-
|
141
|
-
each_member(cls1) do |m1|
|
142
|
-
next unless normal_public_member?(m1) && m1["owner"] == cls1["name"]
|
143
|
-
|
144
|
-
checked_members[m1["id"]] = true
|
145
|
-
|
146
|
-
m2 = find_member(cls2, m1)
|
147
|
-
|
148
|
-
if m2
|
149
|
-
changes = []
|
150
|
-
if m1["type"] != m2["type"]
|
151
|
-
changes << {
|
152
|
-
:what => "type",
|
153
|
-
:a => m1["type"],
|
154
|
-
:b => m2["type"],
|
155
|
-
}
|
156
|
-
end
|
157
|
-
if unify_default(m1["default"]) != unify_default(m2["default"])
|
158
|
-
changes << {
|
159
|
-
:what => "default",
|
160
|
-
:a => unify_default(m1["default"]),
|
161
|
-
:b => unify_default(m2["default"]),
|
162
|
-
}
|
163
|
-
end
|
164
|
-
if visibility(m1) != visibility(m2)
|
165
|
-
changes << {
|
166
|
-
:what => "visibility",
|
167
|
-
:a => visibility(m1),
|
168
|
-
:b => visibility(m2),
|
169
|
-
}
|
170
|
-
end
|
171
|
-
|
172
|
-
if changes.length > 0
|
173
|
-
diff << {
|
174
|
-
:type => m1["tagname"],
|
175
|
-
:name => m1["name"],
|
176
|
-
:what => "changed",
|
177
|
-
:changes => changes,
|
178
|
-
}
|
179
|
-
end
|
180
|
-
|
181
|
-
elsif !m2 && m1["name"] != "constructor" && m1["name"] != ""
|
182
|
-
other = nil
|
183
|
-
["cfg", "property", "method", "event"].each do |g|
|
184
|
-
other = other || cls2["members"][g].find {|m2| m2["name"] == m1["name"] }
|
185
|
-
other = other || cls2["statics"][g].find {|m2| m2["name"] == m1["name"] }
|
186
|
-
end
|
187
|
-
diff << {
|
188
|
-
:type => m1["tagname"],
|
189
|
-
:name => m1["name"],
|
190
|
-
:what => "removed",
|
191
|
-
:other => other ? {
|
192
|
-
:type => other["tagname"],
|
193
|
-
:static => other["static"],
|
194
|
-
:private => other["private"],
|
195
|
-
:protected => other["protected"],
|
196
|
-
} : nil
|
197
|
-
}
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
each_member(cls2) do |m2|
|
202
|
-
next unless normal_public_member?(m2) && m2["owner"] == cls2["name"] && !checked_members[m2["id"]]
|
203
|
-
|
204
|
-
m1 = find_member(cls1, m2)
|
205
|
-
|
206
|
-
if m1
|
207
|
-
changes = []
|
208
|
-
if visibility(m1) != visibility(m2)
|
209
|
-
changes << {
|
210
|
-
:what => "visibility",
|
211
|
-
:a => visibility(m1),
|
212
|
-
:b => visibility(m2),
|
213
|
-
}
|
214
|
-
end
|
215
|
-
|
216
|
-
if changes.length > 0
|
217
|
-
diff << {
|
218
|
-
:type => m2["tagname"],
|
219
|
-
:name => m2["name"],
|
220
|
-
:what => "changed",
|
221
|
-
:changes => changes,
|
222
|
-
}
|
223
|
-
end
|
224
|
-
|
225
|
-
elsif !m1 && m2["name"] != "constructor" && m2["name"] != ""
|
226
|
-
diff << {
|
227
|
-
:type => m2["tagname"],
|
228
|
-
:name => m2["name"],
|
229
|
-
:what => "added",
|
230
|
-
}
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
diff
|
235
|
-
end
|
236
|
-
|
237
|
-
|
238
|
-
old_classes = read_all_classes(options[:old_classes])
|
239
|
-
new_classes = read_all_classes(options[:new_classes])
|
240
|
-
ignored_members = options[:ignore] ? read_ignored_members(options[:ignore]) : {}
|
241
|
-
|
242
|
-
diff_data = []
|
243
|
-
old_classes.each_pair do |name, cls|
|
244
|
-
# only go through classes, not alternate names
|
245
|
-
if name == cls["name"] && !cls["private"]
|
246
|
-
if options[:remap][name]
|
247
|
-
new_cls = new_classes[options[:remap][name]]
|
248
|
-
else
|
249
|
-
new_cls = new_classes[name]
|
250
|
-
end
|
251
|
-
|
252
|
-
diff_data << {
|
253
|
-
:name => cls["name"],
|
254
|
-
:found => (new_cls || ignored_members[name]) ? :both : :old,
|
255
|
-
:new_name => new_cls && new_cls["name"],
|
256
|
-
:diff => new_cls ? compare_classes(cls, new_cls) : [],
|
257
|
-
}
|
258
|
-
end
|
259
|
-
end
|
260
|
-
|
261
|
-
new_classes.each_pair do |name, cls|
|
262
|
-
if name == cls["name"] && !cls["private"]
|
263
|
-
unless old_classes[name]
|
264
|
-
diff_data << {
|
265
|
-
:name => cls["name"],
|
266
|
-
:found => :new,
|
267
|
-
:diff => [],
|
268
|
-
}
|
269
|
-
end
|
270
|
-
end
|
271
|
-
end
|
272
|
-
|
273
|
-
# Throw away ignored members and everything except configs
|
274
|
-
diff_data.each do |cls|
|
275
|
-
cls[:diff] = cls[:diff].find_all do |m|
|
276
|
-
!ignored_members[cls[:name]+"#"+m[:name]] && (!options[:type] || m[:type] == options[:type])
|
277
|
-
end
|
278
|
-
end
|
279
|
-
|
280
|
-
# Choose title based on filename
|
281
|
-
if options[:out_file] =~ /touch/
|
282
|
-
title = "Comparison of Touch 1.1.1 and Touch 2.0.0"
|
283
|
-
else
|
284
|
-
title = "Comparison of Ext 4.0.7 and Ext 4.1.1"
|
285
|
-
end
|
286
|
-
|
287
|
-
# do HTML output
|
288
|
-
html = []
|
289
|
-
html << <<-EOHTML
|
290
|
-
<!DOCTYPE html>
|
291
|
-
<html>
|
292
|
-
<head>
|
293
|
-
<title>#{options[:title]}</title>
|
294
|
-
<style type="text/css">
|
295
|
-
body { font-family: Georgia, serif; }
|
296
|
-
li h2 { font-size: medium; font-weight: normal; }
|
297
|
-
li ul { display: none; }
|
298
|
-
b.unchanged { color: green; }
|
299
|
-
b.removed { color: red; }
|
300
|
-
b.new { color: black; }
|
301
|
-
</style>
|
302
|
-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
|
303
|
-
<script>
|
304
|
-
$(function() {
|
305
|
-
$("h2 > a").live("click", function() {
|
306
|
-
$("ul", $(this).parent().parent()).toggle();
|
307
|
-
return false;
|
308
|
-
});
|
309
|
-
});
|
310
|
-
</script>
|
311
|
-
</head>
|
312
|
-
<body>
|
313
|
-
<h1>#{options[:title]}</h1>
|
314
|
-
EOHTML
|
315
|
-
|
316
|
-
html << "<ul>"
|
317
|
-
diff_data.sort! {|a, b| a[:name] <=> b[:name] }
|
318
|
-
diff_data.each do |cls|
|
319
|
-
if cls[:found] == :both
|
320
|
-
if cls[:diff].length > 0 || options[:show_unchanged]
|
321
|
-
html << "<li>"
|
322
|
-
new_name = (cls[:new_name] == cls[:name] ? "" : " --> " + cls[:new_name])
|
323
|
-
diff_count = cls[:diff].length > 0 ? "(#{cls[:diff].length} changes)" : ""
|
324
|
-
link = cls[:diff].length > 0 ? "<a href='#expand'>#{cls[:name]}</a>" : cls[:name]+" <b class='unchanged'>Unchanged</b>"
|
325
|
-
html << "<h2>#{link} #{new_name} #{diff_count}</h2>"
|
326
|
-
if cls[:diff].length > 0
|
327
|
-
html << "<ul>"
|
328
|
-
cls[:diff].each do |m|
|
329
|
-
html << "<li>"
|
330
|
-
html << m[:what] + " " + m[:type] + " " + m[:name]
|
331
|
-
if m[:other]
|
332
|
-
o = m[:other]
|
333
|
-
stat = o[:static] ? 'static' : ''
|
334
|
-
priv = o[:private] ? 'private' : ''
|
335
|
-
prot = o[:protected] ? 'protected' : ''
|
336
|
-
html << " (found #{stat} #{priv} #{prot} #{o[:type]} with the same name)"
|
337
|
-
elsif m[:changes]
|
338
|
-
m[:changes].each do |c|
|
339
|
-
html << " (#{c[:what]} changed from #{CGI.escapeHTML(c[:a])} to #{CGI.escapeHTML(c[:b])})"
|
340
|
-
end
|
341
|
-
end
|
342
|
-
end
|
343
|
-
html << "</li>"
|
344
|
-
end
|
345
|
-
html << "</li>"
|
346
|
-
end
|
347
|
-
elsif cls[:found] == :old
|
348
|
-
html << "<li>"
|
349
|
-
html << "<h2>" + cls[:name] + " <b class='removed'>Removed</b></h2>"
|
350
|
-
html << "</li>"
|
351
|
-
elsif cls[:found] == :new
|
352
|
-
html << "<li>"
|
353
|
-
html << "<h2>" + cls[:name] + " <b class='new'>New class</b></h2>"
|
354
|
-
html << "</li>"
|
355
|
-
end
|
356
|
-
html << "</li>"
|
357
|
-
end
|
358
|
-
html << "</ul>"
|
359
|
-
|
360
|
-
html << "<h2>Summary</h2>"
|
361
|
-
dd = diff_data
|
362
|
-
html << "<p>" + dd.find_all {|c| c[:found] == :old }.length.to_s + " classes removed</p>"
|
363
|
-
html << "<p>" + dd.find_all {|c| c[:found] == :new }.length.to_s + " new classes added</p>"
|
364
|
-
html << "<p>" + dd.find_all {|c| c[:found] == :both && c[:diff].length == 0 }.length.to_s + " classes exactly the same</p>"
|
365
|
-
html << "<p>" + dd.find_all {|c| c[:found] == :both && c[:name] == c[:new_name] }.length.to_s + " classes with same name</p>"
|
366
|
-
html << "<p>" + dd.find_all {|c| c[:found] == :both && c[:name] != c[:new_name] }.length.to_s + " renamed classes</p>"
|
367
|
-
html << "<p>" + dd.find_all {|c| c[:diff].length > 0 }.length.to_s + " classes with changed members</p>"
|
368
|
-
html << "<p>" + dd.map {|c| c[:diff].length }.inject {|sum,x| sum + x }.to_s + " changed members</p>"
|
369
|
-
|
370
|
-
|
371
|
-
html << "</body>"
|
372
|
-
html << "</html>"
|
373
|
-
|
374
|
-
File.open(options[:out_file], 'w') {|f| f.write(html.join("\n")) }
|