javascriptmvc 3.0.0.pre15
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/.document +5 -0
- data/.gitignore +21 -0
- data/README.markdown +15 -0
- data/Rakefile +17 -0
- data/VERSION +1 -0
- data/bin/jmvc-build +4 -0
- data/bin/jmvc-gen +4 -0
- data/bin/jmvc-get +4 -0
- data/bin/jmvc-init +4 -0
- data/bin/jmvc-update +4 -0
- data/lib/javascriptmvc.rb +97 -0
- data/lib/javascriptmvc/documentjs/README +0 -0
- data/lib/javascriptmvc/documentjs/add.js +76 -0
- data/lib/javascriptmvc/documentjs/application.js +285 -0
- data/lib/javascriptmvc/documentjs/attribute.js +61 -0
- data/lib/javascriptmvc/documentjs/baseclass.js +537 -0
- data/lib/javascriptmvc/documentjs/class.js +141 -0
- data/lib/javascriptmvc/documentjs/constructor.js +145 -0
- data/lib/javascriptmvc/documentjs/directives.js +394 -0
- data/lib/javascriptmvc/documentjs/distance.js +49 -0
- data/lib/javascriptmvc/documentjs/document +21 -0
- data/lib/javascriptmvc/documentjs/documentjs.js +76 -0
- data/lib/javascriptmvc/documentjs/file.js +55 -0
- data/lib/javascriptmvc/documentjs/function.js +112 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/close.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/download.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/fav-off.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/fav-on.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/favicon.ico +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/logo.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/pre.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_222222_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_2e83ff_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_454545_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_888888_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/video.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/production.js +552 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/style.css +354 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/summary.ejs +134 -0
- data/lib/javascriptmvc/documentjs/json.js +172 -0
- data/lib/javascriptmvc/documentjs/page.js +107 -0
- data/lib/javascriptmvc/documentjs/pair.js +302 -0
- data/lib/javascriptmvc/documentjs/prototype.js +13 -0
- data/lib/javascriptmvc/documentjs/scripts/build.js +6 -0
- data/lib/javascriptmvc/documentjs/static.js +25 -0
- data/lib/javascriptmvc/documentjs/test/docs/Something.json +1 -0
- data/lib/javascriptmvc/documentjs/test/docs/searchData.json +1 -0
- data/lib/javascriptmvc/documentjs/test/something.js +8 -0
- data/lib/javascriptmvc/documentjs/test/test.html +6 -0
- data/lib/javascriptmvc/documentjs/test_doc.html +1 -0
- data/lib/javascriptmvc/documentjs/update +5 -0
- data/lib/javascriptmvc/funcunit/README +17 -0
- data/lib/javascriptmvc/funcunit/autosuggest/auto_suggest.js +495 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest.css +24 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest.html +26 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest.js +17 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest_test.js +14 -0
- data/lib/javascriptmvc/funcunit/autosuggest/funcunit.html +15 -0
- data/lib/javascriptmvc/funcunit/build.js +54 -0
- data/lib/javascriptmvc/funcunit/drivers/selenium.js +129 -0
- data/lib/javascriptmvc/funcunit/drivers/standard.js +169 -0
- data/lib/javascriptmvc/funcunit/envjs +13 -0
- data/lib/javascriptmvc/funcunit/envjs.bat +28 -0
- data/lib/javascriptmvc/funcunit/funcunit.html +20 -0
- data/lib/javascriptmvc/funcunit/funcunit.js +1509 -0
- data/lib/javascriptmvc/funcunit/java/selenium-java-client-driver.jar +0 -0
- data/lib/javascriptmvc/funcunit/java/selenium-server.jar +0 -0
- data/lib/javascriptmvc/funcunit/qunit.html +22 -0
- data/lib/javascriptmvc/funcunit/qunit/qunit.css +119 -0
- data/lib/javascriptmvc/funcunit/qunit/qunit.js +1124 -0
- data/lib/javascriptmvc/funcunit/qunit/rhino/rhino.js +24 -0
- data/lib/javascriptmvc/funcunit/qunit/test/qunit.html +18 -0
- data/lib/javascriptmvc/funcunit/qunit/test/test.js +7 -0
- data/lib/javascriptmvc/funcunit/resources/funcunit.js +31 -0
- data/lib/javascriptmvc/funcunit/resources/jquery.js +6378 -0
- data/lib/javascriptmvc/funcunit/resources/json.js +201 -0
- data/lib/javascriptmvc/funcunit/resources/selenium_start.js +43 -0
- data/lib/javascriptmvc/funcunit/scripts/run.js +36 -0
- data/lib/javascriptmvc/funcunit/scripts/test.js +55 -0
- data/lib/javascriptmvc/funcunit/settings.js +10 -0
- data/lib/javascriptmvc/funcunit/synthetic/browsers.js +151 -0
- data/lib/javascriptmvc/funcunit/synthetic/demo.html +150 -0
- data/lib/javascriptmvc/funcunit/synthetic/demo/record.js +254 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/drag.html +41 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/drag.js +268 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/qunit.html +20 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/test/qunit/drag_test.js +195 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/test/qunit/qunit.js +7 -0
- data/lib/javascriptmvc/funcunit/synthetic/key.js +832 -0
- data/lib/javascriptmvc/funcunit/synthetic/mouse.js +291 -0
- data/lib/javascriptmvc/funcunit/synthetic/qunit.html +22 -0
- data/lib/javascriptmvc/funcunit/synthetic/recorder.html +303 -0
- data/lib/javascriptmvc/funcunit/synthetic/synthetic.html +85 -0
- data/lib/javascriptmvc/funcunit/synthetic/synthetic.js +796 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/key_test.js +391 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/mouse_test.js +233 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/synthetic_test.js +91 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/submit.html +29 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/submitted.html +3 -0
- data/lib/javascriptmvc/funcunit/template.html +18 -0
- data/lib/javascriptmvc/funcunit/test/drag.html +63 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/funcunit_test.js +87 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/open_test.js +28 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/protodrag_test.js +13 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/syn_test.js +41 -0
- data/lib/javascriptmvc/funcunit/test/jquery.event.drag.js +801 -0
- data/lib/javascriptmvc/funcunit/test/jquery.event.drop.js +439 -0
- data/lib/javascriptmvc/funcunit/test/jquery.js +6360 -0
- data/lib/javascriptmvc/funcunit/test/myapp.html +103 -0
- data/lib/javascriptmvc/funcunit/test/myotherapp.html +15 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/dragdrop.js +974 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/effects.js +1123 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/funcunit_test.js +20 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/myapp.html +63 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/prototype.js +4874 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/scriptaculous.js +68 -0
- data/lib/javascriptmvc/funcunit/update +5 -0
- data/lib/javascriptmvc/jquery/README +24 -0
- data/lib/javascriptmvc/jquery/build.js +73 -0
- data/lib/javascriptmvc/jquery/class/class.html +109 -0
- data/lib/javascriptmvc/jquery/class/class.js +627 -0
- data/lib/javascriptmvc/jquery/class/qunit.html +15 -0
- data/lib/javascriptmvc/jquery/class/test/qunit/class_test.js +146 -0
- data/lib/javascriptmvc/jquery/class/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/class/test/qunit/test.html +20 -0
- data/lib/javascriptmvc/jquery/controller/controller.html +89 -0
- data/lib/javascriptmvc/jquery/controller/controller.js +735 -0
- data/lib/javascriptmvc/jquery/controller/history/history.html +44 -0
- data/lib/javascriptmvc/jquery/controller/history/history.js +177 -0
- data/lib/javascriptmvc/jquery/controller/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/scripts/docs.js +6 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/subscribe.html +56 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/subscribe.js +27 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/funcunit/subscribe_test.js +11 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/subscribe_test.js +4 -0
- data/lib/javascriptmvc/jquery/controller/test/qunit/controller_test.js +170 -0
- data/lib/javascriptmvc/jquery/controller/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/controller/view/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/view/test/qunit/controller_view_test.js +15 -0
- data/lib/javascriptmvc/jquery/controller/view/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/controller/view/test/qunit/views/init.micro +1 -0
- data/lib/javascriptmvc/jquery/controller/view/view.js +102 -0
- data/lib/javascriptmvc/jquery/dom/closest/closest.html +23 -0
- data/lib/javascriptmvc/jquery/dom/closest/closest.js +47 -0
- data/lib/javascriptmvc/jquery/dom/closest/funcunit.html +20 -0
- data/lib/javascriptmvc/jquery/dom/closest/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/closest/scripts/compress.js +3 -0
- data/lib/javascriptmvc/jquery/dom/closest/scripts/doc.js +4 -0
- data/lib/javascriptmvc/jquery/dom/closest/scripts/test.js +55 -0
- data/lib/javascriptmvc/jquery/dom/closest/settings.js +40 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/funcunit/tests/basic.js +11 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/qunit/tests/basic.js +4 -0
- data/lib/javascriptmvc/jquery/dom/compare/compare.html +88 -0
- data/lib/javascriptmvc/jquery/dom/compare/compare.js +67 -0
- data/lib/javascriptmvc/jquery/dom/compare/qunit.html +20 -0
- data/lib/javascriptmvc/jquery/dom/compare/test/qunit/compare_test.js +19 -0
- data/lib/javascriptmvc/jquery/dom/compare/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/dom/cookie/cookie.html +25 -0
- data/lib/javascriptmvc/jquery/dom/cookie/cookie.js +119 -0
- data/lib/javascriptmvc/jquery/dom/cookie/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/dom/cookie/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/cookie_test.js +11 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/cookie_test.js +4 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/cur_styles.html +71 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/cur_styles.js +120 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/curStyles.micro +3 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/cur_styles_test.js +22 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/outer.micro +0 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/curstyles.html +22 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/dimensions.html +132 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/dimensions.js +140 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/curStyles.micro +3 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/dimensions_test.js +8 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/outer.micro +0 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/dom.js +7 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixture.html +143 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixture.js +521 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixtures/messages.html +31 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixtures/test.json +3 -0
- data/lib/javascriptmvc/jquery/dom/fixture/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/fixture/test/qunit/fixture_test.js +50 -0
- data/lib/javascriptmvc/jquery/dom/fixture/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/form_params/form_params.html +57 -0
- data/lib/javascriptmvc/jquery/dom/form_params/form_params.js +106 -0
- data/lib/javascriptmvc/jquery/dom/form_params/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/basics.micro +27 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/checkbox.micro +20 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/form_params_test.js +43 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/truthy.micro +8 -0
- data/lib/javascriptmvc/jquery/dom/within/within.js +67 -0
- data/lib/javascriptmvc/jquery/error/background.png +0 -0
- data/lib/javascriptmvc/jquery/error/error.html +31 -0
- data/lib/javascriptmvc/jquery/error/error.js +227 -0
- data/lib/javascriptmvc/jquery/error/setup.js +4 -0
- data/lib/javascriptmvc/jquery/error/test/test.html +23 -0
- data/lib/javascriptmvc/jquery/error/test/test.js +4 -0
- data/lib/javascriptmvc/jquery/event/default/compress.js +7 -0
- data/lib/javascriptmvc/jquery/event/default/default.html +85 -0
- data/lib/javascriptmvc/jquery/event/default/default.js +193 -0
- data/lib/javascriptmvc/jquery/event/default/defaultjquery.html +117 -0
- data/lib/javascriptmvc/jquery/event/default/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/default_test.js +104 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/html.micro +8 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/event/destroyed/destroyed.html +24 -0
- data/lib/javascriptmvc/jquery/event/destroyed/destroyed.js +40 -0
- data/lib/javascriptmvc/jquery/event/destroyed/destroyed_menu.html +96 -0
- data/lib/javascriptmvc/jquery/event/destroyed/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/destroyed/test/qunit/destroyed_test.js +12 -0
- data/lib/javascriptmvc/jquery/event/destroyed/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/event/drag/drag.html +105 -0
- data/lib/javascriptmvc/jquery/event/drag/drag.js +466 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/limit.html +74 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/limit.js +56 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/limit_test.js +11 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/limit_test.js +4 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/event/drag/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/event/drag/scroll/scroll.js +120 -0
- data/lib/javascriptmvc/jquery/event/drag/test/qunit/drag_test.js +130 -0
- data/lib/javascriptmvc/jquery/event/drag/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/drop/drop.html +74 -0
- data/lib/javascriptmvc/jquery/event/drop/drop.js +301 -0
- data/lib/javascriptmvc/jquery/event/event.js +6 -0
- data/lib/javascriptmvc/jquery/event/hashchange/hashchange.js +245 -0
- data/lib/javascriptmvc/jquery/event/hover/compress.js +7 -0
- data/lib/javascriptmvc/jquery/event/hover/hover.html +56 -0
- data/lib/javascriptmvc/jquery/event/hover/hover.js +219 -0
- data/lib/javascriptmvc/jquery/event/hover/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/event/hover/test/qunit/hover_test.js +55 -0
- data/lib/javascriptmvc/jquery/event/hover/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/livehack/compress.js +7 -0
- data/lib/javascriptmvc/jquery/event/livehack/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/livehack/livehack.html +25 -0
- data/lib/javascriptmvc/jquery/event/livehack/livehack.js +167 -0
- data/lib/javascriptmvc/jquery/event/offline/funcunit.html +20 -0
- data/lib/javascriptmvc/jquery/event/offline/offline.html +26 -0
- data/lib/javascriptmvc/jquery/event/offline/offline.js +36 -0
- data/lib/javascriptmvc/jquery/event/offline/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/event/offline/scripts/compress.js +3 -0
- data/lib/javascriptmvc/jquery/event/offline/scripts/doc.js +4 -0
- data/lib/javascriptmvc/jquery/event/offline/settings.js +41 -0
- data/lib/javascriptmvc/jquery/event/offline/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/offline/test/funcunit/tests/basic.js +11 -0
- data/lib/javascriptmvc/jquery/event/offline/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/offline/test/qunit/tests/basic.js +4 -0
- data/lib/javascriptmvc/jquery/event/resize/funcunit.html +20 -0
- data/lib/javascriptmvc/jquery/event/resize/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/event/resize/resize.html +23 -0
- data/lib/javascriptmvc/jquery/event/resize/resize.js +50 -0
- data/lib/javascriptmvc/jquery/event/resize/scripts/compress.js +3 -0
- data/lib/javascriptmvc/jquery/event/resize/scripts/doc.js +4 -0
- data/lib/javascriptmvc/jquery/event/resize/scripts/test.js +55 -0
- data/lib/javascriptmvc/jquery/event/resize/settings.js +40 -0
- data/lib/javascriptmvc/jquery/event/resize/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/resize/test/funcunit/tests/basic.js +11 -0
- data/lib/javascriptmvc/jquery/event/resize/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/resize/test/qunit/tests/basic.js +4 -0
- data/lib/javascriptmvc/jquery/event/select/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/event/select/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/event/select/select.html +63 -0
- data/lib/javascriptmvc/jquery/event/select/select.js +65 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/select_test.js +11 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/select_test.js +4 -0
- data/lib/javascriptmvc/jquery/generate/app +23 -0
- data/lib/javascriptmvc/jquery/generate/controller +21 -0
- data/lib/javascriptmvc/jquery/generate/model +26 -0
- data/lib/javascriptmvc/jquery/generate/page +20 -0
- data/lib/javascriptmvc/jquery/generate/plugin +20 -0
- data/lib/javascriptmvc/jquery/generate/scaffold +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/(application_name).css.ejs +4 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/(application_name).html.ejs +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/(application_name).js.ejs +21 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/controllers/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/docs/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/fixtures/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/funcunit.html.ejs +15 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/models/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/qunit.html.ejs +20 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/resources/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/scripts/build.js.ejs +6 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/scripts/clean.js.ejs +6 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/scripts/docs.js.ejs +4 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/funcunit/(application_name)_test.js.ejs +9 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/funcunit/funcunit.js.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/qunit/(application_name)_test.js.ejs +5 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/qunit/qunit.js.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/views/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/controller/controllers/(underscore)_controller.js.ejs +12 -0
- data/lib/javascriptmvc/jquery/generate/templates/model/fixtures.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/model/models.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/model/test/qunit.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/page.ejs +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/(application_name).html.ejs +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/(application_name).js.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/fixtures/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/funcunit.html.ejs +15 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/qunit.html.ejs +20 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/resources/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/scripts.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/test.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/views/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/controllers/(underscore)_controller.js.ejs +96 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/fixtures/(plural).json.get.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/models/(underscore).js.ejs +83 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/test/funcunit/(underscore)_controller_test.js.ejs +63 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/test/qunit/(underscore)_test.js.ejs +45 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/edit.ejs.ejs +10 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/init.ejs.ejs +26 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/list.ejs.ejs +5 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/show.ejs.ejs +10 -0
- data/lib/javascriptmvc/jquery/jquery.js +6360 -0
- data/lib/javascriptmvc/jquery/lang/json/json.html +25 -0
- data/lib/javascriptmvc/jquery/lang/json/json.js +201 -0
- data/lib/javascriptmvc/jquery/lang/json/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/lang/json/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/json_test.js +11 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/json_test.js +4 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/lang/lang.html +27 -0
- data/lib/javascriptmvc/jquery/lang/lang.js +104 -0
- data/lib/javascriptmvc/jquery/lang/openajax/openajax.js +202 -0
- data/lib/javascriptmvc/jquery/lang/rsplit/rsplit.js +31 -0
- data/lib/javascriptmvc/jquery/lang/vector/vector.js +167 -0
- data/lib/javascriptmvc/jquery/model/associations/associations.html +25 -0
- data/lib/javascriptmvc/jquery/model/associations/associations.js +46 -0
- data/lib/javascriptmvc/jquery/model/associations/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/model/associations/test/qunit/associations_test.js +51 -0
- data/lib/javascriptmvc/jquery/model/associations/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/model/associations/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/model/backup/backup.js +82 -0
- data/lib/javascriptmvc/jquery/model/json_rest/json_rest.js +91 -0
- data/lib/javascriptmvc/jquery/model/list/list.js +148 -0
- data/lib/javascriptmvc/jquery/model/list/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/model/list/test/qunit/list_test.js +58 -0
- data/lib/javascriptmvc/jquery/model/list/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/model/list/test/qunit/run.js +0 -0
- data/lib/javascriptmvc/jquery/model/model.js +537 -0
- data/lib/javascriptmvc/jquery/model/qunit.html +17 -0
- data/lib/javascriptmvc/jquery/model/store/store.js +66 -0
- data/lib/javascriptmvc/jquery/model/test/qunit/model_test.js +71 -0
- data/lib/javascriptmvc/jquery/model/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/qunit.html +15 -0
- data/lib/javascriptmvc/jquery/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/test/funcunit/jquerytest_test.js +11 -0
- data/lib/javascriptmvc/jquery/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/test/qunit/qunit.js +22 -0
- data/lib/javascriptmvc/jquery/update +5 -0
- data/lib/javascriptmvc/jquery/view/compress.js +7 -0
- data/lib/javascriptmvc/jquery/view/ejs/ejs.html +25 -0
- data/lib/javascriptmvc/jquery/view/ejs/ejs.js +489 -0
- data/lib/javascriptmvc/jquery/view/ejs/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/funcunit/ejs_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/ejs_test.js +4 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/view/fulljslint.js +3774 -0
- data/lib/javascriptmvc/jquery/view/helpers/helpers.js +338 -0
- data/lib/javascriptmvc/jquery/view/jaml/compress.js +7 -0
- data/lib/javascriptmvc/jquery/view/jaml/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/jaml/jaml.html +25 -0
- data/lib/javascriptmvc/jquery/view/jaml/jaml.js +73 -0
- data/lib/javascriptmvc/jquery/view/jaml/node.js +149 -0
- data/lib/javascriptmvc/jquery/view/jaml/template.js +131 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/funcunit/jaml_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/jaml_test.js +4 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/view/micro/compress.js +7 -0
- data/lib/javascriptmvc/jquery/view/micro/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/micro/micro.html +25 -0
- data/lib/javascriptmvc/jquery/view/micro/micro.js +57 -0
- data/lib/javascriptmvc/jquery/view/micro/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/micro/test/funcunit/micro_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/micro/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/micro_test.js +4 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/view/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/view/test/compression/compression.html +12 -0
- data/lib/javascriptmvc/jquery/view/test/compression/compression.js +11 -0
- data/lib/javascriptmvc/jquery/view/test/compression/run.js +36 -0
- data/lib/javascriptmvc/jquery/view/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/test/funcunit/view_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/nested_plugin.ejs +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/plugin.ejs +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.ejs +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.jaml +3 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.micro +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.tmpl +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/view_test.js +24 -0
- data/lib/javascriptmvc/jquery/view/tmpl/tmpl.js +150 -0
- data/lib/javascriptmvc/jquery/view/view.html +65 -0
- data/lib/javascriptmvc/jquery/view/view.js +296 -0
- data/lib/javascriptmvc/js +56 -0
- data/lib/javascriptmvc/js.bat +57 -0
- data/lib/javascriptmvc/steal/README +26 -0
- data/lib/javascriptmvc/steal/build/apps/apps.js +208 -0
- data/lib/javascriptmvc/steal/build/apps/test.js +4 -0
- data/lib/javascriptmvc/steal/build/build.js +281 -0
- data/lib/javascriptmvc/steal/build/pluginify.js +73 -0
- data/lib/javascriptmvc/steal/build/scripts/compiler.jar +0 -0
- data/lib/javascriptmvc/steal/build/scripts/scripts.js +155 -0
- data/lib/javascriptmvc/steal/build/styles/cssmin.js +17 -0
- data/lib/javascriptmvc/steal/build/styles/styles.js +84 -0
- data/lib/javascriptmvc/steal/build/test/basicpage.html +6 -0
- data/lib/javascriptmvc/steal/build/test/basicproduction.js +1 -0
- data/lib/javascriptmvc/steal/build/test/basicsource.js +6 -0
- data/lib/javascriptmvc/steal/build/test/css/css/css1.css +1 -0
- data/lib/javascriptmvc/steal/build/test/css/css/justin.png +0 -0
- data/lib/javascriptmvc/steal/build/test/css/css2.css +5 -0
- data/lib/javascriptmvc/steal/build/test/css/page.html +9 -0
- data/lib/javascriptmvc/steal/build/test/css/production.css +1 -0
- data/lib/javascriptmvc/steal/build/test/css/test.js +7 -0
- data/lib/javascriptmvc/steal/build/test/css/upload.PNG +0 -0
- data/lib/javascriptmvc/steal/build/test/foreign.html +6 -0
- data/lib/javascriptmvc/steal/build/test/foreign.js +2 -0
- data/lib/javascriptmvc/steal/build/test/removecode.js +11 -0
- data/lib/javascriptmvc/steal/build/test/run.js +57 -0
- data/lib/javascriptmvc/steal/build/test/stealpage.html +10 -0
- data/lib/javascriptmvc/steal/build/test/stealprodpage.html +10 -0
- data/lib/javascriptmvc/steal/build/test/test.js +3 -0
- data/lib/javascriptmvc/steal/buildjs +21 -0
- data/lib/javascriptmvc/steal/clean/beautify.js +1108 -0
- data/lib/javascriptmvc/steal/clean/clean.js +179 -0
- data/lib/javascriptmvc/steal/clean/jslint.js +5662 -0
- data/lib/javascriptmvc/steal/clean/test.js +7 -0
- data/lib/javascriptmvc/steal/cleanjs +5 -0
- data/lib/javascriptmvc/steal/coffee/coffee-script.js +9 -0
- data/lib/javascriptmvc/steal/coffee/coffee.js +56 -0
- data/lib/javascriptmvc/steal/dev/dev.js +83 -0
- data/lib/javascriptmvc/steal/end.js +1 -0
- data/lib/javascriptmvc/steal/generate/app +23 -0
- data/lib/javascriptmvc/steal/generate/ejs.js +470 -0
- data/lib/javascriptmvc/steal/generate/generate.js +211 -0
- data/lib/javascriptmvc/steal/generate/inflector.js +117 -0
- data/lib/javascriptmvc/steal/generate/system.js +33 -0
- data/lib/javascriptmvc/steal/generate/templates/app/(application_name).css.ejs +10 -0
- data/lib/javascriptmvc/steal/generate/templates/app/(application_name).html.ejs +18 -0
- data/lib/javascriptmvc/steal/generate/templates/app/(application_name).js.ejs +10 -0
- data/lib/javascriptmvc/steal/generate/templates/app/docs/.ignore +0 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/.ignore +0 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/example.coffee.ejs +5 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/example.js.ejs +13 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/example.less.ejs +9 -0
- data/lib/javascriptmvc/steal/generate/templates/app/scripts/build.js.ejs +6 -0
- data/lib/javascriptmvc/steal/generate/templates/app/scripts/clean.js.ejs +6 -0
- data/lib/javascriptmvc/steal/generate/templates/app/test/.ignore +0 -0
- data/lib/javascriptmvc/steal/generate/templates/page.ejs +23 -0
- data/lib/javascriptmvc/steal/generate/test/test.js +92 -0
- data/lib/javascriptmvc/steal/get/get.js +163 -0
- data/lib/javascriptmvc/steal/get/gets.json +10 -0
- data/lib/javascriptmvc/steal/get/getter.js +115 -0
- data/lib/javascriptmvc/steal/get/github.js +134 -0
- data/lib/javascriptmvc/steal/get/json.js +172 -0
- data/lib/javascriptmvc/steal/getjs +5 -0
- data/lib/javascriptmvc/steal/js +56 -0
- data/lib/javascriptmvc/steal/js.bat +57 -0
- data/lib/javascriptmvc/steal/less/less.js +117 -0
- data/lib/javascriptmvc/steal/less/less_engine.js +2529 -0
- data/lib/javascriptmvc/steal/rhino/blank.html +6 -0
- data/lib/javascriptmvc/steal/rhino/build.js +31 -0
- data/lib/javascriptmvc/steal/rhino/docs.js +68 -0
- data/lib/javascriptmvc/steal/rhino/empty.html +12 -0
- data/lib/javascriptmvc/steal/rhino/env.js +11537 -0
- data/lib/javascriptmvc/steal/rhino/file.js +299 -0
- data/lib/javascriptmvc/steal/rhino/js.jar +0 -0
- data/lib/javascriptmvc/steal/rhino/loader.js +8 -0
- data/lib/javascriptmvc/steal/rhino/prompt.js +49 -0
- data/lib/javascriptmvc/steal/rhino/steal.js +122 -0
- data/lib/javascriptmvc/steal/rhino/test.js +16 -0
- data/lib/javascriptmvc/steal/steal.js +1317 -0
- data/lib/javascriptmvc/steal/steal.production.js +23 -0
- data/lib/javascriptmvc/steal/test/absoluteurl.html +7 -0
- data/lib/javascriptmvc/steal/test/absoluteurl/absoluteurl.js +1 -0
- data/lib/javascriptmvc/steal/test/absoluteurl/alert.js +1 -0
- data/lib/javascriptmvc/steal/test/another/two.js +2 -0
- data/lib/javascriptmvc/steal/test/one/four.js +1 -0
- data/lib/javascriptmvc/steal/test/one/one.js +6 -0
- data/lib/javascriptmvc/steal/test/qunit/qunit.html +22 -0
- data/lib/javascriptmvc/steal/test/qunit/qunit.js +3 -0
- data/lib/javascriptmvc/steal/test/qunit/steal_test.js +197 -0
- data/lib/javascriptmvc/steal/test/run.js +12 -0
- data/lib/javascriptmvc/steal/test/steal.html +37 -0
- data/lib/javascriptmvc/steal/test/test.js +82 -0
- data/lib/javascriptmvc/steal/test/three.js +3 -0
- data/lib/javascriptmvc/steal/testing/test.html +20 -0
- data/lib/javascriptmvc/steal/testing/testing.js +48 -0
- data/lib/javascriptmvc/steal/update +5 -0
- metadata +622 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
if ( window.jQuery && jQuery.Controller ) {
|
|
2
|
+
steal.plugins("jquery/controller/view")
|
|
3
|
+
}
|
|
4
|
+
steal.plugins("jquery").then(function( $ ) {
|
|
5
|
+
|
|
6
|
+
// converts to an ok dom id
|
|
7
|
+
var toId = function( src ) {
|
|
8
|
+
return src.replace(/^\/\//, "").replace(/[\/\.]/g, "_")
|
|
9
|
+
},
|
|
10
|
+
// used for hookup ids
|
|
11
|
+
id = 1;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @constructor jQuery.View
|
|
15
|
+
* @tag core
|
|
16
|
+
* View provides a uniform interface for using templates in JavaScriptMVC. When templates
|
|
17
|
+
* [jQuery.View.static.register register] themselves, you are able to:
|
|
18
|
+
* <ul>
|
|
19
|
+
*
|
|
20
|
+
* <li>Use views with jQuery extensions [jQuery.fn.after after], [jQuery.fn.append append],
|
|
21
|
+
* [jQuery.fn.before before], [jQuery.fn.html html], [jQuery.fn.prepend prepend],
|
|
22
|
+
* [jQuery.fn.replace replace], [jQuery.fn.text text] like:
|
|
23
|
+
* @codestart
|
|
24
|
+
* $('.foo').html("//path/to/view.ejs",{})
|
|
25
|
+
* @codeend
|
|
26
|
+
* </li>
|
|
27
|
+
* <li>Compress your views with [steal.static.views].</li>
|
|
28
|
+
* <li>Use the [jQuery.Controller.prototype.view controller/view] plugin to auto-magically
|
|
29
|
+
* lookup views.</li>
|
|
30
|
+
* <li>Hookup Controllers and other code on elements after render.</li>
|
|
31
|
+
*
|
|
32
|
+
* </ul>
|
|
33
|
+
*
|
|
34
|
+
* <h2>Supported Templates</h2>
|
|
35
|
+
* <ul>
|
|
36
|
+
* <li>[jQuery.View.EJS EJS] - provides an ERB like syntax: <code><%= %></code></li>
|
|
37
|
+
* <li>[Jaml] - A functional approach to JS templates.</li>
|
|
38
|
+
* <li>[Micro] - A very lightweight template similar to EJS.</li>
|
|
39
|
+
* </ul>
|
|
40
|
+
* @iframe jquery/view/view.html 700
|
|
41
|
+
*
|
|
42
|
+
*
|
|
43
|
+
* <h2>Compress Views with Steal</h2>
|
|
44
|
+
* Steal can package processed views in the production file. Because 'stolen' views are already
|
|
45
|
+
* processed, they don't rely on eval. Here's how to steal them:
|
|
46
|
+
* @codestart
|
|
47
|
+
* steal.views('//views/tasks/show.ejs');
|
|
48
|
+
* @codeend
|
|
49
|
+
* Read more about [steal.static.views steal.views].
|
|
50
|
+
* <h2>Hooking up controllers</h2>
|
|
51
|
+
* After drawing some html, you often want to add other widgets and plugins inside that html.
|
|
52
|
+
* View makes this easy. You just have to return the Contoller class you want to be hooked up.
|
|
53
|
+
* @codestart
|
|
54
|
+
* <ul <%= Phui.Tabs%>>...<ul>
|
|
55
|
+
* @codeend
|
|
56
|
+
* You can even hook up multiple controllers:
|
|
57
|
+
* @codestart
|
|
58
|
+
* <ul <%= [Phui.Tabs, Phui.Filler]%>>...<ul>
|
|
59
|
+
* @codeend
|
|
60
|
+
* @init Looks up a template, processes it, caches it, then renders the template
|
|
61
|
+
* with data and optional helpers.
|
|
62
|
+
* @codestart
|
|
63
|
+
* $.View("//myplugin/views/init.ejs",{message: "Hello World"})
|
|
64
|
+
* @codeend
|
|
65
|
+
* @param {String} url The url or id of an element to use as the template's source.
|
|
66
|
+
* @param {Object} data The data to be passed to the view.
|
|
67
|
+
* @param {Object} [helpers] Optional helper functions the view might use.
|
|
68
|
+
* @return {String} The rendered result of the view.
|
|
69
|
+
*/
|
|
70
|
+
$.View = function( url, data, helpers ) {
|
|
71
|
+
var suffix = url.match(/\.[\w\d]+$/),
|
|
72
|
+
type, el, url, id, renderer;
|
|
73
|
+
|
|
74
|
+
//if there is no suffix, add one
|
|
75
|
+
if (!suffix ) {
|
|
76
|
+
suffix = $.View.ext;
|
|
77
|
+
url = url + $.View.ext
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//convert to a unique and valid id
|
|
81
|
+
id = toId(url);
|
|
82
|
+
|
|
83
|
+
//if a absolute path, use steal to get it
|
|
84
|
+
if ( url.match(/^\/\//) ) {
|
|
85
|
+
url = steal.root.join(url.substr(2)); //can steal be removed?
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//get the template engine
|
|
89
|
+
type = $.View.types[suffix];
|
|
90
|
+
|
|
91
|
+
//get the renderer function
|
|
92
|
+
var renderer =
|
|
93
|
+
$.View.cached[id] ? // is it cached?
|
|
94
|
+
$.View.cached[id] : // use the cached version
|
|
95
|
+
((el = document.getElementById(id)) ? //is it in the document?
|
|
96
|
+
type.renderer(id, el.innerHTML) : //use the innerHTML of the elemnt
|
|
97
|
+
type.get(id, url) //do an ajax request for it
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
//if we should cache templates
|
|
101
|
+
if ( $.View.cache ) {
|
|
102
|
+
$.View.cached[id] = renderer;
|
|
103
|
+
}
|
|
104
|
+
return renderer.call(type, data, helpers)
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/* @Static */
|
|
108
|
+
$.extend($.View, {
|
|
109
|
+
/**
|
|
110
|
+
* @attribute hookups
|
|
111
|
+
* @hide
|
|
112
|
+
* A list of pending 'hookups'
|
|
113
|
+
*/
|
|
114
|
+
hookups: {},
|
|
115
|
+
/**
|
|
116
|
+
* @function hookup
|
|
117
|
+
* Registers a hookup function to be called back after the html is put on the page
|
|
118
|
+
* @param {Function} cb a callback function to be called with the element
|
|
119
|
+
* @param {Number} the hookup number
|
|
120
|
+
*/
|
|
121
|
+
hookup: function( cb ) {
|
|
122
|
+
var myid = ++id;
|
|
123
|
+
jQuery.View.hookups[myid] = cb;
|
|
124
|
+
return myid;
|
|
125
|
+
},
|
|
126
|
+
/**
|
|
127
|
+
* @attribute cached
|
|
128
|
+
* @hide
|
|
129
|
+
* Cached are put in this object
|
|
130
|
+
*/
|
|
131
|
+
cached: {},
|
|
132
|
+
/**
|
|
133
|
+
* @attribute cache
|
|
134
|
+
* Should the views be cached or reloaded from the server. Defaults to true.
|
|
135
|
+
*/
|
|
136
|
+
cache: true,
|
|
137
|
+
/**
|
|
138
|
+
* @function register
|
|
139
|
+
* Registers a template engine to be used with view helpers and compression.
|
|
140
|
+
* @param {Object} info a object of method and properties that enable template integration:
|
|
141
|
+
* <ul>
|
|
142
|
+
* <li>suffix - the view extension. EX: 'ejs'</li>
|
|
143
|
+
* <li>get(id, url) - a function that returns the 'render' function of processed template. <b>get</b>
|
|
144
|
+
* function is called with an id for the template and the url where the view can be loaded.
|
|
145
|
+
* The returned function's signiture should look like:
|
|
146
|
+
* <pre>renderer(data, helpers)</pre>
|
|
147
|
+
* </li>
|
|
148
|
+
* <li>script(id, src) - a function that returns a string that when evaluated returns a function that can be
|
|
149
|
+
* used as the render (i.e. have func.call(data, data, helpers) called on it).</li>
|
|
150
|
+
* <li>renderer(id, text) - a function that takes the id of the template and the text of the template and
|
|
151
|
+
* returns a render function.</li>
|
|
152
|
+
* </ul>
|
|
153
|
+
*/
|
|
154
|
+
register: function( info ) {
|
|
155
|
+
this.types["." + info.suffix] = info;
|
|
156
|
+
},
|
|
157
|
+
types: {},
|
|
158
|
+
/**
|
|
159
|
+
* @attribute ext
|
|
160
|
+
* The default suffix to use if none is provided in the view's url.
|
|
161
|
+
* This is set to .ejs by default.
|
|
162
|
+
*/
|
|
163
|
+
ext: ".ejs",
|
|
164
|
+
/**
|
|
165
|
+
* @hide
|
|
166
|
+
* @param {Object} type
|
|
167
|
+
* @param {Object} id
|
|
168
|
+
* @param {Object} src
|
|
169
|
+
*/
|
|
170
|
+
registerScript: function( type, id, src ) {
|
|
171
|
+
return "$.View.preload('" + id + "'," + $.View.types["." + type].script(id, src) + ");";
|
|
172
|
+
},
|
|
173
|
+
/**
|
|
174
|
+
* @hide
|
|
175
|
+
* Called by a production script to pre-load a renderer function
|
|
176
|
+
* into the view cache.
|
|
177
|
+
* @param {String} id
|
|
178
|
+
* @param {Function} renderer
|
|
179
|
+
*/
|
|
180
|
+
preload: function( id, renderer ) {
|
|
181
|
+
$.View.cached[id] = function( data, helpers ) {
|
|
182
|
+
return renderer.call(data, data, helpers)
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
})
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
//---- ADD jQUERY HELPERS -----
|
|
190
|
+
var
|
|
191
|
+
//converts jquery functions to use views
|
|
192
|
+
convert = function( func_name ) {
|
|
193
|
+
var old = jQuery.fn[func_name];
|
|
194
|
+
|
|
195
|
+
jQuery.fn[func_name] = function() {
|
|
196
|
+
var args = arguments,
|
|
197
|
+
res, hasHookup, secArgType = typeof arguments[1];
|
|
198
|
+
|
|
199
|
+
//check if a template
|
|
200
|
+
if ( typeof arguments[0] == "string" && (secArgType == 'object' || secArgType == 'function') && !arguments[1].nodeType && !arguments[1].jquery ) {
|
|
201
|
+
args = [$.View.apply($.View, $.makeArray(arguments))];
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
//check if there are new hookups
|
|
205
|
+
for ( var hasHookups in jQuery.View.hookups ) {};
|
|
206
|
+
|
|
207
|
+
//if there are hookups, get jQuery object
|
|
208
|
+
if ( hasHookups ) {
|
|
209
|
+
args[0] = $(args[0])
|
|
210
|
+
}
|
|
211
|
+
res = old.apply(this, args)
|
|
212
|
+
|
|
213
|
+
//now hookup hookups
|
|
214
|
+
if ( hasHookups ) {
|
|
215
|
+
hookupView(args[0])
|
|
216
|
+
}
|
|
217
|
+
return res;
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
hookupView = function( els ) {
|
|
221
|
+
//remove all hookups
|
|
222
|
+
var hooks = jQuery.View.hookups,
|
|
223
|
+
hookupEls, len, i = 0,
|
|
224
|
+
id, func;
|
|
225
|
+
jQuery.View.hookups = {};
|
|
226
|
+
hookupEls = els.add("[data-view-id]", els);
|
|
227
|
+
len = hookupEls.length;
|
|
228
|
+
for (; i < len; i++ ) {
|
|
229
|
+
if ( hookupEls[i].getAttribute && (id = hookupEls[i].getAttribute('data-view-id')) && (func = hooks[id]) ) {
|
|
230
|
+
func(hookupEls[i], id);
|
|
231
|
+
delete hooks[id];
|
|
232
|
+
hookupEls[i].removeAttribute('data-view-id')
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
//copy remaining hooks back
|
|
236
|
+
$.extend(jQuery.View.hookups, hooks);
|
|
237
|
+
},
|
|
238
|
+
/**
|
|
239
|
+
* @add jQuery.fn
|
|
240
|
+
*/
|
|
241
|
+
funcs = [
|
|
242
|
+
/**
|
|
243
|
+
* @function prepend
|
|
244
|
+
* @tag view
|
|
245
|
+
* abc
|
|
246
|
+
*/
|
|
247
|
+
"prepend",
|
|
248
|
+
/**
|
|
249
|
+
* @function append
|
|
250
|
+
* @tag view
|
|
251
|
+
* abc
|
|
252
|
+
*/
|
|
253
|
+
"append",
|
|
254
|
+
/**
|
|
255
|
+
* @function after
|
|
256
|
+
* @tag view
|
|
257
|
+
* abc
|
|
258
|
+
*/
|
|
259
|
+
"after",
|
|
260
|
+
/**
|
|
261
|
+
* @function before
|
|
262
|
+
* @tag view
|
|
263
|
+
* abc
|
|
264
|
+
*/
|
|
265
|
+
"before",
|
|
266
|
+
/**
|
|
267
|
+
* @function replace
|
|
268
|
+
* @tag view
|
|
269
|
+
* abc
|
|
270
|
+
*/
|
|
271
|
+
"replace",
|
|
272
|
+
/**
|
|
273
|
+
* @function text
|
|
274
|
+
* @tag view
|
|
275
|
+
* abc
|
|
276
|
+
*/
|
|
277
|
+
"text",
|
|
278
|
+
/**
|
|
279
|
+
* @function html
|
|
280
|
+
* @tag view
|
|
281
|
+
* abc
|
|
282
|
+
*/
|
|
283
|
+
"html",
|
|
284
|
+
/**
|
|
285
|
+
* @function replaceWith
|
|
286
|
+
* @tag view
|
|
287
|
+
* abc
|
|
288
|
+
*/
|
|
289
|
+
"replaceWith"];
|
|
290
|
+
|
|
291
|
+
//go through helper funcs and convert
|
|
292
|
+
for ( var i = 0; i < funcs.length; i++ ) {
|
|
293
|
+
convert(funcs[i]);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
})
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# This script checks for arguments, if they don't exist it opens the Rhino dialog
|
|
3
|
+
# if arguments do exist, it loads the script in the first argument and passes the other arguments to the script
|
|
4
|
+
# ie: ./js steal/script/controller Todo
|
|
5
|
+
|
|
6
|
+
if [ $# -eq 0 ]
|
|
7
|
+
then
|
|
8
|
+
java -cp steal/rhino/js.jar:funcunit/dist/selenium/selenium/selenium-java-client-driver.jar org.mozilla.javascript.tools.shell.Main
|
|
9
|
+
exit 127
|
|
10
|
+
fi
|
|
11
|
+
if [ $1 = "-selenium" ]
|
|
12
|
+
then
|
|
13
|
+
java -jar funcunit/dist/selenium/selenium/selenium-server.jar
|
|
14
|
+
exit 127
|
|
15
|
+
fi
|
|
16
|
+
CP=funcunit/dist/selenium/selenium/selenium-java-client-driver.jar:steal/rhino/js.jar
|
|
17
|
+
if [ $1 = "-mail" ]
|
|
18
|
+
then
|
|
19
|
+
CP=steal/rhino/mail.jar:funcunit/dist/selenium/selenium/selenium-java-client-driver.jar:steal/rhino/js.jar
|
|
20
|
+
shift
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
if [ $1 = "-h" -o $1 = "-?" -o $1 = "--help" ]
|
|
24
|
+
then
|
|
25
|
+
echo Load a command line Rhino JavaScript environment or run JavaScript script files in Rhino.
|
|
26
|
+
echo Available commands:
|
|
27
|
+
echo -e "./js\t\t\t\tOpens a command line JavaScript environment"
|
|
28
|
+
echo -e "./js -d\t\t\t\tOpens the Rhino debugger"
|
|
29
|
+
echo -e "./js [FILE]\t\t\tRuns FILE in the Rhino environment"
|
|
30
|
+
echo -e ""
|
|
31
|
+
echo -e "JavaScriptMVC script usage:"
|
|
32
|
+
echo -e "./js steal/generate/app [NAME]\t\tCreates a new JavaScriptMVC application"
|
|
33
|
+
echo -e "./js steal/generate/page [APP] [PAGE]\tGenerates a page for the application"
|
|
34
|
+
echo -e "./js steal/generate/controller [NAME]\tGenerates a Controller file"
|
|
35
|
+
echo -e "./js steal/generate/model [TYPE] [NAME]\tGenerates a Model file"
|
|
36
|
+
echo -e "./js apps/[NAME]/compress.js\t\tCompress your application and generate documentation"
|
|
37
|
+
exit 127
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if [ $1 = "-d" ]
|
|
42
|
+
then
|
|
43
|
+
java -classpath steal/rhino/js.jar:steal/rhino/selenium-java-client-driver.jar org.mozilla.javascript.tools.debugger.Main
|
|
44
|
+
exit 127
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
ARGS=[
|
|
48
|
+
for arg
|
|
49
|
+
do
|
|
50
|
+
if [ $arg != $1 ]
|
|
51
|
+
then
|
|
52
|
+
ARGS=$ARGS"'$arg'",
|
|
53
|
+
fi
|
|
54
|
+
done
|
|
55
|
+
ARGS=$ARGS]
|
|
56
|
+
java -Xss1024k -cp $CP org.mozilla.javascript.tools.shell.Main -e _args=$ARGS -opt -1 -e 'load('"'"$1"'"')'
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
:: This script checks for arguments, if they don't exist it opens the Rhino dialog
|
|
2
|
+
:: if arguments do exist, it loads the script in the first argument and passes the other arguments to the script
|
|
3
|
+
:: ie: js jmvc\script\controller Todo
|
|
4
|
+
@echo off
|
|
5
|
+
SETLOCAL ENABLEDELAYEDEXPANSION
|
|
6
|
+
if "%1"=="" (
|
|
7
|
+
java -cp steal\rhino\js.jar org.mozilla.javascript.tools.shell.Main
|
|
8
|
+
GOTO END
|
|
9
|
+
)
|
|
10
|
+
if "%1"=="-h" GOTO PRINT_HELP
|
|
11
|
+
if "%1"=="-?" GOTO PRINT_HELP
|
|
12
|
+
if "%1"=="--help" GOTO PRINT_HELP
|
|
13
|
+
|
|
14
|
+
if "%1"=="-d" (
|
|
15
|
+
java -classpath funcunit/dist/selenium/selenium/selenium-java-client-driver.jar;steal/rhino/js.jar org.mozilla.javascript.tools.debugger.Main
|
|
16
|
+
GOTO END
|
|
17
|
+
)
|
|
18
|
+
if "%1"=="-selenium" (
|
|
19
|
+
java -jar funcunit\java\selenium-server.jar
|
|
20
|
+
GOTO END
|
|
21
|
+
)
|
|
22
|
+
SET CP=funcunit/dist/selenium/selenium/selenium-java-client-driver.jar;steal\rhino\js.jar
|
|
23
|
+
if "%1"=="-mail" (
|
|
24
|
+
SET CP=steal/rhino/mail.jar;funcunit/dist/selenium/selenium/selenium-java-client-driver.jar;steal\rhino\js.jar
|
|
25
|
+
SHIFT /0
|
|
26
|
+
)
|
|
27
|
+
SET ARGS=[
|
|
28
|
+
SET FILENAME=%1
|
|
29
|
+
SET FILENAME=%FILENAME:\=/%
|
|
30
|
+
::haven't seen any way to loop through all args yet, so for now this goes through arg 2-7
|
|
31
|
+
for /f "tokens=2,3,4,5,6,7 delims= " %%a in ("%*") do SET ARGS=!ARGS!'%%a','%%b','%%c','%%d','%%e','%%f'
|
|
32
|
+
::remove the commas
|
|
33
|
+
for %%a in (",''=") do ( call set ARGS=%%ARGS:%%~a%% )
|
|
34
|
+
::remove the spaces
|
|
35
|
+
for /f "tokens=1*" %%A in ("%ARGS%") do SET ARGS=%%A
|
|
36
|
+
SET ARGS=%ARGS%]
|
|
37
|
+
set ARGS=%ARGS:\=/%
|
|
38
|
+
java -Xss1024k -cp %CP% org.mozilla.javascript.tools.shell.Main -opt -1 -e _args=%ARGS% -e load('%FILENAME%')
|
|
39
|
+
|
|
40
|
+
GOTO END
|
|
41
|
+
|
|
42
|
+
:PRINT_HELP
|
|
43
|
+
echo Load a command line Rhino JavaScript environment or run JavaScript script files in Rhino.
|
|
44
|
+
echo Available commands:
|
|
45
|
+
echo js Opens a command line JavaScript environment
|
|
46
|
+
echo js -d Opens the Rhino debugger
|
|
47
|
+
echo js -selenium Starts selenium server
|
|
48
|
+
echo js [FILE] Runs FILE in the Rhino environment
|
|
49
|
+
|
|
50
|
+
echo JavaScriptMVC script usage:
|
|
51
|
+
echo js steal/generate/app [NAME] Creates a new JavaScriptMVC application
|
|
52
|
+
echo js steal/generate/page [APP] [PAGE] Generates a page for the application
|
|
53
|
+
echo js steal/generate/controller [NAME] Generates a Controller file
|
|
54
|
+
echo js steal/generate/model [TYPE] [NAME] Generates a Model file
|
|
55
|
+
echo js apps/[NAME]/compress.js Compress your application and generate documentation
|
|
56
|
+
|
|
57
|
+
:END
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
TOC:
|
|
2
|
+
A. How to get (and contribute) to JMVC
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
A. How to get (and contribute) JMVC
|
|
6
|
+
|
|
7
|
+
1. Start a new project in git.
|
|
8
|
+
|
|
9
|
+
2. Fork ....
|
|
10
|
+
http://github.com/jupiterjs/steal and
|
|
11
|
+
http://github.com/jupiterjs/javascriptmvc
|
|
12
|
+
|
|
13
|
+
3. Add steal, javascriptmvc, funcunit, and documentjs as submodules of your project...
|
|
14
|
+
git submodule add git@github.com:_YOU_/steal.git steal
|
|
15
|
+
git submodule add git@github.com:_YOU_/javascriptmvc.git jquery
|
|
16
|
+
git submodule add git@github.com:_YOU_/funcunit.git funcunit
|
|
17
|
+
git submodule add git@github.com:_YOU_/documentjs.git documentjs
|
|
18
|
+
|
|
19
|
+
* Notice javascriptmvc is under the jquery folder
|
|
20
|
+
|
|
21
|
+
4. Learn a little more about submodules ...
|
|
22
|
+
http://johnleach.co.uk/words/archives/2008/10/12/323/git-submodules-in-n-easy-steps
|
|
23
|
+
|
|
24
|
+
5. Make changes in steal or jmvc, and push them back to your fork.
|
|
25
|
+
|
|
26
|
+
6. Make a pull request to your fork.
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
steal(function( steal ) {
|
|
2
|
+
|
|
3
|
+
// recursively goes through steals and their dependencies.
|
|
4
|
+
var addDependencies = function( steel, files, app ) {
|
|
5
|
+
//add self to files
|
|
6
|
+
if ( !files[steel.path] ) {
|
|
7
|
+
|
|
8
|
+
var source = readFile(steel.path);
|
|
9
|
+
if ( steel.type && steal.build.types[steel.type] ) {
|
|
10
|
+
|
|
11
|
+
source = steal.build.types[steel.type]({
|
|
12
|
+
text: source,
|
|
13
|
+
id: steal.cleanId(steel.path)
|
|
14
|
+
});
|
|
15
|
+
print(" converting " + steel.path + " ");
|
|
16
|
+
} else {
|
|
17
|
+
print(" compressing " + steel.path + " ");
|
|
18
|
+
|
|
19
|
+
}
|
|
20
|
+
source = steal.build.builders.scripts.clean(source);
|
|
21
|
+
source = "" + steal.build.compressor(source, true);
|
|
22
|
+
//need to convert to other types.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
files[steel.path] = {
|
|
26
|
+
path: steel.path,
|
|
27
|
+
apps: [],
|
|
28
|
+
dependencies: {},
|
|
29
|
+
size: source.length,
|
|
30
|
+
packaged: false,
|
|
31
|
+
source: source
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var data = files[steel.path];
|
|
36
|
+
|
|
37
|
+
data.apps.push(app);
|
|
38
|
+
for ( var d = 0; d < steel.dependencies.length; d++ ) {
|
|
39
|
+
var dependency = steel.dependencies[d];
|
|
40
|
+
if ( dependency.dependencies ) { //this dependency was actually loaded
|
|
41
|
+
data.dependencies[dependency.path] = addDependencies(dependency, files, app);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return data;
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* Adds an order to a directed acyclic graph
|
|
48
|
+
* @param {Object} appFiles
|
|
49
|
+
*/
|
|
50
|
+
orderFiles = function( appFiles ) {
|
|
51
|
+
var order = 0
|
|
52
|
+
|
|
53
|
+
function visit(f) {
|
|
54
|
+
if ( f.order === undefined ) {
|
|
55
|
+
for ( var name in f.dependencies ) {
|
|
56
|
+
visit(f.dependencies[name])
|
|
57
|
+
}
|
|
58
|
+
f.order = (order++);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
for ( var d = 0; d < appFiles.length; d++ ) {
|
|
62
|
+
visit(appFiles[d])
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
getMostShared = function( files ) {
|
|
66
|
+
var shared = []; // count
|
|
67
|
+
|
|
68
|
+
for ( var fileName in files ) {
|
|
69
|
+
var file = files[fileName];
|
|
70
|
+
if ( file.packaged ) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (!shared[file.apps.length] ) {
|
|
74
|
+
shared[file.apps.length] = {};
|
|
75
|
+
}
|
|
76
|
+
var level = shared[file.apps.length]; //how many apps it is shared in (5?)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
var appsName = file.apps.sort().join();
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
if (!level[appsName] ) {
|
|
84
|
+
level[appsName] = {
|
|
85
|
+
totalSize: 0,
|
|
86
|
+
files: [],
|
|
87
|
+
apps: file.apps
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//add file, the count is how many files are shared among this many apps
|
|
91
|
+
level[appsName].files.push(file);
|
|
92
|
+
level[appsName].totalSize += file.size;
|
|
93
|
+
}
|
|
94
|
+
if (!shared.length ) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
//get the most
|
|
98
|
+
var mostShared = shared.pop(),
|
|
99
|
+
mostSize = 0,
|
|
100
|
+
most;
|
|
101
|
+
for ( var apps in mostShared ) {
|
|
102
|
+
if ( mostShared[apps].totalSize > mostSize ) {
|
|
103
|
+
most = mostShared[apps];
|
|
104
|
+
mostSize = most.totalSize;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//mark files
|
|
108
|
+
|
|
109
|
+
for ( var i = 0; i < most.files.length; i++ ) {
|
|
110
|
+
var f = most.files[i];
|
|
111
|
+
f.packaged = true;
|
|
112
|
+
}
|
|
113
|
+
return most;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
steal.build.apps = function( list, options ) {
|
|
118
|
+
options = steal.opts(options || {}, {
|
|
119
|
+
//compress everything, regardless of what you find
|
|
120
|
+
depth: 1,
|
|
121
|
+
//folder to build to, defaults to the folder the page is in
|
|
122
|
+
to: 1
|
|
123
|
+
});
|
|
124
|
+
// set the compressor globally
|
|
125
|
+
steal.build.compressor = steal.build.builders.scripts.compressors[options.compressor || "localClosure"]();
|
|
126
|
+
|
|
127
|
+
//a list of files hashed by their path
|
|
128
|
+
var files = {},
|
|
129
|
+
|
|
130
|
+
//keeps track of the packages an app needs
|
|
131
|
+
apps = {},
|
|
132
|
+
|
|
133
|
+
//a list of the apps (top most dependencies)
|
|
134
|
+
appFiles = [];
|
|
135
|
+
|
|
136
|
+
//set defaults
|
|
137
|
+
options.depth = options.depth || 2;
|
|
138
|
+
options.to = options.to || "packages/"
|
|
139
|
+
|
|
140
|
+
//go through, open each app, and make dependency graph
|
|
141
|
+
for ( var i = 0; i < list.length; i++ ) {
|
|
142
|
+
var startFile = list[i] + "/" + steal.File(list[i]).basename() + ".js"
|
|
143
|
+
|
|
144
|
+
var opener = steal.build.open('steal/rhino/blank.html', {
|
|
145
|
+
startFile: startFile
|
|
146
|
+
})
|
|
147
|
+
appFiles.push(addDependencies(opener.steal._start, files, list[i]));
|
|
148
|
+
apps[list[i]] = [];
|
|
149
|
+
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
//add an order so we can sort them nicely
|
|
153
|
+
orderFiles(appFiles);
|
|
154
|
+
|
|
155
|
+
// will be set to the biggest group
|
|
156
|
+
var pack,
|
|
157
|
+
//the package number
|
|
158
|
+
packageCount = 0;
|
|
159
|
+
|
|
160
|
+
//while there are files left to be packaged, get the most shared and largest package
|
|
161
|
+
while ((pack = getMostShared(files))) {
|
|
162
|
+
|
|
163
|
+
print('\njoining shared by ' + pack.apps.join(", "))
|
|
164
|
+
|
|
165
|
+
//the source of the package
|
|
166
|
+
var src = [],
|
|
167
|
+
|
|
168
|
+
//order the files, most base file first
|
|
169
|
+
ordered = pack.files.sort(function( f1, f2 ) {
|
|
170
|
+
return f1.order - f2.order;
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// paths to files this package represents
|
|
174
|
+
var paths = [];
|
|
175
|
+
|
|
176
|
+
//go through files, put in src, and track
|
|
177
|
+
for ( var i = 0; i < ordered.length; i++ ) {
|
|
178
|
+
var f = ordered[i];
|
|
179
|
+
src.push("/* " + f.path + " */\n" + f.source);
|
|
180
|
+
print(" " + f.order + ":" + f.path);
|
|
181
|
+
paths.push(f.path)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
//the final source, includes a steal of all the files in this source
|
|
185
|
+
var source = "steal('//" + paths.join("'\n,'//") + "');\nsteal.end();\n" + src.join(";steal.end();\n"),
|
|
186
|
+
|
|
187
|
+
//the path to save
|
|
188
|
+
saveFile = pack.apps.length == 1 ? pack.apps[0] + "/production.js" : "packages/" + packageCount + ".js";
|
|
189
|
+
|
|
190
|
+
//if we are the top most, replace production file with the following
|
|
191
|
+
if ( pack.apps.length == 1 ) {
|
|
192
|
+
var packages = apps[pack.apps[0]];
|
|
193
|
+
source = "steal.packs('" + packages.join("','") + "', function(){\n" + source + "\n});"
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
//save the file
|
|
197
|
+
print("saving " + saveFile);
|
|
198
|
+
steal.File(saveFile).save(source);
|
|
199
|
+
|
|
200
|
+
//add this package to the app's packages list
|
|
201
|
+
for ( var pa = 0; pa < pack.apps.length; pa++ ) {
|
|
202
|
+
apps[pack.apps[pa]].push(packageCount);
|
|
203
|
+
}
|
|
204
|
+
packageCount++;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
}
|
|
208
|
+
})
|