sproutit-sproutcore 1.0.0.20090407205609 → 1.0.0.20090408130025
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/frameworks/sproutcore/Buildfile +63 -0
- data/frameworks/sproutcore/HISTORY +682 -0
- data/frameworks/sproutcore/README +22 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/controllers/docs.js +149 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.js +99 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/main.js +27 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/models/doc.js +21 -0
- data/frameworks/sproutcore/apps/sc_qunit/controllers/runner.js +209 -0
- data/frameworks/sproutcore/apps/sc_qunit/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.js +107 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_qunit/main.js +18 -0
- data/frameworks/sproutcore/apps/sc_qunit/models/test.js +24 -0
- data/frameworks/sproutcore/apps/sc_qunit/views/test_iframe.js +52 -0
- data/frameworks/sproutcore/apps/tests/controllers/targets.js +47 -0
- data/frameworks/sproutcore/apps/tests/controllers/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/controllers/tests.js +38 -0
- data/frameworks/sproutcore/apps/tests/core.js +35 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/loading.rhtml +9 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +19 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +86 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +17 -0
- data/frameworks/sproutcore/apps/tests/fixtures/target.js +43 -0
- data/frameworks/sproutcore/apps/tests/fixtures/test.js +43 -0
- data/frameworks/sproutcore/apps/tests/main.js +39 -0
- data/frameworks/sproutcore/apps/tests/models/target.js +49 -0
- data/frameworks/sproutcore/apps/tests/models/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/test.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/target.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/test.js +15 -0
- data/frameworks/sproutcore/apps/welcome/core.js +23 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/loading.rhtml +8 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +43 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/welcome/main.js +36 -0
- data/frameworks/sproutcore/design/Design Charts.graffle +15819 -0
- data/frameworks/sproutcore/design/Record State Table.numbers +0 -0
- data/frameworks/sproutcore/frameworks/datastore/core.js +14 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +113 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +256 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +196 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/json.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/standard_setup.js +96 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/author_fixtures.js +2503 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/sample.js +17 -0
- data/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +92 -0
- data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +38 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record.js +430 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +361 -0
- data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +305 -0
- data/frameworks/sproutcore/frameworks/datastore/system/query.js +128 -0
- data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +149 -0
- data/frameworks/sproutcore/frameworks/datastore/system/store.js +1689 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +86 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +114 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/mail_model.js +91 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +56 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +73 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +48 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +42 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +138 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +46 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +115 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +40 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +116 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +135 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +110 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +99 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +180 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +163 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +166 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +175 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +54 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +127 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +57 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +78 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +247 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +106 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/init.js +21 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +61 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +144 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +137 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +130 -0
- data/frameworks/sproutcore/frameworks/debug/core.js +1 -0
- data/frameworks/sproutcore/frameworks/deprecated/core.js +61 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/button_views.rb +330 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/collection_view.rb +83 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/core_views.rb +326 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/form_views.rb +253 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/index.rhtml +75 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/menu_views.rb +93 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rails_server.js +80 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rest_server.js +178 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/server.js +674 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/animator.js +679 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/binding.js +36 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/browser.js +77 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/classic_responder.js +314 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/event.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/globals.js +20 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/misc.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/node_descriptor.js +72 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/object.js +124 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/path_module.js +433 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/string.js +109 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/application/application.rhtml +125 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/clippingFrame.rhtml +401 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/frame.rhtml +357 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/isVisibleInWindow.rhtml +147 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/base.rhtml +298 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/incremental_rendering.rhtml +260 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/source_list_rendering.rhtml +143 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/popup_button.rhtml +128 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/text_field.rhtml +37 -0
- data/frameworks/sproutcore/frameworks/deprecated/views/collection.js +24 -0
- data/frameworks/sproutcore/frameworks/designer/coders/design.js +30 -0
- data/frameworks/sproutcore/frameworks/designer/coders/localization.js +28 -0
- data/frameworks/sproutcore/frameworks/designer/coders/object.js +347 -0
- data/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +102 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_rule.js +22 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style.js +29 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +201 -0
- data/frameworks/sproutcore/frameworks/designer/ext/page.js +88 -0
- data/frameworks/sproutcore/frameworks/designer/ext/view.js +40 -0
- data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +18 -0
- data/frameworks/sproutcore/frameworks/designer/views/designer.js +553 -0
- data/frameworks/sproutcore/frameworks/designer/views/label.js +17 -0
- data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +13 -0
- data/frameworks/sproutcore/frameworks/designer/views/tab.js +17 -0
- data/frameworks/sproutcore/frameworks/desktop/core.js +6 -0
- data/frameworks/sproutcore/frameworks/desktop/debug/drag.js +41 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +56 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/a_sample_image.jpg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/apple-logo1.jpeg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/iframe.html +23 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +71 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +943 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_222222.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_454545.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_888888.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/indicator.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-x.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-y.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/000000.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sticky-note.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +156 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +83 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +99 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/palette.css +3 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +94 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +39 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +31 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +10 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/scroller.css +26 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +19 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +57 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split.css +70 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +8 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +14 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/text_field.css +29 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/toolbar.css +6 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/border.js +53 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_item.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +226 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +247 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +377 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +504 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/modal.js +68 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/palette.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/panel.js +184 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +402 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +46 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +175 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +280 -0
- data/frameworks/sproutcore/frameworks/desktop/system/drag.js +721 -0
- data/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +641 -0
- data/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +187 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +43 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +152 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +57 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +36 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +80 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +38 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +140 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +145 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +99 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +64 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +255 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +128 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +240 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +113 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +202 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +139 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +111 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/ui.js +70 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +94 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +206 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +85 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +50 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +52 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +54 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +88 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/methods.js +76 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/ui.js +198 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/views/button.js +320 -0
- data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +98 -0
- data/frameworks/sproutcore/frameworks/desktop/views/collection.js +2141 -0
- data/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/views/form.js +595 -0
- data/frameworks/sproutcore/frameworks/desktop/views/grid.js +199 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list.js +706 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +523 -0
- data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +437 -0
- data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +62 -0
- data/frameworks/sproutcore/frameworks/desktop/views/progress.js +207 -0
- data/frameworks/sproutcore/frameworks/desktop/views/radio.js +332 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scene.js +56 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +648 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +203 -0
- data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +509 -0
- data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +292 -0
- data/frameworks/sproutcore/frameworks/desktop/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/views/slider.js +178 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +1117 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +169 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split.js +651 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +55 -0
- data/frameworks/sproutcore/frameworks/desktop/views/tab.js +190 -0
- data/frameworks/sproutcore/frameworks/desktop/views/text_field.js +233 -0
- data/frameworks/sproutcore/frameworks/desktop/views/thumb.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/web.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/TESTING +46 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +490 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +317 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +421 -0
- data/frameworks/sproutcore/frameworks/foundation/core.js +111 -0
- data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +172 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +53 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +55 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +8 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/static_layout.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +40 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/object.js +81 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/fixtures/file_exists.json +1 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +291 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +88 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +352 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +146 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/responder.js +156 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +154 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +101 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +237 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +176 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/main.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +555 -0
- data/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +84 -0
- data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +244 -0
- data/frameworks/sproutcore/frameworks/foundation/system/browser.js +64 -0
- data/frameworks/sproutcore/frameworks/foundation/system/builder.js +210 -0
- data/frameworks/sproutcore/frameworks/foundation/system/core_query.js +2015 -0
- data/frameworks/sproutcore/frameworks/foundation/system/cursor.js +129 -0
- data/frameworks/sproutcore/frameworks/foundation/system/error.js +93 -0
- data/frameworks/sproutcore/frameworks/foundation/system/event.js +817 -0
- data/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/system/json.js +440 -0
- data/frameworks/sproutcore/frameworks/foundation/system/locale.js +288 -0
- data/frameworks/sproutcore/frameworks/foundation/system/page.js +106 -0
- data/frameworks/sproutcore/frameworks/foundation/system/ready.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +865 -0
- data/frameworks/sproutcore/frameworks/foundation/system/request.js +255 -0
- data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +368 -0
- data/frameworks/sproutcore/frameworks/foundation/system/routes.js +446 -0
- data/frameworks/sproutcore/frameworks/foundation/system/time.js +478 -0
- data/frameworks/sproutcore/frameworks/foundation/system/timer.js +549 -0
- data/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/system/utils.js +330 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array.js +118 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/controller.js +268 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/content.js +195 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/content.js +168 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/builder.js +42 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +1323 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +387 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +405 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +49 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/within.js +66 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/error.js +41 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/json.js +14 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/locale.js +128 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/begin.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/element.js +44 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +119 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +179 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +100 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/init.js +55 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/join.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/push_text.js +74 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +205 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeKeyPane.js +124 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMainPane.js +68 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/targetForAction.js +238 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invalidate.js +38 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +201 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/isPaused.js +71 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/performAction.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +170 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +27 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js +18 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js +62 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +21 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/number.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/password.js +13 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +39 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +31 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/firstResponder.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/keyPane.js +133 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +165 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +132 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +246 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +87 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/destroyLayer.js +85 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/init.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/insertBefore.js +200 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +102 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layer.js +150 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutChildViews.js +162 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutDidChange.js +127 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +248 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/parentViewDidChange.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +166 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/removeChild.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/replaceChild.js +29 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +142 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +194 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +185 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +125 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/date.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/email.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/number.js +82 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/password.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/validator.js +311 -0
- data/frameworks/sproutcore/frameworks/foundation/views/container.js +136 -0
- data/frameworks/sproutcore/frameworks/foundation/views/field.js +276 -0
- data/frameworks/sproutcore/frameworks/foundation/views/image.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/views/label.js +261 -0
- data/frameworks/sproutcore/frameworks/foundation/views/view.js +2160 -0
- data/frameworks/sproutcore/frameworks/mobile/english.lproj/core.css +12 -0
- data/frameworks/sproutcore/frameworks/mobile/lib/index.rhtml +126 -0
- data/frameworks/sproutcore/frameworks/mobile/system/root_responder.js +109 -0
- data/frameworks/sproutcore/frameworks/mobile/tests/views/button/ui.js +9 -0
- data/frameworks/sproutcore/frameworks/mobile/views/button.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/README +11 -0
- data/frameworks/sproutcore/frameworks/runtime/core.js +777 -0
- data/frameworks/sproutcore/frameworks/runtime/license.js +28 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +403 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +70 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1193 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1149 -0
- data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +108 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +128 -0
- data/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +131 -0
- data/frameworks/sproutcore/frameworks/runtime/system/binding.js +891 -0
- data/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +107 -0
- data/frameworks/sproutcore/frameworks/runtime/system/object.js +783 -0
- data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +99 -0
- data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +214 -0
- data/frameworks/sproutcore/frameworks/runtime/system/set.js +246 -0
- data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +286 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +56 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/beget.js +23 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +66 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +147 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +27 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +25 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +20 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +30 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +19 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +37 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +592 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +467 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +123 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +79 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +80 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/array.js +263 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +339 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +120 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +313 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +84 -0
- data/frameworks/sproutcore/frameworks/testing/core.js +13 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/additions.css +8 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/testsuite.css +131 -0
- data/frameworks/sproutcore/frameworks/testing/extras.js +43 -0
- data/frameworks/sproutcore/frameworks/testing/jquery.js +3559 -0
- data/frameworks/sproutcore/frameworks/testing/qunit.js +819 -0
- data/frameworks/sproutcore/frameworks/testing/tests/debug/qunit.js +25 -0
- data/frameworks/sproutcore/frameworks/testing/utils.js +55 -0
- data/frameworks/sproutcore/lib/index.rhtml +118 -0
- data/frameworks/sproutcore/license.js +28 -0
- data/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +69 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/button.css +41 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +8 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/backButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/blueButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/cancel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/grayButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/leftButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrow.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrowSel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listGroup.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/loading.gif +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/pinstripes.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/rightButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/selection.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/thumb.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggle.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggleOn.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolbar.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/whiteButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/button.css +333 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +90 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +53 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +47 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/disclosure.css +55 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-ysprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-toolbar-view.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/label.css +37 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +8 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-fat.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-thin.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/left-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/overlay.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/right-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +23 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +113 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +62 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/split_view.css +27 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +13 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +4 -0
- data/lib/thor/.autotest +7 -0
- data/lib/thor/CHANGELOG.rdoc +52 -0
- data/lib/thor/LICENSE +20 -0
- data/lib/thor/README.markdown +76 -0
- data/lib/thor/Rakefile +6 -0
- data/lib/thor/Thorfile +45 -0
- data/lib/thor/bin/rake2thor +83 -0
- data/lib/thor/bin/thor +7 -0
- data/lib/thor/lib/thor/error.rb +3 -0
- data/lib/thor/lib/thor/options.rb +267 -0
- data/lib/thor/lib/thor/ordered_hash.rb +64 -0
- data/lib/thor/lib/thor/runner.rb +305 -0
- data/lib/thor/lib/thor/task.rb +83 -0
- data/lib/thor/lib/thor/task_hash.rb +22 -0
- data/lib/thor/lib/thor/tasks/package.rb +18 -0
- data/lib/thor/lib/thor/tasks.rb +77 -0
- data/lib/thor/lib/thor/util.rb +75 -0
- data/lib/thor/lib/thor.rb +170 -0
- data/lib/thor/script/destroy +14 -0
- data/lib/thor/script/generate +14 -0
- data/lib/thor/spec/fixtures/task.thor +10 -0
- data/lib/thor/spec/options_spec.rb +271 -0
- data/lib/thor/spec/ordered_hash_spec.rb +84 -0
- data/lib/thor/spec/spec.opts +1 -0
- data/lib/thor/spec/spec_helper.rb +30 -0
- data/lib/thor/spec/task_spec.rb +11 -0
- data/lib/thor/spec/tasks_spec.rb +28 -0
- data/lib/thor/spec/thor_runner_spec.rb +194 -0
- data/lib/thor/spec/thor_spec.rb +206 -0
- data/lib/thor/spec/util_spec.rb +99 -0
- data/lib/thor/task.thor +15 -0
- data/lib/thor/thor.gemspec +29 -0
- metadata +3 -4
- data/sproutcore.gemspec +0 -47
@@ -0,0 +1,361 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2009 Apple, Inc. All rights reserved.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
sc_require('models/record');
|
9
|
+
|
10
|
+
/** @class
|
11
|
+
|
12
|
+
A RecordAttribute describes a single attribute on a record. It is used to
|
13
|
+
generate computed properties on records that can automatically convert data
|
14
|
+
types and verify data.
|
15
|
+
|
16
|
+
You usually will not work with RecordAttribute objects directly, though you
|
17
|
+
may extend the class in any way that you like to create a custom attribute.
|
18
|
+
|
19
|
+
A number of default RecordAttribute types are defined on the SC.Record.
|
20
|
+
|
21
|
+
@extends SC.Object
|
22
|
+
@since SproutCore 1.0
|
23
|
+
*/
|
24
|
+
SC.RecordAttribute = SC.Object.extend(
|
25
|
+
/** @scope SC.RecordAttribute.prototype */ {
|
26
|
+
|
27
|
+
/**
|
28
|
+
The default value. If attribute is null or undefined, this default value
|
29
|
+
will be substituted instead. Note that defaultValues are not converted
|
30
|
+
so the value should be in the output type expected by the attribute.
|
31
|
+
|
32
|
+
@property {Object}
|
33
|
+
*/
|
34
|
+
defaultValue: null,
|
35
|
+
|
36
|
+
/**
|
37
|
+
The attribute type. Must be either an object class or a property path
|
38
|
+
naming a class. The built in handler allows all native types to pass
|
39
|
+
through, converts records to ids and dates to UTF strings.
|
40
|
+
|
41
|
+
If you use the attr() helper method to create a RecordAttribute instance,
|
42
|
+
it will set this property to the first parameter you pass.
|
43
|
+
|
44
|
+
@property {Object|String}
|
45
|
+
*/
|
46
|
+
type: String,
|
47
|
+
|
48
|
+
/**
|
49
|
+
The underlying attribute key name this attribute should manage. If this
|
50
|
+
property is left empty, then the key will be whatever property name this
|
51
|
+
attribute assigned to on the record. If you need to provide some kind
|
52
|
+
of alternate mapping, this provides you a way to override it.
|
53
|
+
|
54
|
+
@property {String}
|
55
|
+
*/
|
56
|
+
key: null,
|
57
|
+
|
58
|
+
/**
|
59
|
+
If YES, then the attribute is required and will fail validation unless
|
60
|
+
the property is set to a non-null or undefined value.
|
61
|
+
|
62
|
+
@property {Boolean}
|
63
|
+
*/
|
64
|
+
isRequired: NO,
|
65
|
+
|
66
|
+
/**
|
67
|
+
If NO then attempts to edit the attribute will be ignored.
|
68
|
+
|
69
|
+
@property {Boolean}
|
70
|
+
*/
|
71
|
+
isEditable: YES,
|
72
|
+
|
73
|
+
/**
|
74
|
+
If set when using the Date format, expect the ISO8601 date format.
|
75
|
+
This is the default.
|
76
|
+
|
77
|
+
@property {Boolean}
|
78
|
+
*/
|
79
|
+
useIsoDate: YES,
|
80
|
+
|
81
|
+
// ..........................................................
|
82
|
+
// HELPER PROPERTIES
|
83
|
+
//
|
84
|
+
|
85
|
+
/**
|
86
|
+
Returns the type, resolved to a class. If the type property is a regular
|
87
|
+
class, returns the type unchanged. Otherwise attempts to lookup the
|
88
|
+
type as a property path.
|
89
|
+
|
90
|
+
@property {Object}
|
91
|
+
*/
|
92
|
+
typeClass: function() {
|
93
|
+
var ret = this.get('type');
|
94
|
+
if (SC.typeOf(ret) === SC.T_STRING) ret = SC.objectForPropertyPath(ret);
|
95
|
+
return ret ;
|
96
|
+
}.property('type').cacheable(),
|
97
|
+
|
98
|
+
/**
|
99
|
+
Finds the transform handler.
|
100
|
+
*/
|
101
|
+
transform: function() {
|
102
|
+
var klass = this.get('typeClass') || String,
|
103
|
+
transforms = SC.RecordAttribute.transforms,
|
104
|
+
ret ;
|
105
|
+
|
106
|
+
// walk up class hierarchy looking for a transform handler
|
107
|
+
while(klass && !(ret = transforms[SC.guidFor(klass)])) {
|
108
|
+
klass = klass.superclass ;
|
109
|
+
}
|
110
|
+
|
111
|
+
return ret ;
|
112
|
+
}.property('typeClass').cacheable(),
|
113
|
+
|
114
|
+
// ..........................................................
|
115
|
+
// LOW-LEVEL METHODS
|
116
|
+
//
|
117
|
+
|
118
|
+
/**
|
119
|
+
Converts the passed value into the core attribute value. This will apply
|
120
|
+
any format transforms. You can install standard transforms by adding to
|
121
|
+
the SC.RecordAttribute.transforms hash. See
|
122
|
+
SC.RecordAttribute.registerTransform() for more.
|
123
|
+
|
124
|
+
@param {SC.Record} record the record instance
|
125
|
+
@param {String} key the key used to access this attribute on the record
|
126
|
+
@param {Object} value the property value
|
127
|
+
@returns {Object} attribute value
|
128
|
+
*/
|
129
|
+
toType: function(record, key, value) {
|
130
|
+
var transform = this.get('transform'),
|
131
|
+
type = this.get('typeClass');
|
132
|
+
if (transform && transform.to) {
|
133
|
+
value = transform.to(value, this, type, record, key) ;
|
134
|
+
}
|
135
|
+
return value ;
|
136
|
+
},
|
137
|
+
|
138
|
+
/**
|
139
|
+
Converts the passed value from the core attribute value. This will apply
|
140
|
+
any format transforms. You can install standard transforms by adding to
|
141
|
+
the SC.RecordAttribute.transforms hash. See
|
142
|
+
SC.RecordAttribute.registerTransform() for more.
|
143
|
+
|
144
|
+
@param {SC.Record} record the record instance
|
145
|
+
@param {String} key the key used to access this attribute on the record
|
146
|
+
@param {Object} value the property value
|
147
|
+
@returns {Object} attribute value
|
148
|
+
*/
|
149
|
+
fromType: function(record, key, value) {
|
150
|
+
var transform = this.get('transform'),
|
151
|
+
type = this.get('typeClass');
|
152
|
+
if (transform && transform.from) {
|
153
|
+
value = transform.from(value, this, type, record, key);
|
154
|
+
}
|
155
|
+
return value;
|
156
|
+
},
|
157
|
+
|
158
|
+
/**
|
159
|
+
The core handler. Called from the property.
|
160
|
+
|
161
|
+
@param {SC.Record} record the record instance
|
162
|
+
@param {String} key the key used to access this attribute on the record
|
163
|
+
@param {Object} value the property value if called as a setter
|
164
|
+
@returns {Object} property value
|
165
|
+
*/
|
166
|
+
call: function(record, key, value) {
|
167
|
+
var attrKey = this.get('key') || key;
|
168
|
+
|
169
|
+
if (value !== undefined) {
|
170
|
+
value = this.fromType(record, key, value) ; // convert to attribute.
|
171
|
+
record.writeAttribute(attrKey, value);
|
172
|
+
} else {
|
173
|
+
value = record.readAttribute(attrKey);
|
174
|
+
if (SC.none(value) && (value = this.get('defaultValue'))) {
|
175
|
+
if (typeof value === SC.T_FUNCTION) {
|
176
|
+
value = this.defaultValue(record, key, this);
|
177
|
+
}
|
178
|
+
} else value = this.toType(record, key, value);
|
179
|
+
}
|
180
|
+
return value ;
|
181
|
+
},
|
182
|
+
|
183
|
+
// ..........................................................
|
184
|
+
// INTERNAL SUPPORT
|
185
|
+
//
|
186
|
+
|
187
|
+
/** @private - Make this look like a property so that get() will call it. */
|
188
|
+
isProperty: YES,
|
189
|
+
|
190
|
+
/** @private - Make this look cacheable */
|
191
|
+
isCacheable: YES,
|
192
|
+
|
193
|
+
/** @private - needed for KVO property() support */
|
194
|
+
dependentKeys: [],
|
195
|
+
|
196
|
+
/** @private */
|
197
|
+
init: function() {
|
198
|
+
sc_super();
|
199
|
+
// setup some internal properties needed for KVO - faking 'cacheable'
|
200
|
+
this.cacheKey = "__cache__" + SC.guidFor(this) ;
|
201
|
+
this.lastSetValueKey = "__lastValue__" + SC.guidFor(this) ;
|
202
|
+
}
|
203
|
+
|
204
|
+
}) ;
|
205
|
+
|
206
|
+
// ..........................................................
|
207
|
+
// CLASS METHODS
|
208
|
+
//
|
209
|
+
|
210
|
+
/**
|
211
|
+
The default method used to create a record attribute instance. Unlike
|
212
|
+
create(), takes an attributeType as the first parameter which will be set
|
213
|
+
on the attribute itself. You can pass a string naming a class or a class
|
214
|
+
itself.
|
215
|
+
|
216
|
+
@param {Object|String} attributeType the assumed attribute type
|
217
|
+
@param {Hash} opts optional additional config options
|
218
|
+
@returns {SC.RecordAttribute} new instance
|
219
|
+
*/
|
220
|
+
SC.RecordAttribute.attr = function(attributeType, opts) {
|
221
|
+
if (!opts) opts = {} ;
|
222
|
+
if (!opts.type) opts.type = attributeType || String ;
|
223
|
+
return this.create(opts);
|
224
|
+
};
|
225
|
+
|
226
|
+
/** @private
|
227
|
+
Hash of registered transforms by class guid.
|
228
|
+
*/
|
229
|
+
SC.RecordAttribute.transforms = {};
|
230
|
+
|
231
|
+
/**
|
232
|
+
Call to register a transform handler for a specific type of object. The
|
233
|
+
object you pass can be of any type as long as it responds to the following
|
234
|
+
methods:
|
235
|
+
|
236
|
+
| *to(value, attr, klass, record, key)* | converts the passed value (which will be of the class expected by the attribute) into the underlying attribute value |
|
237
|
+
| *from(value, attr, klass, record, key)* | converts the underyling attribute value into a value of the class |
|
238
|
+
|
239
|
+
@param {Object} klass the type of object you convert
|
240
|
+
@param {Object} transform the transform object
|
241
|
+
@returns {SC.RecordAttribute} receiver
|
242
|
+
*/
|
243
|
+
SC.RecordAttribute.registerTransform = function(klass, transform) {
|
244
|
+
SC.RecordAttribute.transforms[SC.guidFor(klass)] = transform;
|
245
|
+
};
|
246
|
+
|
247
|
+
// ..........................................................
|
248
|
+
// STANDARD ATTRIBUTE TRANSFORMS
|
249
|
+
//
|
250
|
+
|
251
|
+
// Object, String, Number just pass through.
|
252
|
+
|
253
|
+
/** @private - generic converter for Boolean records */
|
254
|
+
SC.RecordAttribute.registerTransform(Boolean, {
|
255
|
+
/** @private - convert an arbitrary object value to a boolean */
|
256
|
+
to: function(obj) {
|
257
|
+
return SC.none(obj) ? null : !!obj;
|
258
|
+
}
|
259
|
+
});
|
260
|
+
|
261
|
+
/** @private - generic converter for Numbers */
|
262
|
+
SC.RecordAttribute.registerTransform(Number, {
|
263
|
+
/** @private - convert an arbitrary object value to a Number */
|
264
|
+
to: function(obj) {
|
265
|
+
return SC.none(obj) ? null : Number(obj) ;
|
266
|
+
}
|
267
|
+
});
|
268
|
+
|
269
|
+
/** @private - generic converter for Strings */
|
270
|
+
SC.RecordAttribute.registerTransform(String, {
|
271
|
+
/** @private -
|
272
|
+
convert an arbitrary object value to a String
|
273
|
+
allow null through as that will be checked separately
|
274
|
+
*/
|
275
|
+
to: function(obj) {
|
276
|
+
if (!(typeof obj === SC.T_STRING) && !SC.none(obj) && obj.toString) {
|
277
|
+
obj = obj.toString();
|
278
|
+
}
|
279
|
+
return obj;
|
280
|
+
}
|
281
|
+
});
|
282
|
+
|
283
|
+
/** @private - generic converter for SC.Record-type records */
|
284
|
+
SC.RecordAttribute.registerTransform(SC.Record, {
|
285
|
+
|
286
|
+
/** @private - convert a record id to a record instance */
|
287
|
+
to: function(id, attr, recordType, parentRecord) {
|
288
|
+
var store = parentRecord.get('store');
|
289
|
+
return store.find(recordType, id);
|
290
|
+
},
|
291
|
+
|
292
|
+
/** @private - convert a record instance to a record id */
|
293
|
+
from: function(record) { return record.get('id'); }
|
294
|
+
});
|
295
|
+
|
296
|
+
/** @private - generic converter for Date records */
|
297
|
+
SC.RecordAttribute.registerTransform(Date, {
|
298
|
+
|
299
|
+
/** @private - convert a string to a Date */
|
300
|
+
to: function(str, attr) {
|
301
|
+
var ret ;
|
302
|
+
|
303
|
+
if (attr.get('useIsoDate')) {
|
304
|
+
var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
|
305
|
+
"(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\\.([0-9]+))?)?" +
|
306
|
+
"(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?",
|
307
|
+
d = str.match(new RegExp(regexp)),
|
308
|
+
offset = 0,
|
309
|
+
date = new Date(d[1], 0, 1),
|
310
|
+
time ;
|
311
|
+
|
312
|
+
if (d[3]) { date.setMonth(d[3] - 1); }
|
313
|
+
if (d[5]) { date.setDate(d[5]); }
|
314
|
+
if (d[7]) { date.setHours(d[7]); }
|
315
|
+
if (d[8]) { date.setMinutes(d[8]); }
|
316
|
+
if (d[10]) { date.setSeconds(d[10]); }
|
317
|
+
if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
|
318
|
+
if (d[14]) {
|
319
|
+
offset = (Number(d[16]) * 60) + Number(d[17]);
|
320
|
+
offset *= ((d[15] == '-') ? 1 : -1);
|
321
|
+
}
|
322
|
+
|
323
|
+
offset -= date.getTimezoneOffset();
|
324
|
+
time = (Number(date) + (offset * 60 * 1000));
|
325
|
+
|
326
|
+
ret = new Date();
|
327
|
+
ret.setTime(Number(time));
|
328
|
+
} else ret = Date.parse(str);
|
329
|
+
return ret ;
|
330
|
+
},
|
331
|
+
|
332
|
+
_dates: {},
|
333
|
+
|
334
|
+
_zeropad: function(num) {
|
335
|
+
return ((num<0) ? '-' : '') + ((num<10) ? '0' : '') + Math.abs(num);
|
336
|
+
},
|
337
|
+
|
338
|
+
/** @private - convert a date to a string */
|
339
|
+
from: function(date) {
|
340
|
+
var ret = this._dates[date.getTime()];
|
341
|
+
if (ret) return ret ;
|
342
|
+
|
343
|
+
// figure timezone
|
344
|
+
var zp = this._zeropad,
|
345
|
+
tz = 0-date.getTimezoneOffset()/60;
|
346
|
+
|
347
|
+
tz = (tz === 0) ? 'Z' : '%@:00'.fmt(zp(tz));
|
348
|
+
|
349
|
+
this._dates[date.getTime()] = ret = "%@-%@-%@T%@:%@:%@%@".fmt(
|
350
|
+
zp(date.getFullYear()),
|
351
|
+
zp(date.getMonth()+1),
|
352
|
+
zp(date.getDate()),
|
353
|
+
zp(date.getHours()),
|
354
|
+
zp(date.getMinutes()),
|
355
|
+
zp(date.getSeconds()),
|
356
|
+
tz) ;
|
357
|
+
|
358
|
+
return ret ;
|
359
|
+
}
|
360
|
+
});
|
361
|
+
|
@@ -0,0 +1,305 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2009 Apple, Inc. All rights reserved.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
sc_require('system/store');
|
9
|
+
|
10
|
+
/**
|
11
|
+
@class
|
12
|
+
|
13
|
+
A nested store can buffer changes to a parent store and then commit them
|
14
|
+
all at once. You usually will use a NestedStore as part of store chaining
|
15
|
+
to stage changes to your object graph before sharing them with the rest of
|
16
|
+
the application.
|
17
|
+
|
18
|
+
Normally you will not create a nested store directly. Instead, you can
|
19
|
+
retrieve a nested store by using the chain() method. When you are finished
|
20
|
+
working with the nested store, destroy() will dispose of it.
|
21
|
+
|
22
|
+
@extends SC.Store
|
23
|
+
@since SproutCore 1.0
|
24
|
+
*/
|
25
|
+
SC.NestedStore = SC.Store.extend(
|
26
|
+
/** @scope SC.NestedStore.prototype */ {
|
27
|
+
|
28
|
+
/**
|
29
|
+
This is set to YES when there are changes that have not been committed
|
30
|
+
yet.
|
31
|
+
|
32
|
+
@property
|
33
|
+
@type {Boolean}
|
34
|
+
@default NO
|
35
|
+
*/
|
36
|
+
hasChanges: NO,
|
37
|
+
|
38
|
+
/**
|
39
|
+
The parent store this nested store is chained to. Nested stores must have
|
40
|
+
a parent store in order to function properly. Normally, you create a
|
41
|
+
nested store using the SC.Store#chain() method and this property will be
|
42
|
+
set for you.
|
43
|
+
|
44
|
+
@property {SC.Store}
|
45
|
+
*/
|
46
|
+
parentStore: null,
|
47
|
+
|
48
|
+
/**
|
49
|
+
YES if the view is nested. Walk like a duck
|
50
|
+
*/
|
51
|
+
isNested: YES,
|
52
|
+
|
53
|
+
/**
|
54
|
+
If YES, then the attribute hash state will be locked when you first
|
55
|
+
read the data hash or status. This means that if you retrieve a record
|
56
|
+
then change the record in the parent store, the changes will not be
|
57
|
+
visible to your nested store until you commit or discard changes.
|
58
|
+
|
59
|
+
If NO, then the attribute hash will lock only when you write data.
|
60
|
+
|
61
|
+
Normally you want to lock your attribute hash the first time you read it.
|
62
|
+
This will make your nested store behave most consistently. However, if
|
63
|
+
you are using multiple sibling nested stores at one time, you may want
|
64
|
+
to turn off this property so that changes from one store will be reflected
|
65
|
+
in the other one immediately. In this case you will be responsible for
|
66
|
+
ensuring that the sibling stores do not edit the same part of the object
|
67
|
+
graph at the same time.
|
68
|
+
|
69
|
+
@property {Boolean}
|
70
|
+
*/
|
71
|
+
lockOnRead: YES,
|
72
|
+
|
73
|
+
/** @private
|
74
|
+
Array contains the base revision for an attribute hash when it was first
|
75
|
+
cloned from the parent store. If the attribute hash is edited and
|
76
|
+
commited, the commit will fail if the parent attributes hash has been
|
77
|
+
edited since.
|
78
|
+
|
79
|
+
This is a form of optimistic locking, hence the name.
|
80
|
+
|
81
|
+
Each store gets its own array of locks, which are selectively populated
|
82
|
+
as needed.
|
83
|
+
|
84
|
+
Note that this is kept as an array because it will be stored as a dense
|
85
|
+
array on some browsers, making it faster.
|
86
|
+
|
87
|
+
@property {Array}
|
88
|
+
*/
|
89
|
+
locks: null,
|
90
|
+
|
91
|
+
/** @private
|
92
|
+
An array that includes the store keys that have changed since the store
|
93
|
+
was last committed. This array is used to sync data hash changes between
|
94
|
+
chained stores. For a log changes that may actually be committed back to
|
95
|
+
the server see the changelog property.
|
96
|
+
|
97
|
+
@property {Array}
|
98
|
+
*/
|
99
|
+
chainedChanges: null,
|
100
|
+
|
101
|
+
// ..........................................................
|
102
|
+
// STORE CHAINING
|
103
|
+
//
|
104
|
+
|
105
|
+
/**
|
106
|
+
Resets a store's data hash contents to match its parent.
|
107
|
+
|
108
|
+
@returns {SC.Store} receiver
|
109
|
+
*/
|
110
|
+
reset: function() {
|
111
|
+
console.error('not implemented');
|
112
|
+
},
|
113
|
+
|
114
|
+
/**
|
115
|
+
Propagate this store's changes to it's parent. If the store does not
|
116
|
+
have a parent, this has no effect other than to clear the change set.
|
117
|
+
|
118
|
+
@param {Boolean} force if YES, does not check for conflicts first
|
119
|
+
@returns {SC.Store} receiver
|
120
|
+
*/
|
121
|
+
commitChanges: function(force) {
|
122
|
+
var pstore = this.get('parentStore');
|
123
|
+
pstore.commitChangesFromNestedStore(this, this.chainedChanges, force);
|
124
|
+
this.reset(); // clear out custom changes
|
125
|
+
return this ;
|
126
|
+
},
|
127
|
+
|
128
|
+
/**
|
129
|
+
Discard the changes made to this store and reset the store.
|
130
|
+
|
131
|
+
@returns {SC.Store} receiver
|
132
|
+
*/
|
133
|
+
discardChanges: function() {
|
134
|
+
console.error('not implemented');
|
135
|
+
},
|
136
|
+
|
137
|
+
/**
|
138
|
+
When you are finished working with a chained store, call this method to
|
139
|
+
tear it down. This will also discard any pending changes.
|
140
|
+
|
141
|
+
@returns {SC.Store} receiver
|
142
|
+
*/
|
143
|
+
destroy: function() {
|
144
|
+
console.error('not implemented');
|
145
|
+
},
|
146
|
+
|
147
|
+
/**
|
148
|
+
Resets a store's data hash contents to match its parent.
|
149
|
+
|
150
|
+
@returns {SC.Store} receiver
|
151
|
+
*/
|
152
|
+
reset: function() {
|
153
|
+
console.error('not implemented');
|
154
|
+
},
|
155
|
+
|
156
|
+
// ..........................................................
|
157
|
+
// CORE ATTRIBUTE API
|
158
|
+
//
|
159
|
+
// The methods in this layer work on data hashes in the store. They do not
|
160
|
+
// perform any changes that can impact records. Usually you will not need
|
161
|
+
// to use these methods.
|
162
|
+
|
163
|
+
/**
|
164
|
+
Returns the current edit status of a storekey. May be one of INHERITED,
|
165
|
+
EDITABLE, and LOCKED. Used mostly for unit testing.
|
166
|
+
|
167
|
+
@param {Number} storeKey the store key
|
168
|
+
@returns {Number} edit status
|
169
|
+
*/
|
170
|
+
storeKeyEditState: function(storeKey) {
|
171
|
+
console.error('not implemented');
|
172
|
+
},
|
173
|
+
|
174
|
+
/** @private
|
175
|
+
Locks the data hash so that it iterates independently from the parent
|
176
|
+
store.
|
177
|
+
*/
|
178
|
+
_lock: function(storeKey) {
|
179
|
+
console.error('not implemented');
|
180
|
+
},
|
181
|
+
|
182
|
+
/** @private - adds chaining support */
|
183
|
+
readDataHash: function(storeKey) {
|
184
|
+
console.error('not implemented');
|
185
|
+
},
|
186
|
+
|
187
|
+
/** @private - adds chaining support */
|
188
|
+
readEditableDataHash: function(storeKey) {
|
189
|
+
console.error('not implemented');
|
190
|
+
},
|
191
|
+
|
192
|
+
/** @private - adds chaining support -
|
193
|
+
Does not call sc_super because the implementation of the method vary too
|
194
|
+
much.
|
195
|
+
*/
|
196
|
+
writeDataHash: function(storeKey, hash, status) {
|
197
|
+
console.error('not implemented');
|
198
|
+
},
|
199
|
+
|
200
|
+
/** @private - adds chaining support */
|
201
|
+
removeDataHash: function(storeKey, status) {
|
202
|
+
console.error('not implemented');
|
203
|
+
},
|
204
|
+
|
205
|
+
/** @private - book-keeping for a single data hash. */
|
206
|
+
dataHashDidChange: function(storeKeys, rev) {
|
207
|
+
console.error('not implemented');
|
208
|
+
},
|
209
|
+
|
210
|
+
// ..........................................................
|
211
|
+
// SYNCING CHANGES
|
212
|
+
//
|
213
|
+
|
214
|
+
/** @private - adapt for nested store */
|
215
|
+
commitChangesFromNestedStore: function(nestedStore, changes, force) {
|
216
|
+
console.error('not implemented');
|
217
|
+
},
|
218
|
+
|
219
|
+
// ..........................................................
|
220
|
+
// HIGH-LEVEL RECORD API
|
221
|
+
//
|
222
|
+
|
223
|
+
|
224
|
+
/** @private - adapt for nested store */
|
225
|
+
findAll: function(queryKey, params, _store) {
|
226
|
+
console.error('not implemented');
|
227
|
+
},
|
228
|
+
|
229
|
+
// ..........................................................
|
230
|
+
// CORE RECORDS API
|
231
|
+
//
|
232
|
+
// The methods in this section can be used to manipulate records without
|
233
|
+
// actually creating record instances.
|
234
|
+
|
235
|
+
/** @private - adapt for nested store */
|
236
|
+
retrieveRecords: function(recordTypes, ids, storeKeys, _isRefresh) {
|
237
|
+
console.error('not implemented');
|
238
|
+
},
|
239
|
+
|
240
|
+
/** @private - adapt for nested store */
|
241
|
+
commitRecords: function(recordTypes, ids, storeKeys) {
|
242
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
243
|
+
},
|
244
|
+
|
245
|
+
/** @private - adapt for nested store */
|
246
|
+
commitRecord: function(recordType, id, storeKey) {
|
247
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
248
|
+
},
|
249
|
+
|
250
|
+
/** @private - adapt for nested store */
|
251
|
+
cancelRecords: function(recordTypes, ids, storeKeys) {
|
252
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
253
|
+
},
|
254
|
+
|
255
|
+
/** @private - adapt for nested store */
|
256
|
+
cancelRecord: function(recordType, id, storeKey) {
|
257
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
258
|
+
},
|
259
|
+
|
260
|
+
// ..........................................................
|
261
|
+
// DATA SOURCE CALLBACKS
|
262
|
+
//
|
263
|
+
// Mathods called by the data source on the store
|
264
|
+
|
265
|
+
/** @private - adapt for nested store */
|
266
|
+
dataSourceDidCancel: function(storeKey) {
|
267
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
268
|
+
},
|
269
|
+
|
270
|
+
/** @private - adapt for nested store */
|
271
|
+
dataSourceDidComplete: function(storeKey, dataHash, newId) {
|
272
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
273
|
+
},
|
274
|
+
|
275
|
+
/** @private - adapt for nested store */
|
276
|
+
dataSourceDidDestroy: function(storeKey) {
|
277
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
278
|
+
},
|
279
|
+
|
280
|
+
/** @private - adapt for nested store */
|
281
|
+
dataSourceDidError: function(storeKey, error) {
|
282
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
283
|
+
},
|
284
|
+
|
285
|
+
// ..........................................................
|
286
|
+
// PUSH CHANGES FROM DATA SOURCE
|
287
|
+
//
|
288
|
+
|
289
|
+
/** @private - adapt for nested store */
|
290
|
+
pushRetrieve: function(recordType, id, dataHash, storeKey) {
|
291
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
292
|
+
},
|
293
|
+
|
294
|
+
/** @private - adapt for nested store */
|
295
|
+
pushDestroy: function(recordType, id, storeKey) {
|
296
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
297
|
+
},
|
298
|
+
|
299
|
+
/** @private - adapt for nested store */
|
300
|
+
pushError: function(recordType, id, error, storeKey) {
|
301
|
+
throw SC.Store.NESTED_STORE_UNSUPPORTED_ERROR;
|
302
|
+
}
|
303
|
+
|
304
|
+
}) ;
|
305
|
+
|