sproutit-sproutcore 1.0.0.20090416161445 → 1.0.0.20090720093355
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/Buildfile +4 -2
- data/frameworks/sproutcore/Buildfile +3 -2
- data/frameworks/sproutcore/README +2 -1
- data/frameworks/sproutcore/apps/docs/core.js +27 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Preview.pdf +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/data.plist +14378 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image10.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image11.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image13.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image14.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image8.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image9.tiff +0 -0
- data/frameworks/sproutcore/apps/docs/english.lproj/loading.rhtml +9 -0
- data/frameworks/sproutcore/apps/docs/english.lproj/main_page.js +22 -0
- data/frameworks/sproutcore/apps/{sc_jsdoc → docs}/english.lproj/strings.js +7 -7
- data/frameworks/sproutcore/apps/docs/main.js +30 -0
- data/frameworks/sproutcore/apps/tests/controllers/detail.js +16 -0
- data/frameworks/sproutcore/apps/tests/controllers/source.js +29 -0
- data/frameworks/sproutcore/apps/tests/controllers/target.js +26 -0
- data/frameworks/sproutcore/apps/tests/controllers/targets.js +65 -26
- data/frameworks/sproutcore/apps/tests/controllers/tests.js +14 -19
- data/frameworks/sproutcore/apps/tests/core.js +114 -16
- data/frameworks/sproutcore/apps/tests/data_source.js +96 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +22 -2
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +168 -22
- data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +14 -5
- data/frameworks/sproutcore/apps/tests/fixtures/target.js +81 -37
- data/frameworks/sproutcore/apps/tests/fixtures/test.js +38 -37
- data/frameworks/sproutcore/apps/tests/main.js +9 -20
- data/frameworks/sproutcore/apps/tests/models/target.js +74 -31
- data/frameworks/sproutcore/apps/tests/models/test.js +30 -2
- data/frameworks/sproutcore/{frameworks/desktop/mixins/collection_item.js → apps/tests/states/no_targets.js} +16 -12
- data/frameworks/sproutcore/apps/tests/states/ready.js +56 -0
- data/frameworks/sproutcore/apps/tests/states/ready_detail.js +41 -0
- data/frameworks/sproutcore/apps/tests/states/ready_empty.js +48 -0
- data/frameworks/sproutcore/apps/tests/states/ready_list.js +41 -0
- data/frameworks/sproutcore/apps/tests/states/ready_loading.js +44 -0
- data/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +31 -0
- data/frameworks/sproutcore/apps/tests/states/start.js +39 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/{test.js → detail.js} +3 -3
- data/frameworks/sproutcore/apps/tests/tests/controllers/source.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/target.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +3 -3
- data/frameworks/sproutcore/apps/tests/tests/views/offset_checkbox.js +15 -0
- data/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +26 -0
- data/frameworks/sproutcore/design/CollectionView State Charts.graffle +4848 -0
- data/frameworks/sproutcore/design/Design Charts.graffle +8788 -6375
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/QuickLook/Preview.pdf +0 -0
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/data.plist +1452 -0
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/image8.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/QuickLook/Preview.pdf +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/data.plist +24187 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image10.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image11.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image13.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image15.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image16.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image17.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image18.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image19.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image22.tiff +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image23.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image24.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image25.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image30.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image31.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image8.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image9.png +0 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +2 -2
- data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +66 -49
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +146 -31
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures_with_queries.js +238 -0
- data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +27 -11
- data/frameworks/sproutcore/frameworks/datastore/models/record.js +163 -32
- data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +67 -5
- data/frameworks/sproutcore/frameworks/datastore/system/many_array.js +157 -0
- data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +202 -19
- data/frameworks/sproutcore/frameworks/datastore/system/query.js +929 -78
- data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +143 -5
- data/frameworks/sproutcore/frameworks/datastore/system/store.js +443 -125
- data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +38 -3
- data/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +94 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +30 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +238 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +105 -16
- data/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +178 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +1 -1
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +9 -8
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +6 -6
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +6 -6
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +3 -3
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +7 -7
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +4 -4
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +7 -7
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +7 -7
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare_records.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +165 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation_of_records.js +82 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/find_all.js +362 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/parsing.js +170 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/record_type_is.js +43 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_comparisons.js +60 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_query_extensions.js +67 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +2 -13
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +3 -4
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +73 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +15 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +4 -2
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +1 -1
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +2 -2
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +1 -1
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +2 -2
- data/frameworks/sproutcore/frameworks/debug/core.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/core.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/server/server.js +0 -1
- data/frameworks/sproutcore/frameworks/deprecated/system/browser.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/classic_responder.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/event.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/misc.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/object.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/path_module.js +0 -1
- data/frameworks/sproutcore/frameworks/deprecated/system/string.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/coders/design.js +1 -2
- data/frameworks/sproutcore/frameworks/designer/coders/localization.js +1 -2
- data/frameworks/sproutcore/frameworks/designer/coders/object.js +1 -1
- data/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +1 -1
- data/frameworks/sproutcore/frameworks/designer/ext/page.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/ext/view.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +2 -3
- data/frameworks/sproutcore/frameworks/designer/views/designer.js +24 -8
- data/frameworks/sproutcore/frameworks/designer/views/label.js +1 -2
- data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/views/tab.js +1 -2
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +2 -2
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/drag.css +6 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +63 -10
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +5 -4
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/modal.css +5 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +1 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +5 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +1 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css +1 -1
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +61 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +136 -79
- data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +55 -24
- data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +295 -147
- data/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/panes/panel.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +18 -20
- data/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +2 -2
- data/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +4 -4
- data/frameworks/sproutcore/frameworks/desktop/system/drag.js +337 -231
- data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +3 -3
- data/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +2 -2
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +46 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +4 -2
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +5 -6
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +11 -11
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +11 -7
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +9 -9
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +19 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +0 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +249 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deleteSelection.js +82 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deselect.js +199 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +288 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/layerIdFor.js +65 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/length.js +88 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +165 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/nowShowing.js +121 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +177 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/select.js +240 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectNextItem.js +191 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +197 -39
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +141 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +182 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +183 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +133 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js +132 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +56 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +167 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +127 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +30 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +8 -8
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +9 -9
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +45 -6
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +2 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +17 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +44 -29
- data/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +231 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/views/button.js +15 -4
- data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +8 -1
- data/frameworks/sproutcore/frameworks/desktop/views/collection.js +1739 -1123
- data/frameworks/sproutcore/frameworks/desktop/views/form.js +0 -1
- data/frameworks/sproutcore/frameworks/desktop/views/grid.js +13 -11
- data/frameworks/sproutcore/frameworks/desktop/views/list.js +405 -571
- data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +211 -74
- data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +319 -169
- data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +57 -51
- data/frameworks/sproutcore/frameworks/desktop/views/progress.js +2 -2
- data/frameworks/sproutcore/frameworks/desktop/views/scene.js +150 -2
- data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +92 -50
- data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +86 -63
- data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +38 -22
- data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +51 -12
- data/frameworks/sproutcore/frameworks/desktop/views/slider.js +2 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +17 -1087
- data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +3 -3
- data/frameworks/sproutcore/frameworks/desktop/views/split.js +35 -9
- data/frameworks/sproutcore/frameworks/desktop/views/stacked.js +101 -0
- data/frameworks/sproutcore/frameworks/desktop/views/tab.js +23 -22
- data/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +382 -363
- data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +7 -279
- data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +212 -310
- data/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +109 -0
- data/frameworks/sproutcore/frameworks/foundation/core.js +25 -0
- data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +30 -8
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +19 -4
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +219 -3
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +1 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +30 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/english.lproj/text_field.css +19 -3
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +6 -1
- data/frameworks/sproutcore/frameworks/foundation/license.js +19 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +15 -7
- data/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +171 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +5 -5
- data/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +462 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +162 -84
- data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +33 -2
- data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +17 -3
- data/frameworks/sproutcore/frameworks/foundation/mixins/tree_item_content.js +159 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +49 -20
- data/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +887 -0
- data/frameworks/sproutcore/frameworks/foundation/system/application.js +36 -0
- data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +310 -62
- data/frameworks/sproutcore/frameworks/foundation/system/datetime.js +729 -0
- data/frameworks/sproutcore/frameworks/foundation/system/event.js +57 -21
- data/frameworks/sproutcore/frameworks/foundation/system/ready.js +11 -5
- data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +55 -16
- data/frameworks/sproutcore/frameworks/foundation/system/request.js +152 -27
- data/frameworks/sproutcore/frameworks/foundation/system/responder.js +120 -0
- data/frameworks/sproutcore/frameworks/foundation/system/responder_context.js +243 -0
- data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +29 -6
- data/frameworks/sproutcore/frameworks/foundation/system/routes.js +143 -102
- data/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +9 -2
- data/frameworks/sproutcore/frameworks/foundation/system/utils.js +104 -9
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/array_case.js +182 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/enum_case.js +193 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/null_case.js +64 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/single_case.js +136 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/empty_case.js +82 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/multiple_case.js +111 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_case.js +193 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_enumerable_case.js +179 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/outline_case.js +108 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/keyEquivalents.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +128 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +17 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/flat_case.js +325 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/group_case.js +718 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/outline_case.js +484 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +28 -28
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/datetime.js +151 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +2 -2
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +12 -12
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +52 -14
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +27 -23
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +12 -10
- data/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +1 -1
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/tests/views/text_field/methods.js +0 -0
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/tests/views/text_field/ui.js +53 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +1 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisible.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +12 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +83 -3
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +4 -0
- data/frameworks/sproutcore/frameworks/foundation/views/container.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/views/field.js +27 -16
- data/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -1
- data/frameworks/sproutcore/frameworks/foundation/views/label.js +16 -6
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/views/text_field.js +39 -15
- data/frameworks/sproutcore/frameworks/foundation/views/view.js +328 -83
- data/frameworks/sproutcore/frameworks/runtime/README +1 -0
- data/frameworks/sproutcore/frameworks/runtime/core.js +110 -31
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +238 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/indexOf.js +33 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/insertAt.js +121 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/objectAt.js +34 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/popObject.js +50 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/pushObject.js +46 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +371 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeAt.js +100 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeObject.js +49 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +94 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/shiftObject.js +50 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/unshiftObject.js +47 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +320 -110
- data/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +64 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +44 -6
- data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +142 -77
- data/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +104 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +298 -142
- data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +17 -11
- data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +55 -15
- data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +29 -5
- data/frameworks/sproutcore/frameworks/runtime/protocols/observable_protocol.js +40 -0
- data/frameworks/sproutcore/frameworks/runtime/system/binding.js +39 -15
- data/frameworks/sproutcore/frameworks/runtime/system/index_set.js +1166 -0
- data/frameworks/sproutcore/frameworks/runtime/system/object.js +33 -15
- data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +201 -35
- data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +42 -15
- data/frameworks/sproutcore/frameworks/runtime/system/selection_set.js +649 -0
- data/frameworks/sproutcore/frameworks/runtime/system/set.js +183 -54
- data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +20 -11
- data/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +2 -2
- data/frameworks/sproutcore/frameworks/runtime/tests/core/compare.js +44 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/console.js +16 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +1 -1
- data/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +1 -1
- data/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +5 -5
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +57 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +21 -2
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +249 -129
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +11 -2
- data/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +55 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +81 -6
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +195 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/clone.js +43 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/contains.js +74 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/create.js +42 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexAfter.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexBefore.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/intersects.js +74 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/max.js +40 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/min.js +40 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +36 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +189 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/without.js +89 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +1 -1
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +59 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/destroy.js +75 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/objectPropertyDidChange.js +117 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/rangeDidChange.js +110 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/update.js +65 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +3 -3
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/add.js +92 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/copy.js +17 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/indexSetForSource.js +85 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/isEqual.js +60 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/remove.js +87 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +4 -25
- data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +39 -1
- data/frameworks/sproutcore/frameworks/testing/core.js +183 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/runner.css +126 -0
- data/frameworks/sproutcore/frameworks/testing/extras.js +0 -26
- data/frameworks/sproutcore/frameworks/testing/qunit.js +33 -25
- data/frameworks/sproutcore/frameworks/testing/system/dump.js +205 -0
- data/frameworks/sproutcore/frameworks/testing/system/equiv.js +201 -0
- data/frameworks/sproutcore/frameworks/testing/system/plan.js +691 -0
- data/frameworks/sproutcore/frameworks/testing/system/runner.js +209 -0
- data/frameworks/sproutcore/frameworks/testing/system/suite.js +228 -0
- data/frameworks/sproutcore/frameworks/testing/utils.js +8 -1
- data/frameworks/sproutcore/lib/index.rhtml +4 -1
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/100.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/102.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/110.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/120.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/127.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/24.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/26.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/27.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/28.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/29.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/30.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/31.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/33.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/37.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/41.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/99.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/100.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/102.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/110.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/120.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/127.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/24.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/26.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/27.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/28.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/29.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/30.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/31.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/33.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/37.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/41.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/99.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/100.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/102.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/110.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/120.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/127.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/24.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/26.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/27.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/28.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/29.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/30.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/31.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/33.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/37.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/41.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/99.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-repeat-x-2.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-repeat-x.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-sprite.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-ysprite.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/shared-icons.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sproutcore-logo.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sticky-note.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/button.css +191 -193
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +11 -10
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +85 -4
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +15 -2
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-repeat-x.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/label.css +0 -26
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/list_item.css +30 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +9 -6
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +20 -11
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +192 -54
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +56 -24
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +13 -7
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +1 -4
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +4 -1
- data/lib/sproutcore/builders/minify.rb +2 -2
- data/lib/sproutcore/builders/test.rb +1 -1
- data/lib/sproutcore/buildfile.rb +1 -0
- data/lib/sproutcore/rack/dev.rb +1 -1
- data/lib/sproutcore/rack/filesystem.rb +265 -0
- data/lib/sproutcore/rack/proxy.rb +11 -3
- data/lib/sproutcore/rack/service.rb +11 -1
- data/lib/sproutcore/tools.rb +11 -1
- data/lib/sproutcore/tools/server.rb +6 -4
- data/vendor/jsdoc/README.txt +151 -0
- data/vendor/jsdoc/changes.txt +47 -0
- metadata +263 -308
- data/frameworks/sproutcore/apps/sc_jsdoc/controllers/docs.js +0 -149
- data/frameworks/sproutcore/apps/sc_jsdoc/core.js +0 -16
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.css +0 -17
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.js +0 -99
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/main.js +0 -27
- data/frameworks/sproutcore/apps/sc_jsdoc/models/doc.js +0 -21
- data/frameworks/sproutcore/apps/sc_qunit/controllers/runner.js +0 -209
- data/frameworks/sproutcore/apps/sc_qunit/core.js +0 -16
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.css +0 -17
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.js +0 -107
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/strings.js +0 -15
- data/frameworks/sproutcore/apps/sc_qunit/main.js +0 -18
- data/frameworks/sproutcore/apps/sc_qunit/models/test.js +0 -24
- data/frameworks/sproutcore/apps/sc_qunit/views/test_iframe.js +0 -52
- data/frameworks/sproutcore/apps/tests/controllers/test.js +0 -20
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +0 -83
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/palette.css +0 -3
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/methods.js +0 -10
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/methods.js +0 -10
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui.js +0 -110
- data/frameworks/sproutcore/frameworks/foundation/mixins/responder.js +0 -156
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array.js +0 -118
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/controller.js +0 -268
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object.js +0 -433
- data/frameworks/sproutcore/frameworks/runtime/tests/system/array.js +0 -263
- data/frameworks/sproutcore/frameworks/testing/tests/debug/qunit.js +0 -25
- data/spec/buildtasks/manifest/spec_helper.rb +0 -35
- data/spec/buildtasks/target_spec.rb +0 -214
- data/spec/fixtures/builder_tests/Buildfile +0 -15
- data/spec/fixtures/builder_tests/apps/combine_test/a.js +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/b.js +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/c.js +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/a.css +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/b.css +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/c.css +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/bar1_sample.rhtml +0 -2
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/erb_sample.html.erb +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/icons/image.png +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/image.jpg +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/rhtml_sample.rhtml +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/strings.js +0 -4
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/style.css +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/french.lproj/french-icons/fr.png +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/french.lproj/strings.js +0 -4
- data/spec/fixtures/builder_tests/apps/html_test/lib/layout_template.rhtml +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/scripts.js +0 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_static.js +0 -15
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_super.js +0 -4
- data/spec/fixtures/builder_tests/apps/javascript_test/strings.js +0 -7
- data/spec/fixtures/builder_tests/apps/sass_test/sample.sass +0 -3
- data/spec/fixtures/builder_tests/apps/strings_test/lproj/strings.js +0 -8
- data/spec/fixtures/builder_tests/apps/stylesheet_test/build_directives.css +0 -9
- data/spec/fixtures/builder_tests/apps/stylesheet_test/sc_static.css +0 -12
- data/spec/fixtures/builder_tests/apps/test_test/lib/alt_layout.rhtml +0 -1
- data/spec/fixtures/builder_tests/apps/test_test/lib/test_layout.rhtml +0 -3
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test.js +0 -1
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test2.js +0 -1
- data/spec/fixtures/builder_tests/apps/test_test/tests/rhtml_test.rhtml +0 -4
- data/spec/fixtures/builder_tests/frameworks/debug/core.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/debug/english.lproj/dummy.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/qunit/core.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/qunit/english.lproj/dummy.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/strings.js +0 -4
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/test.rhtml +0 -1
- data/spec/fixtures/builder_tests/frameworks/req_target_1/req_js_1.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/req_style_2.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/test.rhtml +0 -1
- data/spec/fixtures/builder_tests/frameworks/req_target_2/javascript.js +0 -1
- data/spec/fixtures/builder_tests/frameworks/req_target_2/lib/alt_layout.rhtml +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/req_js_2.js +0 -0
- data/spec/fixtures/builder_tests/themes/sample_theme/Buildfile +0 -1
- data/spec/fixtures/buildfiles/basic/Buildfile +0 -16
- data/spec/fixtures/buildfiles/basic/task_module.rake +0 -6
- data/spec/fixtures/buildfiles/installed/Buildfile +0 -7
- data/spec/fixtures/buildfiles/installed/Buildfile2 +0 -5
- data/spec/fixtures/buildfiles/project_test/Buildfile +0 -4
- data/spec/fixtures/buildfiles/project_test/not_project/Buildfile +0 -2
- data/spec/fixtures/buildfiles/project_test/not_project/child/PLACEHOLDER +0 -0
- data/spec/fixtures/entry_for_project/Buildfile +0 -1
- data/spec/fixtures/entry_for_project/apps/test_app/frameworks/nested/PLACEHOLDER +0 -0
- data/spec/fixtures/entry_for_project/frameworks/shared/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/Buildfile +0 -8
- data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/Buildfile +0 -5
- data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/foos/not_foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/nested/Buildfile +0 -8
- data/spec/fixtures/find_targets/nested/apps/app1/Buildfile +0 -1
- data/spec/fixtures/find_targets/nested/apps/app1/apps/nested_app/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/clients/client1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/frameworks/framework1/frameworks/framework1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/frameworks/framework2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/themes/theme1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/themes/theme2/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/English.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/FreNCH.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/UnknOWN.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/english.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/french.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/german.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/italian.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/japanese.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/spanish.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/unknown.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/no_names/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/de.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-CA.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-GB.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-US.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/es.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/foo.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/fr.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/it.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/ja.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/1.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/B.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/a.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/a/a.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/a/b.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/b/a.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/c.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/core.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/B.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/b.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/b/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/c.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/lproj/strings.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/utils.js +0 -1
- data/spec/fixtures/ordered_entries/apps/with_requires/a.js +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/b.js +0 -3
- data/spec/fixtures/ordered_entries/apps/with_requires/c.js +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/a.css +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/b.css +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/c.css +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/d.js +0 -1
- data/spec/fixtures/real_world/Buildfile +0 -12
- data/spec/fixtures/real_world/apps/account/README +0 -1
- data/spec/fixtures/real_world/apps/calendar/README +0 -1
- data/spec/fixtures/real_world/apps/contacts/README_BEFORE_EDITING +0 -1
- data/spec/fixtures/real_world/apps/files/README +0 -1
- data/spec/fixtures/real_world/apps/mail/README +0 -1
- data/spec/fixtures/real_world/apps/mobile_photos/README +0 -1
- data/spec/fixtures/real_world/apps/photos/README +0 -1
- data/spec/fixtures/real_world/apps/uploader/README +0 -1
- data/spec/fixtures/real_world/frameworks/core_files/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/core_photos/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/shared/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +0 -26
- data/spec/fixtures/real_world/frameworks/sproutcore/README +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/apps/test_runner/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/core.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/debug/debug-resource.html +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/debug/sample_debug.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/demo2.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/debug/sample_debug-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.css +0 -4
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.html +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo2.sass +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.haml +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.html.erb +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.rhtml +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/fixtures/sample_fixtures-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/has_require.css +0 -4
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_require.css +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_sc_resource.rhtml +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/protocols/sample-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.css +0 -6
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.rhtml +0 -3
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/strings.js +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/tests/sample-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample-json-fixture.json +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample_fixtures.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/application/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/costello/core.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/data_store/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/debug/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/desktop/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/empty_theme/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/foundation/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/mobile/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/qunit/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/uploader/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/french-resource.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/strings.js +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/german-resource.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/strings.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/has_require.js +0 -4
- data/spec/fixtures/real_world/frameworks/sproutcore/lib/index.html +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/no_require.js +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/protocols/sample.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/sc_resource.js +0 -6
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample1.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample2.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.rhtml +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/themes/standard_theme/README +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/views/view.js +0 -1
- data/spec/fixtures/real_world/generators/sample_custom/Buildfile +0 -0
- data/spec/fixtures/real_world/generators/sample_custom/templates/{filename}.js +0 -1
- data/spec/fixtures/recursive_project/Buildfile +0 -8
- data/spec/fixtures/recursive_project/frameworks/sproutcore/frameworks/costello/PLACEHOLDER +0 -0
- data/spec/lib/builders/combine_spec.rb +0 -67
- data/spec/lib/builders/html_spec.rb +0 -577
- data/spec/lib/builders/javascript_spec.rb +0 -81
- data/spec/lib/builders/sass_spec.rb +0 -43
- data/spec/lib/builders/spec_helper.rb +0 -30
- data/spec/lib/builders/strings_spec.rb +0 -52
- data/spec/lib/builders/stylesheet_spec.rb +0 -63
- data/spec/lib/builders/test_index_spec.rb +0 -44
- data/spec/lib/builders/test_spec.rb +0 -135
- data/spec/lib/buildfile/config_for_spec.rb +0 -81
- data/spec/lib/buildfile/define_spec.rb +0 -59
- data/spec/lib/buildfile/dup_spec.rb +0 -65
- data/spec/lib/buildfile/invoke_spec.rb +0 -130
- data/spec/lib/buildfile/load_spec.rb +0 -49
- data/spec/lib/buildfile/task/dup_spec.rb +0 -55
- data/spec/lib/buildfile/task_defined_spec.rb +0 -17
- data/spec/lib/buildfile_commands/build_task_spec.rb +0 -19
- data/spec/lib/buildfile_commands/config_spec.rb +0 -97
- data/spec/lib/buildfile_commands/import_spec.rb +0 -17
- data/spec/lib/buildfile_commands/namespace_spec.rb +0 -18
- data/spec/lib/buildfile_commands/proxies_spec.rb +0 -38
- data/spec/lib/buildfile_commands/replace_task_spec.rb +0 -29
- data/spec/lib/buildfile_commands/task_spec.rb +0 -36
- data/spec/lib/helpers/packing_optimizer/optimize_spec.rb +0 -26
- data/spec/lib/models/hash_struct/deep_clone_spec.rb +0 -27
- data/spec/lib/models/hash_struct/has_options_spec.rb +0 -32
- data/spec/lib/models/hash_struct/hash_spec.rb +0 -64
- data/spec/lib/models/hash_struct/merge_spec.rb +0 -26
- data/spec/lib/models/hash_struct/method_missing.rb +0 -41
- data/spec/lib/models/manifest/add_entry_spec.rb +0 -36
- data/spec/lib/models/manifest/add_transform_spec.rb +0 -90
- data/spec/lib/models/manifest/build_spec.rb +0 -78
- data/spec/lib/models/manifest/entry_for_spec.rb +0 -94
- data/spec/lib/models/manifest/find_entry.rb +0 -84
- data/spec/lib/models/manifest/prepare_spec.rb +0 -62
- data/spec/lib/models/manifest_entry/cacheable_url_spec.rb +0 -31
- data/spec/lib/models/manifest_entry/prepare_spec.rb +0 -54
- data/spec/lib/models/project/add_target_spec.rb +0 -44
- data/spec/lib/models/project/buildfile_spec.rb +0 -35
- data/spec/lib/models/project/find_targets_for_spec.rb +0 -77
- data/spec/lib/models/project/load_nearest_project_spec.rb +0 -23
- data/spec/lib/models/project/target_for_spec.rb +0 -33
- data/spec/lib/models/project/targets_spec.rb +0 -62
- data/spec/lib/models/target/compute_build_number_spec.rb +0 -125
- data/spec/lib/models/target/config_spec.rb +0 -30
- data/spec/lib/models/target/expand_required_targets_spec.rb +0 -48
- data/spec/lib/models/target/installed_languages_spec.rb +0 -47
- data/spec/lib/models/target/lproj_for_spec.rb +0 -38
- data/spec/lib/models/target/manifest_for_spec.rb +0 -42
- data/spec/lib/models/target/parent_target_spec.rb +0 -21
- data/spec/lib/models/target/prepare_spec.rb +0 -53
- data/spec/lib/models/target/required_targets_spec.rb +0 -119
- data/spec/lib/models/target/target_for_spec.rb +0 -56
- data/spec/lib/tools/build_number_spec.rb +0 -28
- data/spec/lib/tools/gen_spec.rb +0 -207
- data/spec/lib/tools/tools_spec.rb +0 -78
- data/spec/spec_helper.rb +0 -138
- data/vendor/github_gem_lint.rb +0 -22
- data/vendor/yui-compressor/yuicompressor-2.4.2.jar +0 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -57,7 +57,7 @@ SC.CascadeDataSource = SC.DataSource.extend(
|
|
57
57
|
|
58
58
|
for(idx=0;idx<len;idx++) {
|
59
59
|
source = sources.objectAt(idx);
|
60
|
-
cur = source.
|
60
|
+
cur = source.fetchRecords.call(this, store, SC.Record.STORE_KEYS, storeKeys);
|
61
61
|
ret = this._handleResponse(ret, cur);
|
62
62
|
if (ret === YES) return YES ;
|
63
63
|
}
|
@@ -73,7 +73,7 @@ SC.CascadeDataSource = SC.DataSource.extend(
|
|
73
73
|
|
74
74
|
for(idx=0;idx<len;idx++) {
|
75
75
|
source = sources.objectAt(idx);
|
76
|
-
cur = source.
|
76
|
+
cur = source.commitRecords.call(this, store, createStoreKeys, updateStoreKeys, destroyStoreKeys);
|
77
77
|
ret = this._handleResponse(ret, cur);
|
78
78
|
if (ret === YES) return YES ;
|
79
79
|
}
|
@@ -19,31 +19,64 @@ SC.DataSource = SC.Object.extend( /** SC.DataSource.prototype */ {
|
|
19
19
|
// SC.STORE ENTRY POINTS
|
20
20
|
//
|
21
21
|
|
22
|
+
|
22
23
|
/**
|
23
|
-
Invoked by the
|
24
|
-
|
25
|
-
|
24
|
+
Invoked by the store whenever it needs to retrieve data matching a specific
|
25
|
+
query, triggered by findAll() or retrieveRecords(). The fetchKey will most
|
26
|
+
times be either an SC.Record subclass or an SC.Query object, but it could
|
27
|
+
be anything you want.
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
29
|
+
If your data source subclass can handle the fetch you should override this
|
30
|
+
method to return a SC.Array with storeKeys. You can return it immediately
|
31
|
+
or return an empty array and populate it dynamically later once the result
|
32
|
+
set has arrived with .replace() . You can also return a SC.SparseArray,
|
33
|
+
where data source will be consulted to dynamically populate the contents
|
34
|
+
of the array as it is requested.
|
30
35
|
|
31
|
-
|
32
|
-
|
36
|
+
Note that if you gave an SC.Query as the fetchKey to findAll() on the store
|
37
|
+
you do not have to return anything from this method as you are from then on
|
38
|
+
delegating the responsibility to keep the record array updated to the store.
|
39
|
+
The fetch() method in that case merely functions as a notification
|
40
|
+
mechanism where you get the opportunity to fetch more data from a backend
|
41
|
+
based on the SC.Query.
|
33
42
|
|
34
|
-
|
35
|
-
|
36
|
-
SC.
|
43
|
+
On return, the Store will write your result set in an SC.RecordArray
|
44
|
+
instance, which will monitor your array for changes and then maps those
|
45
|
+
store keys to actual SC.Record instances. SC.RecordArray can also use
|
46
|
+
your underlying storeKeys to create subqueries for client-side searching
|
47
|
+
and filtering.
|
48
|
+
|
49
|
+
findAll() will request all records and load them using store.loadRecords().
|
50
|
+
retrieveRecords() checks if the record is already loaded and in a clean
|
51
|
+
state to then just materialize it. If the record is in an empty state, it
|
52
|
+
will call this method to load the required record to then materialize it.
|
37
53
|
|
38
|
-
@param {SC.DataSource} dataSource the receiver
|
39
54
|
@param {SC.Store} store the requesting store
|
40
|
-
@param {
|
41
|
-
|
55
|
+
@param {Object|SC.Query} fetchKey key describing the request, may be
|
56
|
+
SC.Record or SC.Record.STORE_KEYS if invoked from store.retrieveRecords.
|
57
|
+
Could also be an SC.Query if that was passed in to findAll()
|
58
|
+
@param {Hash} params optional additonal fetch params. storeKeys if invoked
|
59
|
+
from store.retrieveRecords
|
60
|
+
@returns {SC.Array} result set with storeKeys. In case of SC.Array
|
61
|
+
it may be sparse.
|
42
62
|
*/
|
43
|
-
|
44
|
-
return
|
63
|
+
fetch: function(store, fetchKey, params) {
|
64
|
+
return null;
|
45
65
|
},
|
46
|
-
|
66
|
+
|
67
|
+
/**
|
68
|
+
Called when store needs a set of storeKeys
|
69
|
+
|
70
|
+
@param {SC.Store} store the requesting store
|
71
|
+
@param {Array} storeKeys
|
72
|
+
@param {Array} ids - optional
|
73
|
+
@returns
|
74
|
+
*/
|
75
|
+
|
76
|
+
retrieveRecords: function(store, storeKeys, ids) {
|
77
|
+
return this._handleEach(store, storeKeys, this.retrieveRecord, ids);
|
78
|
+
},
|
79
|
+
|
47
80
|
/**
|
48
81
|
Invoked by the store whenever it has one or more records with pending
|
49
82
|
changes that need to be sent back to the server. The store keys will be
|
@@ -79,36 +112,6 @@ SC.DataSource = SC.Object.extend( /** SC.DataSource.prototype */ {
|
|
79
112
|
return (cret === uret === dret) ? (cret || uret || dret) : SC.MIXED_STATE ;
|
80
113
|
},
|
81
114
|
|
82
|
-
/**
|
83
|
-
Invoked by the store whenever it needs to retrieve an array of storeKeys
|
84
|
-
matching a specific query. Your subclass should override this method
|
85
|
-
to return an array of storeKeys that match the passed fetchKey and
|
86
|
-
optional params. Often the fetchKey will actually be an SC.Record
|
87
|
-
subclass used as a filter or string, but it could be anything you want.
|
88
|
-
|
89
|
-
If your data source subclass can handle the fetch, it should either return
|
90
|
-
an array of storeKeys immediately or it can return an empty array and
|
91
|
-
populate it dynamically later one the result set has arrived. Optionally
|
92
|
-
you can also implement "server-side results" by returning a SparseArray
|
93
|
-
and then dynamically populating the contents of the array as it is
|
94
|
-
requested.
|
95
|
-
|
96
|
-
On return, the Store will write your result set in an SC.RecordArray
|
97
|
-
instance, which will monitor your array for changes and then maps those
|
98
|
-
store keys to actual SC.Record instances. SC.RecordArray can also use
|
99
|
-
your underlying storeKeys to create subqueries for client-side searching
|
100
|
-
and filtering.
|
101
|
-
|
102
|
-
@param {SC.Store} store the requesting store
|
103
|
-
@param {Object} fetchKey key describing the request, may be SC.Record
|
104
|
-
@param {Hash} params optional additonal fetch params
|
105
|
-
@returns {SC.Array} result set with storeKeys. May be sparse.
|
106
|
-
*/
|
107
|
-
fetchRecords: function(store, fetchKey, params) {
|
108
|
-
return null;
|
109
|
-
},
|
110
|
-
|
111
|
-
|
112
115
|
/**
|
113
116
|
Invoked by the store whenever it needs to cancel one or more records that
|
114
117
|
are currently in-flight. If any of the storeKeys match records you are
|
@@ -188,10 +191,12 @@ SC.DataSource = SC.Object.extend( /** SC.DataSource.prototype */ {
|
|
188
191
|
/** @private
|
189
192
|
invokes the named action for each store key. returns proper value
|
190
193
|
*/
|
191
|
-
_handleEach: function(store, storeKeys, action) {
|
194
|
+
_handleEach: function(store, storeKeys, action, ids) {
|
192
195
|
var len = storeKeys.length, idx, ret, cur;
|
196
|
+
if(!ids) ids = [];
|
197
|
+
|
193
198
|
for(idx=0;idx<len;idx++) {
|
194
|
-
cur = action.call(this, store, storeKeys[idx]);
|
199
|
+
cur = action.call(this, store, storeKeys[idx], ids[idx]);
|
195
200
|
if (ret === undefined) {
|
196
201
|
ret = cur ;
|
197
202
|
} else if (ret === YES) {
|
@@ -223,6 +228,18 @@ SC.DataSource = SC.Object.extend( /** SC.DataSource.prototype */ {
|
|
223
228
|
return NO ;
|
224
229
|
},
|
225
230
|
|
231
|
+
/**
|
232
|
+
Called from retrieveRecords() to retrieve a single record.
|
233
|
+
|
234
|
+
@param {SC.Store} store the requesting store
|
235
|
+
@param {Array} storeKey key to retrieve
|
236
|
+
@param {String} id the id to retrieve
|
237
|
+
@returns {Boolean} YES if handled
|
238
|
+
*/
|
239
|
+
retrieveRecord: function(store, storeKey, id) {
|
240
|
+
return NO ;
|
241
|
+
},
|
242
|
+
|
226
243
|
/**
|
227
244
|
Called from createdRecords() to created a single record. This is the
|
228
245
|
most basic primitive to can implement to support creating a record.
|
@@ -22,57 +22,142 @@ SC.FixturesDataSource = SC.DataSource.extend( {
|
|
22
22
|
//
|
23
23
|
|
24
24
|
/**
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
25
|
+
|
26
|
+
Invoked by the store whenever it needs to load a fresh new batch or
|
27
|
+
records or simply refresh based on their storeKeys. This method is
|
28
|
+
invoked from the store methods 'findAll' and 'retrieveRecords'.
|
29
|
+
|
30
|
+
findAll() will request all records and load them using
|
31
|
+
store.loadRecords(). retrieveRecords() checks if the record is already
|
32
|
+
loaded and in a clean state to then just materialize it or if is in an
|
33
|
+
empty state, it will call this method to load the required record to
|
34
|
+
then materialize it.
|
35
|
+
|
36
|
+
@param {SC.Store} store the requesting store
|
37
|
+
@param {Object} fetchKey key describing the request, may be SC.Record
|
38
|
+
@param {Hash} params optional additonal fetch params
|
39
|
+
@returns {SC.Array} result set with storeKeys.
|
40
|
+
*/
|
41
|
+
fetch: function(store, fetchKey, params) {
|
42
|
+
|
43
|
+
var ret = [], fixtures;
|
44
|
+
|
45
|
+
// TODO: this currently only supports one recordType per SC.Query
|
46
|
+
if(SC.instanceOf(fetchKey, SC.Query)) {
|
47
|
+
fetchKey = fetchKey.recordType;
|
48
|
+
}
|
49
|
+
|
50
|
+
if(SC.typeOf(fetchKey)===SC.T_STRING) {
|
51
|
+
fetchKey = SC.objectForPropertyPath(fetchKey);
|
52
|
+
}
|
53
|
+
|
54
|
+
if(fetchKey === SC.Record || SC.Record.hasSubclass(fetchKey)) {
|
55
|
+
this.loadFixturesFor(store, fetchKey, ret);
|
37
56
|
}
|
38
|
-
|
57
|
+
|
58
|
+
return ret;
|
39
59
|
},
|
40
|
-
|
60
|
+
|
41
61
|
/**
|
42
|
-
|
43
|
-
|
44
|
-
storeKeys for the specific recordType are returned.
|
62
|
+
Load fixtures for a given fetchKey into the store
|
63
|
+
and push it to the ret array.
|
45
64
|
|
46
|
-
@param {SC.Store} store
|
47
|
-
@param {
|
48
|
-
@param {
|
49
|
-
@returns {SC.Array} result set with storeKeys. May be sparse.
|
65
|
+
@param {SC.Store} store
|
66
|
+
@param {SC.Record} fetchKey
|
67
|
+
@param {SC.Array} ret
|
50
68
|
*/
|
51
|
-
|
52
|
-
var
|
69
|
+
loadFixturesFor: function(store, fetchKey, ret) {
|
70
|
+
var dataHashes, i, storeKey, hashes = [];
|
71
|
+
|
72
|
+
dataHashes = this.fixturesFor(fetchKey);
|
73
|
+
|
74
|
+
for(i in dataHashes){
|
75
|
+
storeKey = fetchKey.storeKeyFor(i);
|
76
|
+
hashes.push(dataHashes[i]);
|
77
|
+
ret.push(storeKey);
|
78
|
+
}
|
53
79
|
|
54
|
-
//
|
55
|
-
|
56
|
-
|
80
|
+
// before loading fixtures again, make sure they have not been
|
81
|
+
// loaded already, so that SC.Query does not end up in
|
82
|
+
// infinite loop
|
83
|
+
if(!this.fixturesLoadedFor(fetchKey)) {
|
84
|
+
store.loadRecords(fetchKey, hashes);
|
85
|
+
}
|
86
|
+
|
87
|
+
},
|
88
|
+
|
89
|
+
/**
|
90
|
+
Load fixtures for a given fetchKey into the store
|
91
|
+
and push it to the ret array.
|
92
|
+
|
93
|
+
@param {SC.Store} store
|
94
|
+
@param {SC.Record} fetchKey
|
95
|
+
@param {SC.Array} ret
|
96
|
+
*/
|
97
|
+
loadFixturesFor: function(store, fetchKey, ret) {
|
98
|
+
var dataHashes, i, storeKey, hashes = [];
|
99
|
+
dataHashes = this.fixturesFor(fetchKey);
|
100
|
+
for(i in dataHashes){
|
101
|
+
storeKey = fetchKey.storeKeyFor(i);
|
102
|
+
hashes.push(dataHashes[i]);
|
103
|
+
ret.push(storeKey);
|
57
104
|
}
|
105
|
+
store.loadRecords(fetchKey, hashes);
|
106
|
+
},
|
107
|
+
|
108
|
+
/**
|
109
|
+
Load fixtures for a given fetchKey into the store
|
110
|
+
and push it to the ret array.
|
58
111
|
|
59
|
-
|
112
|
+
@param {SC.Store} store
|
113
|
+
@param {SC.Record} fetchKey
|
114
|
+
@param {SC.Array} ret
|
115
|
+
*/
|
116
|
+
loadFixturesFor: function(store, fetchKey, ret) {
|
117
|
+
var dataHashes, i, storeKey, hashes = [];
|
118
|
+
dataHashes = this.fixturesFor(fetchKey);
|
60
119
|
for(i in dataHashes){
|
61
|
-
storeKey =
|
120
|
+
storeKey = fetchKey.storeKeyFor(i);
|
121
|
+
hashes.push(dataHashes[i]);
|
62
122
|
ret.push(storeKey);
|
63
123
|
}
|
124
|
+
store.loadRecords(fetchKey, hashes);
|
125
|
+
},
|
126
|
+
|
127
|
+
/**
|
128
|
+
Retrieve a record from fixtures.
|
129
|
+
|
130
|
+
@param {SC.Store} store
|
131
|
+
@param {Number} storeKey
|
132
|
+
@param {SC.Array} ret
|
133
|
+
*/
|
134
|
+
retrieveRecord: function(store, storeKey) {
|
135
|
+
var ret = [], recordType = SC.Store.recordTypeFor(storeKey),
|
136
|
+
id = store.idFor(storeKey),
|
137
|
+
hash = this.fixtureForStoreKey(store, storeKey);
|
138
|
+
ret.push(storeKey);
|
139
|
+
store.dataSourceDidComplete(storeKey, hash, id);
|
140
|
+
|
64
141
|
return ret;
|
65
142
|
},
|
66
143
|
|
67
144
|
/**
|
68
145
|
Fixture operations complete immediately so you cannot cancel them.
|
146
|
+
|
147
|
+
@param {SC.Store} store
|
148
|
+
@param {SC.Array} storeKeys
|
149
|
+
@returns {Boolean} YES if handled
|
69
150
|
*/
|
70
151
|
cancel: function(store, storeKeys) {
|
71
152
|
return NO;
|
72
153
|
},
|
73
154
|
|
74
|
-
|
155
|
+
/**
|
75
156
|
Update the dataHash in this._fixtures
|
157
|
+
|
158
|
+
@param {SC.Store} store
|
159
|
+
@param {Number} storeKey
|
160
|
+
@returns {Boolean} YES if handled
|
76
161
|
*/
|
77
162
|
updateRecord: function(store, storeKey) {
|
78
163
|
this.setFixtureForStoreKey(store, storeKey, store.readDataHash(storeKey));
|
@@ -80,7 +165,6 @@ SC.FixturesDataSource = SC.DataSource.extend( {
|
|
80
165
|
return YES ;
|
81
166
|
},
|
82
167
|
|
83
|
-
|
84
168
|
/**
|
85
169
|
Adds records to this._fixtures. If the record does not have an id yet,
|
86
170
|
then then calls generateIdFor() and sets that.
|
@@ -96,6 +180,7 @@ SC.FixturesDataSource = SC.DataSource.extend( {
|
|
96
180
|
fixtures = this.fixturesFor(recordType);
|
97
181
|
|
98
182
|
if (!id) id = this.generateIdFor(recordType, dataHash, store, storeKey);
|
183
|
+
this._invalidateCachesFor(recordType, storeKey, id);
|
99
184
|
fixtures[id] = dataHash;
|
100
185
|
|
101
186
|
store.dataSourceDidComplete(storeKey, null, id);
|
@@ -113,7 +198,8 @@ SC.FixturesDataSource = SC.DataSource.extend( {
|
|
113
198
|
var id = store.idFor(storeKey),
|
114
199
|
recordType = store.recordTypeFor(storeKey),
|
115
200
|
fixtures = this.fixturesFor(recordType);
|
116
|
-
|
201
|
+
|
202
|
+
this._invalidateCachesFor(recordType, storeKey, id);
|
117
203
|
if (id) delete fixtures[id];
|
118
204
|
store.dataSourceDidDestroy(storeKey);
|
119
205
|
return YES ;
|
@@ -157,6 +243,7 @@ SC.FixturesDataSource = SC.DataSource.extend( {
|
|
157
243
|
var id = store.idFor(storeKey),
|
158
244
|
recordType = store.recordTypeFor(storeKey),
|
159
245
|
fixtures = this.fixturesFor(recordType);
|
246
|
+
this._invalidateCachesFor(recordType, storeKey, id);
|
160
247
|
fixtures[id] = dataHash;
|
161
248
|
return this ;
|
162
249
|
},
|
@@ -188,6 +275,34 @@ SC.FixturesDataSource = SC.DataSource.extend( {
|
|
188
275
|
fixtures[id] = dataHash;
|
189
276
|
}
|
190
277
|
return fixtures;
|
278
|
+
},
|
279
|
+
|
280
|
+
/**
|
281
|
+
Returns YES is fixtures for a given recordType have already been loaded
|
282
|
+
|
283
|
+
@param {SC.Record} recordType
|
284
|
+
@returns {Boolean} storeKeys
|
285
|
+
*/
|
286
|
+
fixturesLoadedFor: function(recordType) {
|
287
|
+
if (!this._fixtures) return NO;
|
288
|
+
var ret = [], fixtures = this._fixtures[SC.guidFor(recordType)];
|
289
|
+
return fixtures ? YES: NO;
|
290
|
+
},
|
291
|
+
|
292
|
+
/**
|
293
|
+
Invalidates any internal caches based on the recordType and optional
|
294
|
+
other parameters. Currently this only invalidates the storeKeyCache used
|
295
|
+
for fetch, but it could invalidate others later as well.
|
296
|
+
|
297
|
+
@param {SC.Record} recordType the type of record modified
|
298
|
+
@param {Number} storeKey optional store key
|
299
|
+
@param {String} id optional record id
|
300
|
+
@returns {SC.FixturesDataSource} receiver
|
301
|
+
*/
|
302
|
+
_invalidateCachesFor: function(recordType, storeKey, id) {
|
303
|
+
var cache = this._storeKeyCache;
|
304
|
+
if (cache) delete cache[SC.guidFor(recordType)]
|
305
|
+
return this ;
|
191
306
|
}
|
192
307
|
|
193
308
|
});
|
@@ -0,0 +1,238 @@
|
|
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('data_sources/data_source');
|
9
|
+
sc_require('models/record');
|
10
|
+
sc_require('system/query');
|
11
|
+
|
12
|
+
/** @class
|
13
|
+
|
14
|
+
TODO: Describe Class
|
15
|
+
|
16
|
+
@extends SC.DataSource
|
17
|
+
@since SproutCore 1.0
|
18
|
+
*/
|
19
|
+
SC.FixturesWithQueriesDataSource = SC.DataSource.extend( {
|
20
|
+
|
21
|
+
// ..........................................................
|
22
|
+
// PREDEFINED EXAMPLE QUERIES
|
23
|
+
//
|
24
|
+
|
25
|
+
queries: {
|
26
|
+
nameIs: SC.Query.create({queryString: "name = %@"}),
|
27
|
+
countIsLesserThan: SC.Query.create({queryString: "count < %@"})
|
28
|
+
},
|
29
|
+
|
30
|
+
|
31
|
+
// ..........................................................
|
32
|
+
// STANDARD DATA SOURCE METHODS
|
33
|
+
//
|
34
|
+
|
35
|
+
/**
|
36
|
+
Invoked by the store whenever it needs to retrieve an array of records.
|
37
|
+
|
38
|
+
@param {SC.Store} store the requesting store
|
39
|
+
@param {SC.Array} the array with the storeKeys to be retrieved
|
40
|
+
@returns {SC.Bool} return YES because Fixtures supports the function.
|
41
|
+
*/
|
42
|
+
retrieveRecords: function(store, storeKeys) {
|
43
|
+
var len = storeKeys.length, dataHash, storeKey, i;
|
44
|
+
for(i=0; i<len; i++){
|
45
|
+
storeKey = storeKeys[i];
|
46
|
+
dataHash = this.fixtureForStoreKey(store, storeKey);
|
47
|
+
if (dataHash) store.dataSourceDidComplete(storeKey, dataHash);
|
48
|
+
}
|
49
|
+
return YES;
|
50
|
+
},
|
51
|
+
|
52
|
+
/**
|
53
|
+
Invoked by the store whenever it needs to retrieve an array of storeKeys
|
54
|
+
matching a specific query. For the fixtures params are ignored and all
|
55
|
+
storeKeys for the specific recordType are returned.
|
56
|
+
|
57
|
+
@param {SC.Store} store the requesting store
|
58
|
+
@param {Object} recordType key describing the request, may be SC.Record
|
59
|
+
@param {Hash} params optional additonal fetch params
|
60
|
+
@returns {SC.Array} result set with storeKeys. May be sparse.
|
61
|
+
*/
|
62
|
+
fetchRecords: function(store, queryKey, params) {
|
63
|
+
var ret = [], dataHashes, i, storeKey, recordType;
|
64
|
+
var query = null;
|
65
|
+
|
66
|
+
if (!params) params = {};
|
67
|
+
|
68
|
+
if (queryKey === SC.Record || SC.Record.hasSubclass(queryKey)) {
|
69
|
+
// loading by recordType now
|
70
|
+
recordType = queryKey;
|
71
|
+
dataHashes = this.fixturesFor(recordType);
|
72
|
+
for(i in dataHashes){
|
73
|
+
storeKey = recordType.storeKeyFor(i);
|
74
|
+
ret.push(storeKey);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
else if (typeof queryKey == 'string') {
|
78
|
+
// doing a real query now
|
79
|
+
// first check if this is a known query
|
80
|
+
if (this.queries[queryKey]) query = this.queries[queryKey];
|
81
|
+
// if not, make a new query and remember it
|
82
|
+
else {
|
83
|
+
params.queryString = queryKey;
|
84
|
+
query = this.queries[queryKey] = SC.Query.create(params);
|
85
|
+
}
|
86
|
+
|
87
|
+
// now lets determine which records to check
|
88
|
+
if (query.recordType)
|
89
|
+
// !!! this doesn't work !!!
|
90
|
+
dataHashes = store.recordsFor(recordType);
|
91
|
+
else
|
92
|
+
// !!! this is a hack - but it works !!!
|
93
|
+
dataHashes = store.dataHashes;
|
94
|
+
|
95
|
+
// now match the dataHashes against the query
|
96
|
+
for(i in dataHashes){
|
97
|
+
if (query.contains(dataHashes[i],params.parameters)) {
|
98
|
+
//storeKey = recordType.storeKeyFor(i);
|
99
|
+
ret.push(i);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
return ret;
|
107
|
+
},
|
108
|
+
|
109
|
+
/**
|
110
|
+
Fixture operations complete immediately so you cannot cancel them.
|
111
|
+
*/
|
112
|
+
cancel: function(store, storeKeys) {
|
113
|
+
return NO;
|
114
|
+
},
|
115
|
+
|
116
|
+
/**
|
117
|
+
Update the dataHash in this._fixtures
|
118
|
+
*/
|
119
|
+
updateRecord: function(store, storeKey) {
|
120
|
+
this.setFixtureForStoreKey(store, storeKey, store.readDataHash(storeKey));
|
121
|
+
store.dataSourceDidComplete(storeKey);
|
122
|
+
return YES ;
|
123
|
+
},
|
124
|
+
|
125
|
+
|
126
|
+
/**
|
127
|
+
Adds records to this._fixtures. If the record does not have an id yet,
|
128
|
+
then then calls generateIdFor() and sets that.
|
129
|
+
|
130
|
+
@param {SC.Store} store the store
|
131
|
+
@param {Number} storeKey the store key
|
132
|
+
@returns {Boolean} YES if successful
|
133
|
+
*/
|
134
|
+
createRecord: function(store, storeKey) {
|
135
|
+
var id = store.idFor(storeKey),
|
136
|
+
recordType = store.recordTypeFor(storeKey),
|
137
|
+
dataHash = store.readDataHash(storeKey),
|
138
|
+
fixtures = this.fixturesFor(recordType);
|
139
|
+
|
140
|
+
if (!id) id = this.generateIdFor(recordType, dataHash, store, storeKey);
|
141
|
+
fixtures[id] = dataHash;
|
142
|
+
|
143
|
+
store.dataSourceDidComplete(storeKey, null, id);
|
144
|
+
return YES ;
|
145
|
+
},
|
146
|
+
|
147
|
+
/**
|
148
|
+
Removes the data from the fixtures.
|
149
|
+
|
150
|
+
@param {SC.Store} store the store
|
151
|
+
@param {Number} storeKey the store key
|
152
|
+
@returns {Boolean} YES if successful
|
153
|
+
*/
|
154
|
+
destroyRecord: function(store, storeKey) {
|
155
|
+
var id = store.idFor(storeKey),
|
156
|
+
recordType = store.recordTypeFor(storeKey),
|
157
|
+
fixtures = this.fixturesFor(recordType);
|
158
|
+
|
159
|
+
if (id) delete fixtures[id];
|
160
|
+
store.dataSourceDidDestroy(storeKey);
|
161
|
+
return YES ;
|
162
|
+
},
|
163
|
+
|
164
|
+
// ..........................................................
|
165
|
+
// INTERNAL METHODS
|
166
|
+
//
|
167
|
+
|
168
|
+
/**
|
169
|
+
Generates an id for the passed record type. You can override this if
|
170
|
+
needed. The default generates a storekey and formats it as a string.
|
171
|
+
*/
|
172
|
+
generateIdFor: function(recordType, dataHash, store, storeKey) {
|
173
|
+
return "@id%@".fmt(SC.Store.generateStoreKey());
|
174
|
+
},
|
175
|
+
|
176
|
+
/**
|
177
|
+
Based on the storeKey it returns the specified fixtures
|
178
|
+
|
179
|
+
@param {SC.Store} store the store
|
180
|
+
@param {Number} storeKey the storeKey
|
181
|
+
@returns {Hash} data hash or null
|
182
|
+
*/
|
183
|
+
fixtureForStoreKey: function(store, storeKey) {
|
184
|
+
var id = store.idFor(storeKey),
|
185
|
+
recordType = store.recordTypeFor(storeKey),
|
186
|
+
fixtures = this.fixturesFor(recordType);
|
187
|
+
return fixtures ? fixtures[id] : null;
|
188
|
+
},
|
189
|
+
|
190
|
+
/**
|
191
|
+
Sets the data hash fixture for the named store key.
|
192
|
+
|
193
|
+
@param {SC.Store} store the store
|
194
|
+
@param {Number} storeKey the storeKey
|
195
|
+
@param {Hash} dataHash
|
196
|
+
@returns {SC.FixturesDataSource} receiver
|
197
|
+
*/
|
198
|
+
setFixtureForStoreKey: function(store, storeKey, dataHash) {
|
199
|
+
var id = store.idFor(storeKey),
|
200
|
+
recordType = store.recordTypeFor(storeKey),
|
201
|
+
fixtures = this.fixturesFor(recordType);
|
202
|
+
fixtures[id] = dataHash;
|
203
|
+
return this ;
|
204
|
+
},
|
205
|
+
|
206
|
+
/**
|
207
|
+
Invoked methods to ensure fixtures for a particular record type have been
|
208
|
+
loaded.
|
209
|
+
|
210
|
+
@param {SC.Record} recordType
|
211
|
+
@returns {Hash} data hashes
|
212
|
+
*/
|
213
|
+
fixturesFor: function(recordType) {
|
214
|
+
// get basic fixtures hash.
|
215
|
+
if (!this._fixtures) this._fixtures = {};
|
216
|
+
var fixtures = this._fixtures[SC.guidFor(recordType)];
|
217
|
+
if (fixtures) return fixtures ;
|
218
|
+
|
219
|
+
// need to load fixtures.
|
220
|
+
var dataHashes = recordType ? recordType.FIXTURES : null,
|
221
|
+
len = dataHashes ? dataHashes.length : 0,
|
222
|
+
primaryKey = recordType ? recordType.prototype.primaryKey : 'guid',
|
223
|
+
idx, dataHash, id ;
|
224
|
+
|
225
|
+
this._fixtures[SC.guidFor(recordType)] = fixtures = {} ;
|
226
|
+
for(idx=0;idx<len;idx++) {
|
227
|
+
dataHash = dataHashes[idx];
|
228
|
+
id = dataHash[primaryKey];
|
229
|
+
if (!id) id = this.generateIdFor(recordType, dataHash);
|
230
|
+
fixtures[id] = dataHash;
|
231
|
+
}
|
232
|
+
return fixtures;
|
233
|
+
}
|
234
|
+
|
235
|
+
});
|
236
|
+
|
237
|
+
// create default instance for use when configuring
|
238
|
+
SC.Record.fixturesWithQueries = SC.FixturesWithQueriesDataSource.create();
|