javascriptmvc 3.0.0.pre15
Sign up to get free protection for your applications and to get access to all the features.
- 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,68 @@
|
|
1
|
+
// script.aculo.us scriptaculous.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
|
2
|
+
|
3
|
+
// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
// a copy of this software and associated documentation files (the
|
7
|
+
// "Software"), to deal in the Software without restriction, including
|
8
|
+
// without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
// distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
// permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
// the following conditions:
|
12
|
+
//
|
13
|
+
// The above copyright notice and this permission notice shall be
|
14
|
+
// included in all copies or substantial portions of the Software.
|
15
|
+
//
|
16
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
//
|
24
|
+
// For details, see the script.aculo.us web site: http://script.aculo.us/
|
25
|
+
|
26
|
+
var Scriptaculous = {
|
27
|
+
Version: '1.8.3',
|
28
|
+
require: function(libraryName) {
|
29
|
+
try{
|
30
|
+
// inserting via DOM fails in Safari 2.0, so brute force approach
|
31
|
+
document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
|
32
|
+
} catch(e) {
|
33
|
+
// for xhtml+xml served content, fall back to DOM methods
|
34
|
+
var script = document.createElement('script');
|
35
|
+
script.type = 'text/javascript';
|
36
|
+
script.src = libraryName;
|
37
|
+
document.getElementsByTagName('head')[0].appendChild(script);
|
38
|
+
}
|
39
|
+
},
|
40
|
+
REQUIRED_PROTOTYPE: '1.6.0.3',
|
41
|
+
load: function() {
|
42
|
+
function convertVersionString(versionString) {
|
43
|
+
var v = versionString.replace(/_.*|\./g, '');
|
44
|
+
v = parseInt(v + '0'.times(4-v.length));
|
45
|
+
return versionString.indexOf('_') > -1 ? v-1 : v;
|
46
|
+
}
|
47
|
+
|
48
|
+
if((typeof Prototype=='undefined') ||
|
49
|
+
(typeof Element == 'undefined') ||
|
50
|
+
(typeof Element.Methods=='undefined') ||
|
51
|
+
(convertVersionString(Prototype.Version) <
|
52
|
+
convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
|
53
|
+
throw("script.aculo.us requires the Prototype JavaScript framework >= " +
|
54
|
+
Scriptaculous.REQUIRED_PROTOTYPE);
|
55
|
+
|
56
|
+
var js = /scriptaculous\.js(\?.*)?$/;
|
57
|
+
$$('head script[src]').findAll(function(s) {
|
58
|
+
return s.src.match(js);
|
59
|
+
}).each(function(s) {
|
60
|
+
var path = s.src.replace(js, ''),
|
61
|
+
includes = s.src.match(/\?.*load=([a-z,]*)/);
|
62
|
+
(includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
|
63
|
+
function(include) { Scriptaculous.require(path+include+'.js') });
|
64
|
+
});
|
65
|
+
}
|
66
|
+
};
|
67
|
+
|
68
|
+
Scriptaculous.load();
|
@@ -0,0 +1,24 @@
|
|
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 and javascriptmvc 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
|
+
|
17
|
+
* Notice javascriptmvc is under the jquery folder
|
18
|
+
|
19
|
+
4. Learn a little more about submodules ...
|
20
|
+
http://johnleach.co.uk/words/archives/2008/10/12/323/git-submodules-in-n-easy-steps
|
21
|
+
|
22
|
+
5. Make changes in steal or jmvc, and push them back to your fork.
|
23
|
+
|
24
|
+
6. Make a pull request to your fork.
|
@@ -0,0 +1,73 @@
|
|
1
|
+
load('steal/file/file.js')
|
2
|
+
|
3
|
+
var i, fileName, cmd,
|
4
|
+
plugins = [
|
5
|
+
"class",
|
6
|
+
"controller",
|
7
|
+
{
|
8
|
+
plugin: "controller/subscribe",
|
9
|
+
exclude: ["jquery/controller/controller.js",
|
10
|
+
"jquery/class/class.js",
|
11
|
+
"jquery/lang/lang.js",
|
12
|
+
"jquery/event/destroyed/destroyed.js",
|
13
|
+
"jquery/controller/controller.js"]},
|
14
|
+
"event/default",
|
15
|
+
"event/destroyed",
|
16
|
+
"event/drag",
|
17
|
+
{
|
18
|
+
plugin: "event/drag/limit",
|
19
|
+
exclude: ["jquery/lang/vector/vector.js", "jquery/event/livehack/livehack.js", "jquery/event/drag/drag.js"]},
|
20
|
+
{
|
21
|
+
plugin: "event/drag/scroll",
|
22
|
+
exclude: ["jquery/dom/within/within.js", "jquery/dom/compare/compare.js", "jquery/event/drop/drop.js","jquery/lang/vector/vector.js", "jquery/event/livehack/livehack.js", "jquery/event/drag/drag.js"]},
|
23
|
+
{
|
24
|
+
plugin: "event/drop",
|
25
|
+
exclude: ["jquery/lang/vector/vector.js", "jquery/event/livehack/livehack.js", "jquery/event/drag/drag.js"]},
|
26
|
+
"event/hover",
|
27
|
+
{
|
28
|
+
plugin: "model",
|
29
|
+
exclude: ["jquery/class/class.js",
|
30
|
+
"jquery/lang/lang.js",
|
31
|
+
"jquery/event/destroyed/destroyed.js",
|
32
|
+
"jquery/lang/openajax/openajax.js"]},
|
33
|
+
"view/ejs",
|
34
|
+
"dom/closest",
|
35
|
+
"dom/compare",
|
36
|
+
{
|
37
|
+
plugin: "dom/dimensions",
|
38
|
+
fileName: "jquery.dimensions.etc.js"
|
39
|
+
},
|
40
|
+
"dom/fixture",
|
41
|
+
"dom/form_params",
|
42
|
+
"dom/within",
|
43
|
+
"dom/cur_styles"
|
44
|
+
]
|
45
|
+
|
46
|
+
|
47
|
+
var plugin, exclude, fileDest, fileName;
|
48
|
+
for(i=0; i<plugins.length; i++){
|
49
|
+
plugin = plugins[i];
|
50
|
+
exclude = [];
|
51
|
+
fileName = null;
|
52
|
+
if (typeof plugin != "string") {
|
53
|
+
fileName = plugin.fileName;
|
54
|
+
exclude = plugin.exclude || [];
|
55
|
+
plugin = plugin.plugin;
|
56
|
+
}
|
57
|
+
fileName = fileName || "jquery."+plugin.replace(/\//g, ".").replace(/dom\./, "").replace(/\_/, "")+".js";
|
58
|
+
fileDest = "jquery/dist/"+fileName
|
59
|
+
cmd = "js steal/scripts/pluginify.js jquery/"+plugin+" -destination "+fileDest;
|
60
|
+
if(exclude.length)
|
61
|
+
cmd += " -exclude "+exclude;
|
62
|
+
runCommand( "cmd", "/C", cmd)
|
63
|
+
|
64
|
+
// compress
|
65
|
+
var outBaos = new java.io.ByteArrayOutputStream();
|
66
|
+
var output = new java.io.PrintStream(outBaos);
|
67
|
+
runCommand("java", "-jar", "steal/rhino/compiler.jar", "--compilation_level",
|
68
|
+
"SIMPLE_OPTIMIZATIONS", "--warning_level","QUIET", "--js", fileDest, {output: output});
|
69
|
+
|
70
|
+
var minFileDest = fileDest.replace(".js", ".min.js")
|
71
|
+
new steal.File(minFileDest).save(outBaos.toString());
|
72
|
+
print("***"+fileName+" pluginified and compressed")
|
73
|
+
}
|
@@ -0,0 +1,109 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
2
|
+
"http://www.w3.org/TR/html4/strict.dtd">
|
3
|
+
<html lang="en">
|
4
|
+
<head>
|
5
|
+
<title>jQuery.Class Demo</title>
|
6
|
+
<style type='text/css'>
|
7
|
+
body {font-family: verdana}
|
8
|
+
.tabs, .history_tabs {
|
9
|
+
|
10
|
+
padding: 0px; margin: 20px 0 0 0;
|
11
|
+
}
|
12
|
+
li {
|
13
|
+
float: left;
|
14
|
+
padding: 10px;
|
15
|
+
background-color: #F6F6F6;
|
16
|
+
list-style: none;
|
17
|
+
margin-left: 10px;
|
18
|
+
}
|
19
|
+
li a {
|
20
|
+
color: #1C94C4;
|
21
|
+
font-weight: bold;
|
22
|
+
text-decoration: none;
|
23
|
+
}
|
24
|
+
li.active a {
|
25
|
+
color: #F6A828;
|
26
|
+
cursor: default;
|
27
|
+
}
|
28
|
+
.tab {
|
29
|
+
border: solid 1px #F6A828;
|
30
|
+
}
|
31
|
+
/* clearfix from jQueryUI */
|
32
|
+
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
33
|
+
.ui-helper-clearfix { display: inline-block; }
|
34
|
+
/* required comment for clearfix to work in Opera \*/
|
35
|
+
* html .ui-helper-clearfix { height:1%; }
|
36
|
+
.ui-helper-clearfix { display:block; }
|
37
|
+
/* end clearfix */
|
38
|
+
</style>
|
39
|
+
</head>
|
40
|
+
<body>
|
41
|
+
<p>jQuery.Class Demo shows a tabs controller extended to work with history.</p>
|
42
|
+
<div id="demo-html">
|
43
|
+
<h2>Basic Tabs</h2>
|
44
|
+
<ul id='tabs1' class='ui-helper-clearfix''>
|
45
|
+
<li><a href='#tab1'>Tab 1</a></li>
|
46
|
+
<li><a href='#tab2'>Tab 2</a></li>
|
47
|
+
<li><a href='#tab3'>Tab 3</a></li>
|
48
|
+
</ul>
|
49
|
+
<div id='tab1' class='tab'>Tab 1 Content</div>
|
50
|
+
<div id='tab2' class='tab'>Tab 2 Content</div>
|
51
|
+
<div id='tab3' class='tab'>Tab 3 Content</div>
|
52
|
+
<h2>History Tabs</h2>
|
53
|
+
<ul id='tabs2' class='ui-helper-clearfix''>
|
54
|
+
<li><a href='#tab4'>Tab 4</a></li>
|
55
|
+
<li><a href='#tab5'>Tab 5</a></li>
|
56
|
+
<li><a href='#tab6'>Tab 6</a></li>
|
57
|
+
</ul>
|
58
|
+
<div id='tab4' class='tab'>Tab 4 Content</div>
|
59
|
+
<div id='tab5' class='tab'>Tab 5 Content</div>
|
60
|
+
<div id='tab6' class='tab'>Tab 6 Content</div>
|
61
|
+
</div>
|
62
|
+
<script type='text/javascript'>DEMO_HTML = document.getElementById('demo-html').innerHTML</script>
|
63
|
+
<script type='text/javascript' src='../../steal/steal.js'></script>
|
64
|
+
<script type='text/javascript'>
|
65
|
+
steal.plugins('jquery/controller/history').start();
|
66
|
+
</script>
|
67
|
+
<script type='text/javascript' id="demo-source">
|
68
|
+
$.Controller.extend("Tabs",{
|
69
|
+
init : function(){
|
70
|
+
this.element.children("li:first").addClass('active')
|
71
|
+
var tab = this.tab;
|
72
|
+
this.element.children("li:gt(0)").each(function(){
|
73
|
+
tab($(this)).hide()
|
74
|
+
})
|
75
|
+
},
|
76
|
+
tab : function(li){
|
77
|
+
return $(li.find("a").attr("href"))
|
78
|
+
},
|
79
|
+
"li click" : function(el, ev){
|
80
|
+
ev.preventDefault();
|
81
|
+
this.activate(el)
|
82
|
+
},
|
83
|
+
activate : function(el){
|
84
|
+
this.tab(this.find('.active').removeClass('active')).hide()
|
85
|
+
this.tab(el.addClass('active')).show();
|
86
|
+
}
|
87
|
+
})
|
88
|
+
|
89
|
+
//inherit from tabs
|
90
|
+
Tabs.extend("HistoryTabs",{
|
91
|
+
// ignore clicks
|
92
|
+
"li click" : function(){},
|
93
|
+
|
94
|
+
// listen for history changes
|
95
|
+
"history.** subscribe" : function(called){
|
96
|
+
var hash = window.location.hash;
|
97
|
+
this.activate(hash === '' || hash === '#' ?
|
98
|
+
this.element.find("li:first") :
|
99
|
+
this.element.find("a[href="+hash+"]").parent()
|
100
|
+
)
|
101
|
+
}
|
102
|
+
})
|
103
|
+
|
104
|
+
//adds the controller to the element
|
105
|
+
$("#tabs1").tabs();
|
106
|
+
$("#tabs2").history_tabs();
|
107
|
+
</script>
|
108
|
+
</body>
|
109
|
+
</html>
|
@@ -0,0 +1,627 @@
|
|
1
|
+
//jQuery.Class
|
2
|
+
// This is a modified version of John Resig's class
|
3
|
+
// http://ejohn.org/blog/simple-javascript-inheritance/
|
4
|
+
// It provides class level inheritance and callbacks.
|
5
|
+
steal.plugin("jquery").then(function( $ ) {
|
6
|
+
|
7
|
+
// if we are initializing a new class
|
8
|
+
var initializing = false,
|
9
|
+
|
10
|
+
// tests if we can get super in .toString()
|
11
|
+
fnTest = /xyz/.test(function() {
|
12
|
+
xyz;
|
13
|
+
}) ? /\b_super\b/ : /.*/,
|
14
|
+
|
15
|
+
// overwrites an object with methods, sets up _super
|
16
|
+
inheritProps = function( newProps, oldProps, addTo ) {
|
17
|
+
addTo = addTo || newProps
|
18
|
+
for ( var name in newProps ) {
|
19
|
+
// Check if we're overwriting an existing function
|
20
|
+
addTo[name] = typeof newProps[name] == "function" && typeof oldProps[name] == "function" && fnTest.test(newProps[name]) ? (function( name, fn ) {
|
21
|
+
return function() {
|
22
|
+
var tmp = this._super,
|
23
|
+
ret;
|
24
|
+
|
25
|
+
// Add a new ._super() method that is the same method
|
26
|
+
// but on the super-class
|
27
|
+
this._super = oldProps[name];
|
28
|
+
|
29
|
+
// The method only need to be bound temporarily, so we
|
30
|
+
// remove it when we're done executing
|
31
|
+
ret = fn.apply(this, arguments);
|
32
|
+
this._super = tmp;
|
33
|
+
return ret;
|
34
|
+
};
|
35
|
+
})(name, newProps[name]) : newProps[name];
|
36
|
+
}
|
37
|
+
};
|
38
|
+
|
39
|
+
|
40
|
+
/**
|
41
|
+
* @constructor jQuery.Class
|
42
|
+
* @plugin jquery/class
|
43
|
+
* @tag core
|
44
|
+
* @download dist/jquery/jquery.class.js
|
45
|
+
* @test jquery/class/qunit.html
|
46
|
+
* Class provides simulated inheritance in JavaScript. Use $.Class to bridge the gap between
|
47
|
+
* jQuery's functional programming style and Object Oriented Programming.
|
48
|
+
* It is based off John Resig's [http://ejohn.org/blog/simple-javascript-inheritance/|Simple Class]
|
49
|
+
* Inheritance library. Besides prototypal inheritance, it includes a few important features:
|
50
|
+
* <ul>
|
51
|
+
* <li>Static inheritance</li>
|
52
|
+
* <li>Introspection</li>
|
53
|
+
* <li>Namespaces</li>
|
54
|
+
* <li>Setup and initialization methods</li>
|
55
|
+
* <li>Easy callback function creation</li>
|
56
|
+
* </ul>
|
57
|
+
* <h2>Static v. Prototype</h2>
|
58
|
+
* <p>Before learning about Class, it's important to
|
59
|
+
* understand the difference between
|
60
|
+
* a class's <b>static</b> and <b>prototype</b> properties.
|
61
|
+
* </p>
|
62
|
+
* @codestart
|
63
|
+
* //STATIC
|
64
|
+
* MyClass.staticProperty //shared property
|
65
|
+
*
|
66
|
+
* //PROTOTYPE
|
67
|
+
* myclass = new MyClass()
|
68
|
+
* myclass.prototypeMethod() //instance method
|
69
|
+
* @codeend
|
70
|
+
* <p>A static (or class) property is on the Class constructor
|
71
|
+
* function itself
|
72
|
+
* and can be thought of being shared by all instances of the Class.
|
73
|
+
* Prototype propertes are available only on instances of the Class.
|
74
|
+
* </p>
|
75
|
+
* <h2>A Basic Class</h2>
|
76
|
+
* <p>The following creates a Monster class with a
|
77
|
+
* name (for introspection), static, and prototype members.
|
78
|
+
* Every time a monster instance is created, the static
|
79
|
+
* count is incremented.
|
80
|
+
*
|
81
|
+
* </p>
|
82
|
+
* @codestart
|
83
|
+
* $.Class.extend('Monster',
|
84
|
+
* /* @static *|
|
85
|
+
* {
|
86
|
+
* count: 0
|
87
|
+
* },
|
88
|
+
* /* @prototype *|
|
89
|
+
* {
|
90
|
+
* init: function( name ) {
|
91
|
+
*
|
92
|
+
* // saves name on the monster instance
|
93
|
+
* this.name = name;
|
94
|
+
*
|
95
|
+
* // sets the health
|
96
|
+
* this.health = 10;
|
97
|
+
*
|
98
|
+
* // increments count
|
99
|
+
* this.Class.count++;
|
100
|
+
* },
|
101
|
+
* eat: function( smallChildren ){
|
102
|
+
* this.health += smallChildren;
|
103
|
+
* },
|
104
|
+
* fight: function() {
|
105
|
+
* this.health -= 2;
|
106
|
+
* }
|
107
|
+
* });
|
108
|
+
*
|
109
|
+
* hydra = new Monster('hydra');
|
110
|
+
*
|
111
|
+
* dragon = new Monster('dragon');
|
112
|
+
*
|
113
|
+
* hydra.name // -> hydra
|
114
|
+
* Monster.count // -> 2
|
115
|
+
* Monster.shortName // -> 'Monster'
|
116
|
+
*
|
117
|
+
* hydra.eat(2); // health = 12
|
118
|
+
*
|
119
|
+
* dragon.fight(); // health = 8
|
120
|
+
*
|
121
|
+
* @codeend
|
122
|
+
*
|
123
|
+
* <p>
|
124
|
+
* Notice that the prototype <b>init</b> function is called when a new instance of Monster is created.
|
125
|
+
* </p>
|
126
|
+
* <h2>Inheritance</h2>
|
127
|
+
* <p>When a class is extended, all static and prototype properties are available on the new class.
|
128
|
+
* If you overwrite a function, you can call the base class's function by calling
|
129
|
+
* <code>this._super</code>. Lets create a SeaMonster class. SeaMonsters are less
|
130
|
+
* efficient at eating small children, but more powerful fighters.
|
131
|
+
* </p>
|
132
|
+
* @codestart
|
133
|
+
* Monster.extend("SeaMonster",{
|
134
|
+
* eat: function( smallChildren ) {
|
135
|
+
* this._super(smallChildren / 2);
|
136
|
+
* },
|
137
|
+
* fight: function() {
|
138
|
+
* this.health -= 1;
|
139
|
+
* }
|
140
|
+
* });
|
141
|
+
*
|
142
|
+
* lockNess = new SeaMonster('Lock Ness');
|
143
|
+
* lockNess.eat(4); //health = 12
|
144
|
+
* lockNess.fight(); //health = 11
|
145
|
+
* @codeend
|
146
|
+
* <h3>Static property inheritance</h3>
|
147
|
+
* You can also inherit static properties in the same way:
|
148
|
+
* @codestart
|
149
|
+
* $.Class.extend("First",
|
150
|
+
* {
|
151
|
+
* staticMethod: function() { return 1;}
|
152
|
+
* },{})
|
153
|
+
*
|
154
|
+
* First.extend("Second",{
|
155
|
+
* staticMethod: function() { return this._super()+1;}
|
156
|
+
* },{})
|
157
|
+
*
|
158
|
+
* Second.staticMethod() // -> 2
|
159
|
+
* @codeend
|
160
|
+
* <h2>Namespaces</h2>
|
161
|
+
* <p>Namespaces are a good idea! We encourage you to namespace all of your code.
|
162
|
+
* It makes it possible to drop your code into another app without problems.
|
163
|
+
* Making a namespaced class is easy:
|
164
|
+
* </p>
|
165
|
+
* @codestart
|
166
|
+
* $.Class.extend("MyNamespace.MyClass",{},{});
|
167
|
+
*
|
168
|
+
* new MyNamespace.MyClass()
|
169
|
+
* @codeend
|
170
|
+
* <h2 id='introspection'>Introspection</h2>
|
171
|
+
* Often, it's nice to create classes whose name helps determine functionality. Ruby on
|
172
|
+
* Rails's [http://api.rubyonrails.org/classes/ActiveRecord/Base.html|ActiveRecord] ORM class
|
173
|
+
* is a great example of this. Unfortunately, JavaScript doesn't have a way of determining
|
174
|
+
* an object's name, so the developer must provide a name. Class fixes this by taking a String name for the class.
|
175
|
+
* @codestart
|
176
|
+
* $.Class.extend("MyOrg.MyClass",{},{})
|
177
|
+
* MyOrg.MyClass.shortName //-> 'MyClass'
|
178
|
+
* MyOrg.MyClass.fullName //-> 'MyOrg.MyClass'
|
179
|
+
* @codeend
|
180
|
+
* The fullName (with namespaces) and the shortName (without namespaces) are added to the Class's
|
181
|
+
* static properties.
|
182
|
+
*
|
183
|
+
*
|
184
|
+
* <h2>Setup and initialization methods</h2>
|
185
|
+
* <p>
|
186
|
+
* Class provides static and prototype initialization functions.
|
187
|
+
* These come in two flavors - setup and init.
|
188
|
+
* Setup is called before init and
|
189
|
+
* can be used to 'normalize' init's arguments.
|
190
|
+
* </p>
|
191
|
+
* <div class='whisper'>PRO TIP: Typically, you don't need setup methods in your classes. Use Init instead.
|
192
|
+
* Reserve setup methods for when you need to do complex pre-processing of your class before init is called.
|
193
|
+
*
|
194
|
+
* </div>
|
195
|
+
* @codestart
|
196
|
+
* $.Class.extend("MyClass",
|
197
|
+
* {
|
198
|
+
* setup: function() {} //static setup
|
199
|
+
* init: function() {} //static constructor
|
200
|
+
* },
|
201
|
+
* {
|
202
|
+
* setup: function() {} //prototype setup
|
203
|
+
* init: function() {} //prototype constructor
|
204
|
+
* })
|
205
|
+
* @codeend
|
206
|
+
*
|
207
|
+
* <h3>Setup</h3>
|
208
|
+
* <p>Setup functions are called before init functions. Static setup functions are passed
|
209
|
+
* the base class followed by arguments passed to the extend function.
|
210
|
+
* Prototype static functions are passed the Class constructor function arguments.</p>
|
211
|
+
* <p>If a setup function returns an array, that array will be used as the arguments
|
212
|
+
* for the following init method. This provides setup functions the ability to normalize
|
213
|
+
* arguments passed to the init constructors. They are also excellent places
|
214
|
+
* to put setup code you want to almost always run.</p>
|
215
|
+
* <p>
|
216
|
+
* The following is similar to how [jQuery.Controller.prototype.setup]
|
217
|
+
* makes sure init is always called with a jQuery element and merged options
|
218
|
+
* even if it is passed a raw
|
219
|
+
* HTMLElement and no second parameter.
|
220
|
+
* </p>
|
221
|
+
* @codestart
|
222
|
+
* $.Class.extend("jQuery.Controller",{
|
223
|
+
* ...
|
224
|
+
* },{
|
225
|
+
* setup: function( el, options ) {
|
226
|
+
* ...
|
227
|
+
* return [$(el),
|
228
|
+
* $.extend(true,
|
229
|
+
* this.Class.defaults,
|
230
|
+
* options || {} ) ]
|
231
|
+
* }
|
232
|
+
* })
|
233
|
+
* @codeend
|
234
|
+
* Typically, you won't need to make or overwrite setup functions.
|
235
|
+
* <h3>Init</h3>
|
236
|
+
*
|
237
|
+
* <p>Init functions are called after setup functions.
|
238
|
+
* Typically, they receive the same arguments
|
239
|
+
* as their preceding setup function. The Foo class's <code>init</code> method
|
240
|
+
* gets called in the following example:
|
241
|
+
* </p>
|
242
|
+
* @codestart
|
243
|
+
* $.Class.Extend("Foo", {
|
244
|
+
* init: function( arg1, arg2, arg3 ) {
|
245
|
+
* this.sum = arg1+arg2+arg3;
|
246
|
+
* }
|
247
|
+
* })
|
248
|
+
* var foo = new Foo(1,2,3);
|
249
|
+
* foo.sum //-> 6
|
250
|
+
* @codeend
|
251
|
+
* <h2>Callbacks</h2>
|
252
|
+
* <p>Similar to jQuery's proxy method, Class provides a
|
253
|
+
* [jQuery.Class.static.callback callback]
|
254
|
+
* function that returns a callback to a method that will always
|
255
|
+
* have
|
256
|
+
* <code>this</code> set to the class or instance of the class.
|
257
|
+
* </p>
|
258
|
+
* The following example uses this.callback to make sure
|
259
|
+
* <code>this.name</code> is available in <code>show</code>.
|
260
|
+
* @codestart
|
261
|
+
* $.Class.extend("Todo",{
|
262
|
+
* init: function( name ) { this.name = name }
|
263
|
+
* get: function() {
|
264
|
+
* $.get("/stuff",this.callback('show'))
|
265
|
+
* },
|
266
|
+
* show: function( txt ) {
|
267
|
+
* alert(this.name+txt)
|
268
|
+
* }
|
269
|
+
* })
|
270
|
+
* new Todo("Trash").get()
|
271
|
+
* @codeend
|
272
|
+
* <p>Callback is available as a static and prototype method.</p>
|
273
|
+
* <h2>Demo</h2>
|
274
|
+
* @demo jquery/class/class.html
|
275
|
+
*
|
276
|
+
* @init Creating a new instance of an object that has extended jQuery.Class
|
277
|
+
* calls the init prototype function and returns a new instance of the class.
|
278
|
+
*
|
279
|
+
*/
|
280
|
+
|
281
|
+
jQuery.Class = function() {
|
282
|
+
if ( arguments.length ) this.extend.apply(this, arguments)
|
283
|
+
};
|
284
|
+
|
285
|
+
/* @Static*/
|
286
|
+
$.extend($.Class, {
|
287
|
+
/**
|
288
|
+
* @function callback
|
289
|
+
* Returns a callback function for a function on this Class.
|
290
|
+
* The callback function ensures that 'this' is set appropriately.
|
291
|
+
* @codestart
|
292
|
+
* $.Class.extend("MyClass",{
|
293
|
+
* getData: function() {
|
294
|
+
* this.showing = null;
|
295
|
+
* $.get("data.json",this.callback('gotData'),'json')
|
296
|
+
* },
|
297
|
+
* gotData: function( data ) {
|
298
|
+
* this.showing = data;
|
299
|
+
* }
|
300
|
+
* },{});
|
301
|
+
* MyClass.showData();
|
302
|
+
* @codeend
|
303
|
+
* <h2>Currying Arguments</h2>
|
304
|
+
* Additional arguments to callback will fill in arguments on the returning function.
|
305
|
+
* @codestart
|
306
|
+
* $.Class.extend("MyClass",{
|
307
|
+
* getData: function( <b>callback</b> ) {
|
308
|
+
* $.get("data.json",this.callback('process',<b>callback</b>),'json');
|
309
|
+
* },
|
310
|
+
* process: function( <b>callback</b>, jsonData ) { //callback is added as first argument
|
311
|
+
* jsonData.processed = true;
|
312
|
+
* callback(jsonData);
|
313
|
+
* }
|
314
|
+
* },{});
|
315
|
+
* MyClass.getData(showDataFunc)
|
316
|
+
* @codeend
|
317
|
+
* <h2>Nesting Functions</h2>
|
318
|
+
* Callback can take an array of functions to call as the first argument. When the returned callback function
|
319
|
+
* is called each function in the array is passed the return value of the prior function. This is often used
|
320
|
+
* to eliminate currying initial arguments.
|
321
|
+
* @codestart
|
322
|
+
* $.Class.extend("MyClass",{
|
323
|
+
* getData: function( callback ) {
|
324
|
+
* //calls process, then callback with value from process
|
325
|
+
* $.get("data.json",this.callback(['process2',callback]),'json')
|
326
|
+
* },
|
327
|
+
* process2: function( type,jsonData ) {
|
328
|
+
* jsonData.processed = true;
|
329
|
+
* return [jsonData];
|
330
|
+
* }
|
331
|
+
* },{});
|
332
|
+
* MyClass.getData(showDataFunc);
|
333
|
+
* @codeend
|
334
|
+
* @param {String|Array} fname If a string, it represents the function to be called.
|
335
|
+
* If it is an array, it will call each function in order and pass the return value of the prior function to the
|
336
|
+
* next function.
|
337
|
+
* @return {Function} the callback function.
|
338
|
+
*/
|
339
|
+
callback: function( funcs ) {
|
340
|
+
|
341
|
+
//args that should be curried
|
342
|
+
var args = jQuery.makeArray(arguments),
|
343
|
+
self;
|
344
|
+
|
345
|
+
funcs = args.shift();
|
346
|
+
|
347
|
+
if (!jQuery.isArray(funcs) ) {
|
348
|
+
funcs = [funcs];
|
349
|
+
}
|
350
|
+
|
351
|
+
self = this;
|
352
|
+
|
353
|
+
return function class_cb() {
|
354
|
+
var cur = args.concat(jQuery.makeArray(arguments)),
|
355
|
+
isString, length = funcs.length,
|
356
|
+
f = 0,
|
357
|
+
func;
|
358
|
+
|
359
|
+
for (; f < length; f++ ) {
|
360
|
+
func = funcs[f];
|
361
|
+
if (!func ) {
|
362
|
+
continue;
|
363
|
+
}
|
364
|
+
|
365
|
+
isString = typeof func == "string";
|
366
|
+
if ( isString && self._set_called ) {
|
367
|
+
self.called = func;
|
368
|
+
}
|
369
|
+
cur = (isString ? self[func] : func).apply(self, cur || []);
|
370
|
+
if ( f < length - 1 ) {
|
371
|
+
cur = !jQuery.isArray(cur) || cur._use_call ? [cur] : cur
|
372
|
+
}
|
373
|
+
}
|
374
|
+
return cur;
|
375
|
+
}
|
376
|
+
},
|
377
|
+
/**
|
378
|
+
* @function getObject
|
379
|
+
* Gets an object from a String.
|
380
|
+
* If the object or namespaces the string represent do not
|
381
|
+
* exist it will create them.
|
382
|
+
* @codestart
|
383
|
+
* Foo = {Bar: {Zar: {"Ted"}}}
|
384
|
+
* $.Class.getobject("Foo.Bar.Zar") //-> "Ted"
|
385
|
+
* @codeend
|
386
|
+
* @param {String} objectName the object you want to get
|
387
|
+
* @param {Object} [current=window] the object you want to look in.
|
388
|
+
* @return {Object} the object you are looking for.
|
389
|
+
*/
|
390
|
+
getObject: function( objectName, current ) {
|
391
|
+
var current = current || window,
|
392
|
+
parts = objectName ? objectName.split(/\./) : [],
|
393
|
+
i = 0;
|
394
|
+
for (; i < parts.length; i++ ) {
|
395
|
+
current = current[parts[i]] || (current[parts[i]] = {})
|
396
|
+
}
|
397
|
+
return current;
|
398
|
+
},
|
399
|
+
/**
|
400
|
+
* @function newInstance
|
401
|
+
* Creates a new instance of the class. This method is useful for creating new instances
|
402
|
+
* with arbitrary parameters.
|
403
|
+
* <h3>Example</h3>
|
404
|
+
* @codestart
|
405
|
+
* $.Class.extend("MyClass",{},{})
|
406
|
+
* var mc = MyClass.newInstance.apply(null, new Array(parseInt(Math.random()*10,10))
|
407
|
+
* @codeend
|
408
|
+
* @return {class} instance of the class
|
409
|
+
*/
|
410
|
+
newInstance: function() {
|
411
|
+
var inst = this.rawInstance(),
|
412
|
+
args;
|
413
|
+
if ( inst.setup ) {
|
414
|
+
args = inst.setup.apply(inst, arguments);
|
415
|
+
}
|
416
|
+
if ( inst.init ) {
|
417
|
+
inst.init.apply(inst, $.isArray(args) ? args : arguments);
|
418
|
+
}
|
419
|
+
return inst;
|
420
|
+
},
|
421
|
+
/**
|
422
|
+
* Copy and overwrite options from old class
|
423
|
+
* @param {Object} oldClass
|
424
|
+
* @param {String} fullName
|
425
|
+
* @param {Object} staticProps
|
426
|
+
* @param {Object} protoProps
|
427
|
+
*/
|
428
|
+
setup: function( oldClass, fullName ) {
|
429
|
+
this.defaults = $.extend(true, {}, oldClass.defaults, this.defaults);
|
430
|
+
return arguments;
|
431
|
+
},
|
432
|
+
rawInstance: function() {
|
433
|
+
initializing = true;
|
434
|
+
var inst = new this();
|
435
|
+
initializing = false;
|
436
|
+
return inst;
|
437
|
+
},
|
438
|
+
/**
|
439
|
+
* Extends a class with new static and prototype functions. There are a variety of ways
|
440
|
+
* to use extend:
|
441
|
+
* @codestart
|
442
|
+
* //with className, static and prototype functions
|
443
|
+
* $.Class.extend('Task',{ STATIC },{ PROTOTYPE })
|
444
|
+
* //with just classname and prototype functions
|
445
|
+
* $.Class.extend('Task',{ PROTOTYPE })
|
446
|
+
* //With just a className
|
447
|
+
* $.Class.extend('Task')
|
448
|
+
* @codeend
|
449
|
+
* @param {String} [fullName] the classes name (used for classes w/ introspection)
|
450
|
+
* @param {Object} [klass] the new classes static/class functions
|
451
|
+
* @param {Object} [proto] the new classes prototype functions
|
452
|
+
* @return {jQuery.Class} returns the new class
|
453
|
+
*/
|
454
|
+
extend: function( fullName, klass, proto ) {
|
455
|
+
// figure out what was passed
|
456
|
+
if ( typeof fullName != 'string' ) {
|
457
|
+
proto = klass;
|
458
|
+
klass = fullName;
|
459
|
+
fullName = null;
|
460
|
+
}
|
461
|
+
if (!proto ) {
|
462
|
+
proto = klass;
|
463
|
+
klass = null;
|
464
|
+
}
|
465
|
+
|
466
|
+
proto = proto || {};
|
467
|
+
var _super_class = this,
|
468
|
+
_super = this.prototype,
|
469
|
+
name, shortName, namespace, prototype;
|
470
|
+
|
471
|
+
// Instantiate a base class (but only create the instance,
|
472
|
+
// don't run the init constructor)
|
473
|
+
initializing = true;
|
474
|
+
prototype = new this();
|
475
|
+
initializing = false;
|
476
|
+
// Copy the properties over onto the new prototype
|
477
|
+
inheritProps(proto, _super, prototype);
|
478
|
+
|
479
|
+
// The dummy class constructor
|
480
|
+
|
481
|
+
function Class() {
|
482
|
+
// All construction is actually done in the init method
|
483
|
+
if ( initializing ) return;
|
484
|
+
|
485
|
+
if ( this.constructor !== Class && arguments.length ) { //we are being called w/o new
|
486
|
+
return this.extend.apply(this, arguments)
|
487
|
+
} else { //we are being called w/ new
|
488
|
+
return this.Class.newInstance.apply(this.Class, arguments)
|
489
|
+
}
|
490
|
+
}
|
491
|
+
// Copy old stuff onto class
|
492
|
+
for ( name in this ) {
|
493
|
+
if ( this.hasOwnProperty(name) && $.inArray(name, ['prototype', 'defaults', 'getObject']) == -1 ) {
|
494
|
+
Class[name] = this[name];
|
495
|
+
}
|
496
|
+
}
|
497
|
+
|
498
|
+
// do static inheritance
|
499
|
+
inheritProps(klass, this, Class);
|
500
|
+
|
501
|
+
// do namespace stuff
|
502
|
+
if ( fullName ) {
|
503
|
+
|
504
|
+
var parts = fullName.split(/\./),
|
505
|
+
shortName = parts.pop(),
|
506
|
+
current = $.Class.getObject(parts.join('.')),
|
507
|
+
namespace = current;
|
508
|
+
|
509
|
+
//@steal-remove-start
|
510
|
+
steal.dev.isHappyName(fullName)
|
511
|
+
//@steal-remove-end
|
512
|
+
current[shortName] = Class;
|
513
|
+
}
|
514
|
+
|
515
|
+
// set things that can't be overwritten
|
516
|
+
$.extend(Class, {
|
517
|
+
prototype: prototype,
|
518
|
+
namespace: namespace,
|
519
|
+
shortName: shortName,
|
520
|
+
constructor: Class,
|
521
|
+
fullName: fullName
|
522
|
+
});
|
523
|
+
|
524
|
+
//make sure our prototype looks nice
|
525
|
+
Class.prototype.Class = Class.prototype.constructor = Class;
|
526
|
+
|
527
|
+
|
528
|
+
/**
|
529
|
+
* @attribute fullName
|
530
|
+
* The full name of the class, including namespace, provided for introspection purposes.
|
531
|
+
* @codestart
|
532
|
+
* $.Class.extend("MyOrg.MyClass",{},{})
|
533
|
+
* MyOrg.MyClass.shortName //-> 'MyClass'
|
534
|
+
* MyOrg.MyClass.fullName //-> 'MyOrg.MyClass'
|
535
|
+
* @codeend
|
536
|
+
*/
|
537
|
+
|
538
|
+
var args = Class.setup.apply(Class, [_super_class].concat($.makeArray(arguments)));
|
539
|
+
|
540
|
+
if ( Class.init ) {
|
541
|
+
Class.init.apply(Class, args || []);
|
542
|
+
}
|
543
|
+
|
544
|
+
/* @Prototype*/
|
545
|
+
return Class;
|
546
|
+
/**
|
547
|
+
* @function setup
|
548
|
+
* Called with the same arguments as new Class(arguments ...) when a new instance is created.
|
549
|
+
* @codestart
|
550
|
+
* $.Class.extend("MyClass",
|
551
|
+
* {
|
552
|
+
* setup: function( val ) {
|
553
|
+
* this.val = val;
|
554
|
+
* }
|
555
|
+
* })
|
556
|
+
* var mc = new MyClass("Check Check")
|
557
|
+
* mc.val //-> 'Check Check'
|
558
|
+
* @codeend
|
559
|
+
*
|
560
|
+
* <div class='whisper'>PRO TIP:
|
561
|
+
* Setup functions are used to normalize constructor arguments and provide a place for
|
562
|
+
* setup code that extending classes don't have to remember to call _super to
|
563
|
+
* run.
|
564
|
+
* </div>
|
565
|
+
*
|
566
|
+
* @return {Array|undefined} If an array is return, [jQuery.Class.prototype.init] is
|
567
|
+
* called with those arguments; otherwise, the original arguments are used.
|
568
|
+
*/
|
569
|
+
//break up
|
570
|
+
/**
|
571
|
+
* @function init
|
572
|
+
* Called with the same arguments as new Class(arguments ...) when a new instance is created.
|
573
|
+
* @codestart
|
574
|
+
* $.Class.extend("MyClass",
|
575
|
+
* {
|
576
|
+
* init: function( val ) {
|
577
|
+
* this.val = val;
|
578
|
+
* }
|
579
|
+
* })
|
580
|
+
* var mc = new MyClass("Check Check")
|
581
|
+
* mc.val //-> 'Check Check'
|
582
|
+
* @codeend
|
583
|
+
*/
|
584
|
+
//Breaks up code
|
585
|
+
/**
|
586
|
+
* @attribute Class
|
587
|
+
* References the static properties of the instance's class.
|
588
|
+
* <h3>Quick Example</h3>
|
589
|
+
* @codestart
|
590
|
+
* // a class with a static classProperty property
|
591
|
+
* $.Class.extend("MyClass", {classProperty : true}, {});
|
592
|
+
*
|
593
|
+
* // a new instance of myClass
|
594
|
+
* var mc1 = new MyClass();
|
595
|
+
*
|
596
|
+
* //
|
597
|
+
* mc1.Class.classProperty = false;
|
598
|
+
*
|
599
|
+
* // creates a new MyClass
|
600
|
+
* var mc2 = new mc.Class();
|
601
|
+
* @codeend
|
602
|
+
* Getting static properties via the Class property, such as it's
|
603
|
+
* [jQuery.Class.static.fullName fullName] is very common.
|
604
|
+
*/
|
605
|
+
}
|
606
|
+
|
607
|
+
})
|
608
|
+
|
609
|
+
|
610
|
+
|
611
|
+
|
612
|
+
|
613
|
+
jQuery.Class.prototype.
|
614
|
+
/**
|
615
|
+
* @function callback
|
616
|
+
* Returns a callback function. This does the same thing as and is described better in [jQuery.Class.static.callback].
|
617
|
+
* The only difference is this callback works
|
618
|
+
* on a instance instead of a class.
|
619
|
+
* @param {String|Array} fname If a string, it represents the function to be called.
|
620
|
+
* If it is an array, it will call each function in order and pass the return value of the prior function to the
|
621
|
+
* next function.
|
622
|
+
* @return {Function} the callback function
|
623
|
+
*/
|
624
|
+
callback = jQuery.Class.callback;
|
625
|
+
|
626
|
+
|
627
|
+
})();
|