sproutcore 0.9.23 → 1.0.1003
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 +125 -0
- data/History.txt +5 -569
- data/README.txt +99 -64
- data/Rakefile +236 -6
- data/Todo.txt +1 -0
- data/VERSION.yml +5 -0
- data/bin/sc-build +9 -210
- data/bin/sc-build-number +13 -0
- data/bin/sc-docs +14 -0
- data/bin/sc-gen +9 -23
- data/bin/sc-init +9 -34
- data/bin/sc-manifest +13 -0
- data/bin/sc-server +9 -82
- data/bin/sproutcore +10 -24
- data/buildtasks/build.rake +82 -0
- data/buildtasks/entry.rake +62 -0
- data/buildtasks/manifest.rake +565 -0
- data/buildtasks/render.rake +21 -0
- data/buildtasks/target.rake +61 -0
- data/design/Technical Notes.graffle/QuickLook/Preview.pdf +0 -0
- data/design/Technical Notes.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/design/Technical Notes.graffle/data.plist +5534 -0
- data/design/Technical Notes.graffle/image8.png +0 -0
- data/doc_templates/jsdoc/publish.js +170 -0
- data/doc_templates/jsdoc/static/default.css +162 -0
- data/{jsdoc/templates/sproutcore → doc_templates/jsdoc}/static/header.html +0 -0
- data/doc_templates/jsdoc/static/index.html +19 -0
- data/doc_templates/sproutcore/publish.js +345 -0
- data/doc_templates/sproutcore/static/default.css +258 -0
- data/doc_templates/sproutcore/static/header.html +2 -0
- data/doc_templates/sproutcore/static/index.html +19 -0
- data/frameworks/sproutcore/Buildfile +88 -0
- data/frameworks/sproutcore/HISTORY +10 -10
- data/frameworks/sproutcore/README +8 -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/docs/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/docs/main.js +30 -0
- data/frameworks/sproutcore/apps/tests/controllers/detail.js +25 -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 +86 -0
- data/frameworks/sproutcore/apps/tests/controllers/tests.js +33 -0
- data/frameworks/sproutcore/apps/tests/core.js +133 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/loading.rhtml +9 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +39 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +232 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +26 -0
- data/frameworks/sproutcore/apps/tests/main.js +28 -0
- data/frameworks/sproutcore/apps/tests/states/no_targets.js +26 -0
- 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/detail.js +15 -0
- 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 +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/tests/tests/views/offset_checkbox.js +15 -0
- data/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +26 -0
- data/frameworks/sproutcore/apps/welcome/controllers/targets.js +49 -0
- data/frameworks/sproutcore/apps/welcome/core.js +30 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/loading.rhtml +10 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +7 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +77 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/welcome/main.js +19 -0
- data/frameworks/sproutcore/apps/welcome/tests/controllers/targets.js +15 -0
- data/frameworks/sproutcore/design/CollectionView State Charts.graffle +4848 -0
- data/frameworks/sproutcore/design/Design Charts.graffle +18232 -0
- data/frameworks/sproutcore/design/Record State Table.numbers +0 -0
- data/frameworks/sproutcore/design/SproutCore Datastore Design.graffle/QuickLook/Preview.pdf +0 -0
- data/frameworks/sproutcore/design/SproutCore Datastore Design.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/frameworks/sproutcore/design/SproutCore Datastore Design.graffle/data.plist +19588 -0
- data/frameworks/sproutcore/design/SproutCore Datastore Design.graffle/image8.png +0 -0
- 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/core_tools/core.js +20 -0
- data/frameworks/sproutcore/frameworks/core_tools/data_source.js +99 -0
- data/frameworks/sproutcore/frameworks/core_tools/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/frameworks/core_tools/fixtures/target.js +87 -0
- data/frameworks/sproutcore/frameworks/core_tools/fixtures/test.js +44 -0
- data/frameworks/sproutcore/frameworks/core_tools/models/target.js +108 -0
- data/frameworks/sproutcore/frameworks/core_tools/models/test.js +48 -0
- data/frameworks/sproutcore/frameworks/datastore/core.js +8 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +180 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +340 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +393 -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 +100 -0
- data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +152 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record.js +898 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +462 -0
- data/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +158 -0
- data/frameworks/sproutcore/frameworks/datastore/system/many_array.js +411 -0
- data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +499 -0
- data/frameworks/sproutcore/frameworks/datastore/system/query.js +1488 -0
- data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +568 -0
- data/frameworks/sproutcore/frameworks/datastore/system/store.js +2407 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +117 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +131 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +119 -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/many_attribute.js +384 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +55 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +81 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +245 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +53 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +48 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +169 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +51 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +97 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +178 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +216 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +204 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +149 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +171 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +154 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +113 -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/query/builders.js +219 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +131 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/contains.js +131 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/containsRecordTypes.js +81 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/copy.js +30 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +185 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation_of_records.js +92 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/expandedRecordTypes.js +64 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +202 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/queryWithScope.js +57 -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 +66 -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 +177 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +134 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +54 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +133 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +211 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +136 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +72 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +78 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +254 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +106 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +530 -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 +73 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +144 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +184 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +125 -0
- data/frameworks/sproutcore/frameworks/datejs/core.js +865 -0
- data/frameworks/sproutcore/frameworks/datejs/english.lproj/en-US.js +186 -0
- data/frameworks/sproutcore/frameworks/datejs/extras.js +332 -0
- data/frameworks/sproutcore/frameworks/datejs/license.js +25 -0
- data/frameworks/sproutcore/frameworks/datejs/parser.js +1116 -0
- data/frameworks/sproutcore/frameworks/datejs/spanish.lproj/es-CO.js +186 -0
- data/frameworks/sproutcore/frameworks/datejs/sugarpak.js +475 -0
- data/frameworks/sproutcore/frameworks/datejs/time.js +269 -0
- data/frameworks/sproutcore/frameworks/datejs/validators/datejs.js +34 -0
- data/frameworks/sproutcore/frameworks/debug/core.js +99 -0
- data/frameworks/sproutcore/frameworks/designer/coders/design.js +29 -0
- data/frameworks/sproutcore/frameworks/designer/coders/localization.js +27 -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 +86 -0
- data/frameworks/sproutcore/frameworks/designer/ext/view.js +38 -0
- data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +17 -0
- data/frameworks/sproutcore/frameworks/designer/views/designer.js +569 -0
- data/frameworks/sproutcore/frameworks/designer/views/label.js +16 -0
- data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +11 -0
- data/frameworks/sproutcore/frameworks/designer/views/tab.js +16 -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 +78 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/drag.css +6 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +943 -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/{english.lproj/images/shared-icons.png → frameworks/desktop/english.lproj/images/icons/shared.png} +0 -0
- data/{clients/sc_test_runner → 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/{english.lproj → frameworks/desktop/english.lproj}/images/sticky-note.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +209 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +113 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/modal.css +5 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +95 -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 +62 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split.css +70 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +9 -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/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_row_delegate.js +61 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +292 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +247 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +408 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/drop_down.js +665 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +680 -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 +403 -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 +290 -0
- data/frameworks/sproutcore/frameworks/desktop/system/drag.js +869 -0
- data/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +647 -0
- data/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +187 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/datetime_recordattribute.js +73 -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/dropDown/methods.js +161 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/dropDown/ui.js +199 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +55 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +59 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +35 -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 +84 -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 +163 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +144 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +99 -0
- 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/displayProperties.js +31 -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 +174 -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 -0
- 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/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/render.js +92 -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 +131 -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 +284 -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 +200 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +142 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +169 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +72 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/ui.js +71 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +95 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +222 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +132 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +110 -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 +60 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +52 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +231 -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/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 +375 -0
- data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +126 -0
- data/frameworks/sproutcore/frameworks/desktop/views/collection.js +2775 -0
- data/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +60 -0
- data/frameworks/sproutcore/frameworks/desktop/views/form.js +594 -0
- data/frameworks/sproutcore/frameworks/desktop/views/grid.js +201 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list.js +549 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +657 -0
- data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +608 -0
- data/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +20 -0
- data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +68 -0
- data/frameworks/sproutcore/frameworks/desktop/views/progress.js +233 -0
- data/frameworks/sproutcore/frameworks/desktop/views/radio.js +357 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scene.js +204 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +689 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +227 -0
- data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +587 -0
- data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +311 -0
- data/frameworks/sproutcore/frameworks/desktop/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/views/slider.js +261 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +47 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +169 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split.js +684 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +55 -0
- data/frameworks/sproutcore/frameworks/desktop/views/stacked.js +101 -0
- data/frameworks/sproutcore/frameworks/desktop/views/tab.js +191 -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 +87 -0
- data/frameworks/sproutcore/frameworks/foundation/TESTING +46 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +504 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +44 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +322 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +105 -0
- data/frameworks/sproutcore/frameworks/foundation/core.js +144 -0
- data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +194 -0
- data/frameworks/sproutcore/{english.lproj → frameworks/foundation/english.lproj}/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +81 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +33 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +438 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +9 -0
- data/frameworks/sproutcore/{english.lproj → frameworks/foundation/english.lproj}/images/sproutcore-logo.png +0 -0
- data/{clients/sc_test_runner/english.lproj/controls.css → frameworks/sproutcore/frameworks/foundation/english.lproj/inline_editor.css} +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +31 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/static_layout.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +133 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +51 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/object.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +161 -0
- data/frameworks/sproutcore/frameworks/foundation/fixtures/file_exists.json +1 -0
- data/frameworks/sproutcore/frameworks/foundation/license.js +19 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +355 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +179 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +91 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +386 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +150 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +491 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +233 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +334 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/tree_item_content.js +160 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/main.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +661 -0
- data/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +887 -0
- data/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +84 -0
- data/frameworks/sproutcore/frameworks/foundation/system/application.js +36 -0
- data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +502 -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/bundle.js +267 -0
- data/frameworks/sproutcore/frameworks/foundation/system/core_query.js +2028 -0
- data/frameworks/sproutcore/frameworks/foundation/system/cursor.js +129 -0
- data/frameworks/sproutcore/frameworks/foundation/system/datetime.js +915 -0
- data/frameworks/sproutcore/frameworks/foundation/system/event.js +849 -0
- data/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +432 -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 +195 -0
- data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +905 -0
- data/frameworks/sproutcore/frameworks/foundation/system/request.js +386 -0
- 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 +391 -0
- data/frameworks/sproutcore/frameworks/foundation/system/routes.js +525 -0
- data/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +103 -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 +233 -0
- data/frameworks/sproutcore/frameworks/foundation/system/utils.js +482 -0
- 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/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/button/keyEquivalents.js +56 -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/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/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/datetime.js +252 -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 +127 -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 +101 -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 +24 -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 +23 -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/validators/validator.js +20 -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 +52 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +31 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +113 -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/text_field/methods.js +76 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +446 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +133 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +246 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +122 -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/isVisible.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +116 -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 +328 -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 +146 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +194 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +223 -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 +314 -0
- data/frameworks/sproutcore/frameworks/foundation/views/container.js +136 -0
- data/frameworks/sproutcore/frameworks/foundation/views/field.js +347 -0
- data/frameworks/sproutcore/frameworks/foundation/views/image.js +178 -0
- data/frameworks/sproutcore/frameworks/foundation/views/label.js +285 -0
- data/frameworks/sproutcore/frameworks/foundation/views/text_field.js +662 -0
- data/frameworks/sproutcore/frameworks/foundation/views/view.js +2521 -0
- data/frameworks/sproutcore/frameworks/mini/license.js +28 -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 +12 -0
- data/frameworks/sproutcore/frameworks/runtime/core.js +950 -0
- 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/license.js +28 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +613 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +45 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +64 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +110 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1238 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +110 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1315 -0
- data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +141 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +173 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +172 -0
- data/frameworks/sproutcore/frameworks/runtime/protocols/observable_protocol.js +40 -0
- data/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +131 -0
- data/frameworks/sproutcore/frameworks/runtime/system/binding.js +943 -0
- data/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +106 -0
- data/frameworks/sproutcore/frameworks/runtime/system/error.js +157 -0
- data/frameworks/sproutcore/frameworks/runtime/system/index_set.js +1193 -0
- data/frameworks/sproutcore/frameworks/runtime/system/object.js +834 -0
- data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +271 -0
- data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +245 -0
- data/frameworks/sproutcore/frameworks/runtime/system/selection_set.js +669 -0
- data/frameworks/sproutcore/frameworks/runtime/system/set.js +425 -0
- data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +379 -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 +84 -0
- 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/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/array.js +57 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/comparable.js +44 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +611 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +587 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +132 -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/private/observer_queue/isObservingSuspended.js +55 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +265 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/error.js +52 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +195 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/addEach.js +49 -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/removeEach.js +49 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/without.js +89 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +148 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +339 -0
- 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 +120 -0
- 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 +292 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +175 -0
- data/frameworks/sproutcore/frameworks/testing/core.js +196 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/additions.css +8 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/runner.css +128 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/testsuite.css +131 -0
- data/frameworks/sproutcore/frameworks/testing/extras.js +17 -0
- data/frameworks/sproutcore/frameworks/testing/jquery.js +3559 -0
- data/frameworks/sproutcore/frameworks/testing/qunit.js +827 -0
- 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 +695 -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 +62 -0
- data/frameworks/sproutcore/lib/index.rhtml +81 -33
- data/frameworks/sproutcore/license.js +28 -28
- 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/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/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/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 +327 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +93 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +126 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +76 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/disclosure.css +57 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-repeat-x.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/{english.lproj → 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 +11 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/list_item.css +30 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/menu_item_view.css +3 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +8 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/background-fat.jpg +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/background-thin.jpg +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/bottom-edge.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/bottom-left-corner.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/bottom-right-corner.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/left-edge.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/overlay.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/right-edge.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/top-edge.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/top-left-corner.png +0 -0
- data/frameworks/sproutcore/{english.lproj → themes/standard_theme/english.lproj}/panels/top-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +26 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +149 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +279 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +94 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/split_view.css +27 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +19 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +20 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +7 -0
- data/gen/Buildfile +16 -0
- data/gen/app/Buildfile +36 -0
- data/gen/app/README +1 -0
- data/gen/app/USAGE +13 -0
- data/gen/app/templates/apps/@target_name@/core.js +27 -0
- data/gen/app/templates/apps/@target_name@/main.js +30 -0
- data/gen/app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
- data/gen/app/templates/apps/@target_name@/resources/main_page.js +24 -0
- data/gen/controller/Buildfile +18 -0
- data/gen/controller/README +1 -0
- data/gen/controller/USAGE +13 -0
- data/gen/controller/templates/controllers/@filename@.js +18 -0
- data/gen/controller/templates/tests/controllers/@filename@.js +15 -0
- data/gen/design/Buildfile +23 -0
- data/gen/design/README +1 -0
- data/gen/design/USAGE +10 -0
- data/gen/design/templates/resources/@filename@.js +16 -0
- data/gen/framework/Buildfile +36 -0
- data/gen/framework/README +1 -0
- data/gen/framework/USAGE +13 -0
- data/gen/framework/templates/frameworks/@target_name@/core.js +21 -0
- data/gen/framework/templates/frameworks/@target_name@/english.lproj/strings.js +15 -0
- data/gen/language/Buildfile +26 -0
- data/gen/language/README +1 -0
- data/gen/language/USAGE +13 -0
- data/gen/language/templates/@filename@/strings.js +14 -0
- data/gen/model/Buildfile +16 -0
- data/gen/model/README +1 -0
- data/gen/model/USAGE +15 -0
- data/gen/model/templates/fixtures/@filename@.js +35 -0
- data/gen/model/templates/models/@filename@.js +19 -0
- data/gen/model/templates/tests/models/@filename@.js +15 -0
- data/gen/page/Buildfile +36 -0
- data/gen/page/README +1 -0
- data/gen/page/USAGE +15 -0
- data/gen/page/templates/pages/@target_name@/Buildfile +16 -0
- data/gen/page/templates/pages/@target_name@/core.js +22 -0
- data/gen/page/templates/pages/@target_name@/en.lproj/strings.js +14 -0
- data/gen/page/templates/pages/@target_name@/resources/body.css +1 -0
- data/gen/page/templates/pages/@target_name@/resources/body.rhtml +7 -0
- data/gen/project/Buildfile +45 -0
- data/gen/project/INIT +3 -0
- data/gen/project/README +1 -0
- data/gen/project/USAGE +2 -0
- data/gen/project/templates/@filename@/Buildfile +7 -0
- data/gen/project/templates/@filename@/README +7 -0
- data/gen/test/Buildfile +25 -0
- data/gen/test/README +1 -0
- data/gen/test/USAGE +12 -0
- data/gen/test/templates/tests/@filename@.js +15 -0
- data/gen/theme/Buildfile +36 -0
- data/gen/theme/README +1 -0
- data/gen/theme/USAGE +13 -0
- data/gen/theme/templates/themes/@target_name@/resources/theme_styles.css +11 -0
- data/gen/view/Buildfile +18 -0
- data/gen/view/README +1 -0
- data/gen/view/USAGE +13 -0
- data/gen/view/templates/tests/views/@filename@.js +15 -0
- data/gen/view/templates/views/@filename@.js +18 -0
- data/lib/sproutcore/builders/base.rb +91 -0
- data/lib/sproutcore/builders/bundle.rb +63 -0
- data/lib/sproutcore/builders/combine.rb +37 -0
- data/lib/sproutcore/builders/html.rb +205 -0
- data/lib/sproutcore/builders/javascript.rb +62 -0
- data/lib/sproutcore/builders/minify.rb +133 -0
- data/lib/sproutcore/builders/sass.rb +55 -0
- data/lib/sproutcore/builders/strings.rb +44 -0
- data/lib/sproutcore/builders/stylesheet.rb +40 -0
- data/lib/sproutcore/builders/test.rb +59 -0
- data/lib/sproutcore/builders/test_index.rb +26 -0
- data/lib/sproutcore/buildfile/build_task.rb +33 -0
- data/lib/sproutcore/buildfile/buildfile_dsl.rb +162 -0
- data/lib/sproutcore/buildfile/cloneable.rb +34 -0
- data/lib/sproutcore/buildfile/early_time.rb +30 -0
- data/lib/sproutcore/buildfile/invocation_chain.rb +64 -0
- data/lib/sproutcore/buildfile/namespace.rb +33 -0
- data/lib/sproutcore/buildfile/string_ext.rb +198 -0
- data/lib/sproutcore/buildfile/task.rb +304 -0
- data/lib/sproutcore/buildfile/task_arguments.rb +86 -0
- data/lib/sproutcore/buildfile/task_manager.rb +193 -0
- data/lib/sproutcore/buildfile.rb +484 -0
- data/lib/sproutcore/deprecated/view_helper.rb +662 -0
- data/lib/sproutcore/helpers/capture_helper.rb +9 -1
- data/lib/sproutcore/helpers/cssmin.rb +202 -0
- data/lib/sproutcore/helpers/dom_id_helper.rb +8 -1
- data/lib/sproutcore/helpers/entry_sorter.rb +139 -0
- data/lib/sproutcore/helpers/packed_optimizer.rb +102 -0
- data/lib/sproutcore/helpers/static_helper.rb +223 -41
- data/lib/sproutcore/helpers/tag_helper.rb +73 -1
- data/lib/sproutcore/helpers/text_helper.rb +24 -57
- data/lib/sproutcore/models/generator.rb +493 -0
- data/lib/sproutcore/models/hash_struct.rb +109 -0
- data/lib/sproutcore/models/manifest.rb +376 -0
- data/lib/sproutcore/models/manifest_entry.rb +252 -0
- data/lib/sproutcore/models/project.rb +267 -0
- data/lib/sproutcore/models/target.rb +664 -0
- data/lib/sproutcore/rack/builder.rb +331 -0
- data/lib/sproutcore/rack/dev.rb +51 -0
- data/lib/sproutcore/rack/docs.rb +24 -0
- data/lib/sproutcore/rack/filesystem.rb +265 -0
- data/lib/sproutcore/rack/proxy.rb +100 -0
- data/lib/sproutcore/rack/service.rb +155 -0
- data/lib/sproutcore/rack/test_runner.rb +24 -0
- data/lib/sproutcore/render_engines/erubis.rb +55 -0
- data/lib/sproutcore/render_engines/haml.rb +39 -0
- data/lib/sproutcore/tools/build.rb +80 -0
- data/lib/sproutcore/tools/build_number.rb +23 -0
- data/lib/sproutcore/tools/docs.rb +53 -0
- data/lib/sproutcore/tools/gen.rb +99 -0
- data/lib/sproutcore/tools/init.rb +40 -0
- data/lib/sproutcore/tools/manifest.rb +85 -0
- data/lib/sproutcore/tools/server.rb +48 -0
- data/lib/sproutcore/tools.rb +341 -0
- data/lib/sproutcore.rb +141 -18
- 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
- data/spec/buildtasks/build/copy_spec.rb +60 -0
- data/spec/buildtasks/build/spec_helper.rb +36 -0
- data/spec/buildtasks/manifest/catalog_spec.rb +48 -0
- data/spec/buildtasks/manifest/hide_buildfiles_spec.rb +126 -0
- data/spec/buildtasks/manifest/localize_spec.rb +97 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +254 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +246 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +87 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/html_spec.rb +175 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/javascript_spec.rb +65 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +70 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +152 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/sass_spec.rb +98 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/strings_spec.rb +64 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/tests_spec.rb +163 -0
- data/spec/buildtasks/manifest/prepare_spec.rb +43 -0
- data/spec/buildtasks/manifest/spec_helper.rb +35 -0
- data/spec/buildtasks/target_spec.rb +270 -0
- data/spec/fixtures/builder_tests/Buildfile +20 -0
- data/spec/fixtures/builder_tests/apps/bundle_test/bundle.js +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/a.js +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/b.js +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/c.js +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/a.css +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/b.css +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/c.css +1 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/bar1_sample.rhtml +2 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/erb_sample.html.erb +1 -0
- 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 +1 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/strings.js +4 -0
- 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 +4 -0
- data/spec/fixtures/builder_tests/apps/html_test/lib/layout_template.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/html_test/scripts.js +0 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_static.js +15 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_super.js +4 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/strings.js +7 -0
- data/spec/fixtures/builder_tests/apps/sass_test/sample.sass +3 -0
- data/spec/fixtures/builder_tests/apps/strings_test/lproj/strings.js +8 -0
- data/spec/fixtures/builder_tests/apps/stylesheet_test/build_directives.css +9 -0
- data/spec/fixtures/builder_tests/apps/stylesheet_test/sc_static.css +12 -0
- data/spec/fixtures/builder_tests/apps/test_test/lib/alt_layout.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/test_test/lib/test_layout.rhtml +3 -0
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test.js +1 -0
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test2.js +1 -0
- data/spec/fixtures/builder_tests/apps/test_test/tests/rhtml_test.rhtml +4 -0
- 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/dynamic_req_target_1/dynamic_req_js_1.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/dynamic_req_target_1/english.lproj/dynamic_req_style_1.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 +4 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/test.rhtml +1 -0
- 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 +1 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/javascript.js +1 -0
- 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 +1 -0
- data/spec/fixtures/buildfiles/basic/Buildfile +16 -0
- data/spec/fixtures/buildfiles/basic/task_module.rake +6 -0
- data/spec/fixtures/buildfiles/installed/Buildfile +7 -0
- data/spec/fixtures/buildfiles/installed/Buildfile2 +5 -0
- data/spec/fixtures/buildfiles/project_test/Buildfile +4 -0
- data/spec/fixtures/buildfiles/project_test/not_project/Buildfile +2 -0
- data/spec/fixtures/buildfiles/project_test/not_project/child/PLACEHOLDER +0 -0
- data/spec/fixtures/entry_for_project/Buildfile +1 -0
- data/spec/fixtures/entry_for_project/apps/test_app/entry.txt +0 -0
- 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 +8 -0
- 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 +5 -0
- 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 +8 -0
- data/spec/fixtures/find_targets/nested/apps/app1/Buildfile +1 -0
- 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 +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/B.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/a/a.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/a/b.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/a.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/b/a.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/c.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/core.js +1 -0
- 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/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/a.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 +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/utils.js +1 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/a.js +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/b.js +3 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/c.js +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/a.css +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/b.css +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/c.css +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/d.js +1 -0
- data/spec/fixtures/real_world/Buildfile +12 -0
- data/spec/fixtures/real_world/apps/account/README +1 -0
- data/spec/fixtures/real_world/apps/calendar/README +1 -0
- data/spec/fixtures/real_world/apps/contacts/README_BEFORE_EDITING +1 -0
- data/spec/fixtures/real_world/apps/files/README +1 -0
- data/spec/fixtures/real_world/apps/mail/README +1 -0
- data/spec/fixtures/real_world/apps/mobile_photos/README +1 -0
- data/spec/fixtures/real_world/apps/photos/README +1 -0
- data/spec/fixtures/real_world/apps/uploader/README +1 -0
- 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 +26 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/README +1 -0
- 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 +4 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.html +1 -0
- 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 +1 -0
- 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 +4 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_require.css +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_sc_resource.rhtml +1 -0
- 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 +6 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.rhtml +3 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/strings.js +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +4 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/lib/index.html +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/no_require.js +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/protocols/sample.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/resources/boo.png +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/sc_resource.js +6 -0
- 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 +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/themes/standard_theme/README +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/views/view.js +1 -0
- data/spec/fixtures/real_world/generators/sample_custom/Buildfile +0 -0
- data/spec/fixtures/recursive_project/Buildfile +8 -0
- data/spec/fixtures/recursive_project/frameworks/sproutcore/frameworks/costello/PLACEHOLDER +0 -0
- data/spec/lib/builders/bundle_spec.rb +294 -0
- data/spec/lib/builders/combine_spec.rb +67 -0
- data/spec/lib/builders/html_spec.rb +579 -0
- data/spec/lib/builders/javascript_spec.rb +81 -0
- data/spec/lib/builders/sass_spec.rb +43 -0
- data/spec/lib/builders/spec_helper.rb +30 -0
- data/spec/lib/builders/strings_spec.rb +52 -0
- data/spec/lib/builders/stylesheet_spec.rb +63 -0
- data/spec/lib/builders/test_index_spec.rb +44 -0
- data/spec/lib/builders/test_spec.rb +136 -0
- data/spec/lib/buildfile/config_for_spec.rb +81 -0
- data/spec/lib/buildfile/define_spec.rb +59 -0
- data/spec/lib/buildfile/dup_spec.rb +65 -0
- data/spec/lib/buildfile/invoke_spec.rb +130 -0
- data/spec/lib/buildfile/load_spec.rb +49 -0
- data/spec/lib/buildfile/task/dup_spec.rb +55 -0
- data/spec/lib/buildfile/task_defined_spec.rb +17 -0
- data/spec/lib/buildfile_commands/build_task_spec.rb +19 -0
- data/spec/lib/buildfile_commands/config_spec.rb +97 -0
- data/spec/lib/buildfile_commands/import_spec.rb +17 -0
- data/spec/lib/buildfile_commands/namespace_spec.rb +18 -0
- data/spec/lib/buildfile_commands/proxies_spec.rb +38 -0
- data/spec/lib/buildfile_commands/replace_task_spec.rb +29 -0
- data/spec/lib/buildfile_commands/task_spec.rb +36 -0
- data/spec/lib/helpers/packing_optimizer/optimize_spec.rb +26 -0
- data/spec/lib/models/hash_struct/deep_clone_spec.rb +27 -0
- data/spec/lib/models/hash_struct/has_options_spec.rb +32 -0
- data/spec/lib/models/hash_struct/hash_spec.rb +64 -0
- data/spec/lib/models/hash_struct/merge_spec.rb +26 -0
- data/spec/lib/models/hash_struct/method_missing.rb +41 -0
- data/spec/lib/models/manifest/add_entry_spec.rb +36 -0
- data/spec/lib/models/manifest/add_transform_spec.rb +91 -0
- data/spec/lib/models/manifest/build_spec.rb +78 -0
- data/spec/lib/models/manifest/entry_for_spec.rb +94 -0
- data/spec/lib/models/manifest/find_entry.rb +97 -0
- data/spec/lib/models/manifest/prepare_spec.rb +62 -0
- data/spec/lib/models/manifest_entry/cacheable_url_spec.rb +31 -0
- data/spec/lib/models/manifest_entry/prepare_spec.rb +54 -0
- data/spec/lib/models/project/add_target_spec.rb +44 -0
- data/spec/lib/models/project/buildfile_spec.rb +35 -0
- data/spec/lib/models/project/find_targets_for_spec.rb +78 -0
- data/spec/lib/models/project/load_nearest_project_spec.rb +23 -0
- data/spec/lib/models/project/target_for_spec.rb +33 -0
- data/spec/lib/models/project/targets_spec.rb +62 -0
- data/spec/lib/models/target/compute_build_number_spec.rb +125 -0
- data/spec/lib/models/target/config_spec.rb +30 -0
- data/spec/lib/models/target/expand_required_targets_spec.rb +48 -0
- data/spec/lib/models/target/installed_languages_spec.rb +47 -0
- data/spec/lib/models/target/lproj_for_spec.rb +38 -0
- data/spec/lib/models/target/manifest_for_spec.rb +42 -0
- data/spec/lib/models/target/parent_target_spec.rb +21 -0
- data/spec/lib/models/target/prepare_spec.rb +53 -0
- data/spec/lib/models/target/required_targets_spec.rb +119 -0
- data/spec/lib/models/target/target_for_spec.rb +56 -0
- data/spec/lib/tools/build_number_spec.rb +28 -0
- data/spec/lib/tools/gen_spec.rb +207 -0
- data/spec/lib/tools/tools_spec.rb +78 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +137 -6
- data/sproutcore-abbot.gemspec +1582 -0
- data/vendor/github_gem_lint.rb +22 -0
- data/{jsdoc → vendor/jsdoc}/README.txt +0 -0
- data/vendor/jsdoc/app/frame/Chain.js +102 -0
- data/vendor/jsdoc/app/frame/Dumper.js +144 -0
- data/vendor/jsdoc/app/frame/Hash.js +47 -0
- data/vendor/jsdoc/app/frame/Link.js +142 -0
- data/vendor/jsdoc/app/frame/Namespace.js +10 -0
- data/vendor/jsdoc/app/frame/Opt.js +134 -0
- data/vendor/jsdoc/app/frame/Reflection.js +26 -0
- data/vendor/jsdoc/app/frame/String.js +93 -0
- data/vendor/jsdoc/app/frame/Testrun.js +129 -0
- data/vendor/jsdoc/app/frame.js +33 -0
- data/vendor/jsdoc/app/handlers/FOODOC.js +26 -0
- data/{jsdoc → vendor/jsdoc}/app/handlers/XMLDOC/DomReader.js +0 -0
- data/{jsdoc → vendor/jsdoc}/app/handlers/XMLDOC/XMLDoc.js +0 -0
- data/{jsdoc → vendor/jsdoc}/app/handlers/XMLDOC/XMLParse.js +0 -0
- data/vendor/jsdoc/app/handlers/XMLDOC.js +26 -0
- data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +200 -0
- data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +294 -0
- data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +162 -0
- data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +100 -0
- data/vendor/jsdoc/app/lib/JSDOC/Lang.js +144 -0
- data/vendor/jsdoc/app/lib/JSDOC/Parser.js +109 -0
- data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +33 -0
- data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +681 -0
- data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +226 -0
- data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +41 -0
- data/vendor/jsdoc/app/lib/JSDOC/Token.js +18 -0
- data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +332 -0
- data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +133 -0
- data/vendor/jsdoc/app/lib/JSDOC/Util.js +32 -0
- data/vendor/jsdoc/app/lib/JSDOC/Walker.js +453 -0
- data/vendor/jsdoc/app/lib/JSDOC.js +98 -0
- data/vendor/jsdoc/app/main.js +74 -0
- data/vendor/jsdoc/app/plugins/commentSrcJson.js +19 -0
- data/vendor/jsdoc/app/plugins/frameworkPrototype.js +16 -0
- data/vendor/jsdoc/app/plugins/functionCall.js +10 -0
- data/vendor/jsdoc/app/plugins/publishSrcHilite.js +62 -0
- data/{jsdoc → vendor/jsdoc}/app/plugins/sproutcoreTags.js +0 -0
- data/vendor/jsdoc/app/plugins/symbolLink.js +9 -0
- data/vendor/jsdoc/app/plugins/tagParamConfig.js +31 -0
- data/vendor/jsdoc/app/plugins/tagSynonyms.js +43 -0
- data/vendor/jsdoc/app/run.js +346 -0
- data/vendor/jsdoc/app/t/TestDoc.js +144 -0
- data/{jsdoc → vendor/jsdoc/app}/t/runner.js +0 -0
- data/{jsdoc → vendor/jsdoc/app}/test/addon.js +0 -0
- data/{jsdoc → vendor/jsdoc/app}/test/anon_inner.js +0 -0
- data/vendor/jsdoc/app/test/augments.js +31 -0
- data/vendor/jsdoc/app/test/augments2.js +26 -0
- data/vendor/jsdoc/app/test/borrows.js +41 -0
- data/vendor/jsdoc/app/test/borrows2.js +23 -0
- data/{jsdoc → vendor/jsdoc/app}/test/config.js +0 -0
- data/vendor/jsdoc/app/test/constructs.js +18 -0
- data/{jsdoc → vendor/jsdoc/app}/test/encoding.js +0 -0
- data/{jsdoc → vendor/jsdoc/app}/test/encoding_other.js +0 -0
- data/vendor/jsdoc/app/test/functions_anon.js +39 -0
- data/vendor/jsdoc/app/test/functions_nested.js +33 -0
- data/vendor/jsdoc/app/test/global.js +13 -0
- data/vendor/jsdoc/app/test/globals.js +25 -0
- data/vendor/jsdoc/app/test/ignore.js +10 -0
- data/{jsdoc → vendor/jsdoc/app}/test/inner.js +0 -0
- data/vendor/jsdoc/app/test/jsdoc_test.js +477 -0
- data/vendor/jsdoc/app/test/lend.js +33 -0
- data/vendor/jsdoc/app/test/memberof.js +20 -0
- data/vendor/jsdoc/app/test/memberof_constructor.js +15 -0
- data/vendor/jsdoc/app/test/name.js +19 -0
- data/vendor/jsdoc/app/test/namespace_nested.js +23 -0
- data/{jsdoc → vendor/jsdoc/app}/test/nocode.js +0 -0
- data/vendor/jsdoc/app/test/oblit_anon.js +20 -0
- data/vendor/jsdoc/app/test/overview.js +20 -0
- data/vendor/jsdoc/app/test/param_inline.js +37 -0
- data/{jsdoc → vendor/jsdoc/app}/test/params_optional.js +0 -0
- data/vendor/jsdoc/app/test/prototype.js +17 -0
- data/{jsdoc → vendor/jsdoc/app}/test/prototype_nested.js +0 -0
- data/vendor/jsdoc/app/test/prototype_oblit.js +13 -0
- data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +24 -0
- data/vendor/jsdoc/app/test/public.js +10 -0
- data/{jsdoc → vendor/jsdoc/app}/test/shared.js +0 -0
- data/{jsdoc → vendor/jsdoc/app}/test/shared2.js +0 -0
- data/vendor/jsdoc/app/test/shortcuts.js +22 -0
- data/vendor/jsdoc/app/test/static_this.js +13 -0
- data/vendor/jsdoc/app/test/synonyms.js +23 -0
- data/{jsdoc → vendor/jsdoc/app}/test/tosource.js +0 -0
- data/vendor/jsdoc/app/test/variable_redefine.js +14 -0
- data/vendor/jsdoc/app/test.js +304 -0
- data/{jsdoc → vendor/jsdoc}/changes.txt +0 -0
- data/{jsdoc → vendor/jsdoc}/conf/sample.conf +0 -0
- data/{jsdoc → vendor/jsdoc}/java/build.xml +0 -0
- data/{jsdoc → vendor/jsdoc}/java/build_1.4.xml +0 -0
- data/{jsdoc → vendor/jsdoc}/java/classes/js.jar +0 -0
- data/{jsdoc → vendor/jsdoc}/java/src/JsDebugRun.java +0 -0
- data/{jsdoc → vendor/jsdoc}/java/src/JsRun.java +0 -0
- data/{jsdoc → vendor/jsdoc}/jsdebug.jar +0 -0
- data/{jsdoc → vendor/jsdoc}/jsrun.jar +0 -0
- data/{jsdoc → vendor/jsdoc}/t/TestDoc.js +0 -0
- data/vendor/jsdoc/t/runner.js +13 -0
- data/vendor/jsdoc/test/addon.js +24 -0
- data/vendor/jsdoc/test/anon_inner.js +14 -0
- data/{jsdoc → vendor/jsdoc}/test/augments.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/augments2.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/borrows.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/borrows2.js +0 -0
- data/vendor/jsdoc/test/config.js +22 -0
- data/{jsdoc → vendor/jsdoc}/test/constructs.js +0 -0
- data/vendor/jsdoc/test/encoding.js +10 -0
- data/vendor/jsdoc/test/encoding_other.js +12 -0
- data/{jsdoc → vendor/jsdoc}/test/functions_anon.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/functions_nested.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/global.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/globals.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/ignore.js +0 -0
- data/vendor/jsdoc/test/inner.js +16 -0
- data/{jsdoc → vendor/jsdoc}/test/jsdoc_test.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/lend.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/memberof.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/memberof_constructor.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/name.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/namespace_nested.js +0 -0
- data/vendor/jsdoc/test/nocode.js +13 -0
- data/{jsdoc → vendor/jsdoc}/test/oblit_anon.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/overview.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/param_inline.js +0 -0
- data/vendor/jsdoc/test/params_optional.js +8 -0
- data/{jsdoc → vendor/jsdoc}/test/prototype.js +0 -0
- data/vendor/jsdoc/test/prototype_nested.js +9 -0
- data/{jsdoc → vendor/jsdoc}/test/prototype_oblit.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/prototype_oblit_constructor.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/public.js +0 -0
- data/vendor/jsdoc/test/shared.js +42 -0
- data/vendor/jsdoc/test/shared2.js +2 -0
- data/{jsdoc → vendor/jsdoc}/test/shortcuts.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/static_this.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test/synonyms.js +0 -0
- data/vendor/jsdoc/test/tosource.js +23 -0
- data/{jsdoc → vendor/jsdoc}/test/variable_redefine.js +0 -0
- data/{jsdoc → vendor/jsdoc}/test.js +0 -0
- data/{yui_compressor → vendor/yui-compressor}/yuicompressor-2.4.2.jar +0 -0
- metadata +1537 -431
- data/License.txt +0 -20
- data/Manifest.txt +0 -415
- data/app_generators/sproutcore/USAGE +0 -4
- data/app_generators/sproutcore/sproutcore_generator.rb +0 -68
- data/app_generators/sproutcore/templates/README +0 -80
- data/app_generators/sproutcore/templates/sc-config +0 -93
- data/bin/sc-ide +0 -278
- data/bin/sc-install +0 -101
- data/bin/sc-remove +0 -99
- data/bin/sc-update +0 -99
- data/clients/sc_docs/HISTORY +0 -3
- data/clients/sc_docs/README +0 -6
- data/clients/sc_docs/controllers/docs.js +0 -150
- data/clients/sc_docs/core.js +0 -19
- data/clients/sc_docs/english.lproj/body.css +0 -112
- data/clients/sc_docs/english.lproj/body.rhtml +0 -58
- data/clients/sc_docs/english.lproj/no_docs.rhtml +0 -8
- data/clients/sc_docs/english.lproj/strings.js +0 -14
- data/clients/sc_docs/english.lproj/tabs.rhtml +0 -16
- data/clients/sc_docs/fixtures/doc.js +0 -11
- data/clients/sc_docs/main.js +0 -26
- data/clients/sc_docs/models/doc.js +0 -15
- data/clients/sc_docs/tests/controllers/docs.rhtml +0 -20
- data/clients/sc_docs/tests/models/doc.rhtml +0 -20
- data/clients/sc_docs/tests/views/doc_frame.rhtml +0 -20
- data/clients/sc_docs/tests/views/doc_label_view.rhtml +0 -20
- data/clients/sc_docs/views/doc_frame.js +0 -33
- data/clients/sc_docs/views/doc_label.js +0 -20
- data/clients/sc_test_runner/HISTORY +0 -3
- data/clients/sc_test_runner/README +0 -4
- data/clients/sc_test_runner/controllers/runner.js +0 -203
- data/clients/sc_test_runner/core.js +0 -19
- data/clients/sc_test_runner/english.lproj/body.css +0 -91
- data/clients/sc_test_runner/english.lproj/body.rhtml +0 -76
- data/clients/sc_test_runner/english.lproj/icons/small/next.png +0 -0
- data/clients/sc_test_runner/english.lproj/icons/small/reset.png +0 -0
- data/clients/sc_test_runner/english.lproj/images/gradients.png +0 -0
- data/clients/sc_test_runner/english.lproj/images/toolbar.png +0 -0
- data/clients/sc_test_runner/english.lproj/no_tests.rhtml +0 -5
- data/clients/sc_test_runner/english.lproj/strings.js +0 -14
- data/clients/sc_test_runner/fixtures/test.js +0 -12
- data/clients/sc_test_runner/main.js +0 -21
- data/clients/sc_test_runner/models/test.js +0 -27
- data/clients/sc_test_runner/views/runner_frame.js +0 -74
- data/clients/sc_test_runner/views/test_label.js +0 -20
- data/config/hoe.rb +0 -72
- data/config/requirements.rb +0 -17
- data/frameworks/prototype/HISTORY +0 -3
- data/frameworks/prototype/README +0 -2
- data/frameworks/prototype/prototype.js +0 -4223
- data/frameworks/sproutcore/controllers/array.js +0 -409
- data/frameworks/sproutcore/controllers/collection.js +0 -203
- data/frameworks/sproutcore/controllers/controller.js +0 -323
- data/frameworks/sproutcore/controllers/object.js +0 -401
- data/frameworks/sproutcore/core.js +0 -636
- data/frameworks/sproutcore/debug/trace.js +0 -81
- data/frameworks/sproutcore/debug/unittest.js +0 -626
- data/frameworks/sproutcore/drag/drag.js +0 -788
- data/frameworks/sproutcore/drag/drag_data_source.js +0 -40
- data/frameworks/sproutcore/drag/drag_source.js +0 -75
- data/frameworks/sproutcore/drag/drop_target.js +0 -160
- data/frameworks/sproutcore/english.lproj/buttons.css +0 -694
- data/frameworks/sproutcore/english.lproj/core.css +0 -145
- data/frameworks/sproutcore/english.lproj/detect-browser +0 -44
- data/frameworks/sproutcore/english.lproj/icons.css +0 -227
- data/frameworks/sproutcore/english.lproj/images/indicator.gif +0 -0
- data/frameworks/sproutcore/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/english.lproj/menu.css +0 -122
- data/frameworks/sproutcore/english.lproj/panes.css +0 -136
- data/frameworks/sproutcore/english.lproj/picker.css +0 -22
- data/frameworks/sproutcore/english.lproj/splitview.css +0 -83
- data/frameworks/sproutcore/english.lproj/strings.js +0 -20
- data/frameworks/sproutcore/english.lproj/tab.css +0 -23
- data/frameworks/sproutcore/english.lproj/tests.css +0 -67
- data/frameworks/sproutcore/english.lproj/theme.css +0 -502
- data/frameworks/sproutcore/foundation/animator.js +0 -679
- data/frameworks/sproutcore/foundation/application.js +0 -228
- data/frameworks/sproutcore/foundation/benchmark.js +0 -244
- data/frameworks/sproutcore/foundation/binding.js +0 -385
- data/frameworks/sproutcore/foundation/date.js +0 -357
- data/frameworks/sproutcore/foundation/enumerator.js +0 -105
- data/frameworks/sproutcore/foundation/error.js +0 -84
- data/frameworks/sproutcore/foundation/input_manager.js +0 -165
- data/frameworks/sproutcore/foundation/json.js +0 -296
- data/frameworks/sproutcore/foundation/mock.js +0 -42
- data/frameworks/sproutcore/foundation/node_descriptor.js +0 -71
- data/frameworks/sproutcore/foundation/object.js +0 -875
- data/frameworks/sproutcore/foundation/page.js +0 -67
- data/frameworks/sproutcore/foundation/path_module.js +0 -431
- data/frameworks/sproutcore/foundation/responder.js +0 -313
- data/frameworks/sproutcore/foundation/routes.js +0 -375
- data/frameworks/sproutcore/foundation/run_loop.js +0 -322
- data/frameworks/sproutcore/foundation/set.js +0 -222
- data/frameworks/sproutcore/foundation/string.js +0 -319
- data/frameworks/sproutcore/foundation/timer.js +0 -405
- data/frameworks/sproutcore/foundation/undo_manager.js +0 -186
- data/frameworks/sproutcore/foundation/utils.js +0 -320
- data/frameworks/sproutcore/globals/panels.js +0 -182
- data/frameworks/sproutcore/globals/popups.js +0 -61
- data/frameworks/sproutcore/globals/window.js +0 -498
- data/frameworks/sproutcore/lib/button_views.rb +0 -330
- data/frameworks/sproutcore/lib/collection_view.rb +0 -83
- data/frameworks/sproutcore/lib/core_views.rb +0 -326
- data/frameworks/sproutcore/lib/form_views.rb +0 -253
- data/frameworks/sproutcore/lib/menu_views.rb +0 -93
- data/frameworks/sproutcore/mixins/array.js +0 -265
- data/frameworks/sproutcore/mixins/collection_view_delegate.js +0 -201
- data/frameworks/sproutcore/mixins/control.js +0 -265
- data/frameworks/sproutcore/mixins/delegate_support.js +0 -66
- data/frameworks/sproutcore/mixins/editable.js +0 -144
- data/frameworks/sproutcore/mixins/enumerable.js +0 -1002
- data/frameworks/sproutcore/mixins/inline_editor_delegate.js +0 -82
- data/frameworks/sproutcore/mixins/observable.js +0 -1060
- data/frameworks/sproutcore/mixins/scrollable.js +0 -246
- data/frameworks/sproutcore/mixins/selection_support.js +0 -160
- data/frameworks/sproutcore/mixins/validatable.js +0 -152
- data/frameworks/sproutcore/models/collection.js +0 -421
- data/frameworks/sproutcore/models/record.js +0 -811
- data/frameworks/sproutcore/models/store.js +0 -352
- data/frameworks/sproutcore/panes/dialog.js +0 -16
- data/frameworks/sproutcore/panes/manager.js +0 -164
- data/frameworks/sproutcore/panes/menu.js +0 -45
- data/frameworks/sproutcore/panes/overlay.js +0 -235
- data/frameworks/sproutcore/panes/pane.js +0 -117
- data/frameworks/sproutcore/panes/panel.js +0 -19
- data/frameworks/sproutcore/panes/picker.js +0 -46
- data/frameworks/sproutcore/server/rails_server.js +0 -79
- data/frameworks/sproutcore/server/rest_server.js +0 -177
- data/frameworks/sproutcore/server/server.js +0 -629
- data/frameworks/sproutcore/tests/controllers/array.rhtml +0 -126
- data/frameworks/sproutcore/tests/controllers/controller.rhtml +0 -273
- data/frameworks/sproutcore/tests/controllers/object.rhtml +0 -353
- data/frameworks/sproutcore/tests/core/guidFor.rhtml +0 -114
- data/frameworks/sproutcore/tests/foundation/application.rhtml +0 -125
- data/frameworks/sproutcore/tests/foundation/array.rhtml +0 -220
- data/frameworks/sproutcore/tests/foundation/object.rhtml +0 -69
- data/frameworks/sproutcore/tests/foundation/set.rhtml +0 -254
- data/frameworks/sproutcore/tests/foundation/timer/invalidate.rhtml +0 -33
- data/frameworks/sproutcore/tests/foundation/timer/invokeLater.rhtml +0 -145
- data/frameworks/sproutcore/tests/foundation/timer/isPaused.rhtml +0 -70
- data/frameworks/sproutcore/tests/foundation/timer/schedule.rhtml +0 -145
- data/frameworks/sproutcore/tests/globals/window.rhtml +0 -45
- data/frameworks/sproutcore/tests/mixins/enumerable.rhtml +0 -421
- data/frameworks/sproutcore/tests/mixins/observable.rhtml +0 -127
- data/frameworks/sproutcore/tests/models/collection.rhtml +0 -160
- data/frameworks/sproutcore/tests/models/model.rhtml +0 -373
- data/frameworks/sproutcore/tests/panes/pane.rhtml +0 -88
- data/frameworks/sproutcore/tests/views/checkbox.rhtml +0 -21
- data/frameworks/sproutcore/tests/views/collection/base.rhtml +0 -211
- data/frameworks/sproutcore/tests/views/collection/incremental_rendering.rhtml +0 -260
- data/frameworks/sproutcore/tests/views/collection/source_list_rendering.rhtml +0 -232
- data/frameworks/sproutcore/tests/views/image_cell.rhtml +0 -19
- data/frameworks/sproutcore/tests/views/label_item.rhtml +0 -19
- data/frameworks/sproutcore/tests/views/list.rhtml +0 -20
- data/frameworks/sproutcore/tests/views/list_item.rhtml +0 -20
- data/frameworks/sproutcore/tests/views/popup_button.rhtml +0 -116
- data/frameworks/sproutcore/tests/views/slider.rhtml +0 -20
- data/frameworks/sproutcore/tests/views/text_cell.rhtml +0 -19
- data/frameworks/sproutcore/tests/views/text_field.rhtml +0 -37
- data/frameworks/sproutcore/tests/views/view/clippingFrame.rhtml +0 -401
- data/frameworks/sproutcore/tests/views/view/frame.rhtml +0 -357
- data/frameworks/sproutcore/tests/views/view/innerFrame.rhtml +0 -366
- data/frameworks/sproutcore/tests/views/view/isVisibleInWindow.rhtml +0 -148
- data/frameworks/sproutcore/tests/views/view/scrollFrame.rhtml +0 -467
- data/frameworks/sproutcore/validators/credit_card.js +0 -112
- data/frameworks/sproutcore/validators/date.js +0 -50
- data/frameworks/sproutcore/validators/email.js +0 -47
- data/frameworks/sproutcore/validators/not_empty.js +0 -34
- data/frameworks/sproutcore/validators/number.js +0 -69
- data/frameworks/sproutcore/validators/password.js +0 -89
- data/frameworks/sproutcore/validators/validator.js +0 -314
- data/frameworks/sproutcore/views/button/button.js +0 -478
- data/frameworks/sproutcore/views/button/checkbox.js +0 -29
- data/frameworks/sproutcore/views/button/disclosure.js +0 -42
- data/frameworks/sproutcore/views/button/radio.js +0 -29
- data/frameworks/sproutcore/views/collection/collection.js +0 -2764
- data/frameworks/sproutcore/views/collection/grid.js +0 -251
- data/frameworks/sproutcore/views/collection/image_cell.js +0 -125
- data/frameworks/sproutcore/views/collection/list.js +0 -162
- data/frameworks/sproutcore/views/collection/source_list.js +0 -458
- data/frameworks/sproutcore/views/collection/table.js +0 -118
- data/frameworks/sproutcore/views/container.js +0 -67
- data/frameworks/sproutcore/views/error_explanation.js +0 -58
- data/frameworks/sproutcore/views/field/checkbox_field.js +0 -40
- data/frameworks/sproutcore/views/field/field.js +0 -218
- data/frameworks/sproutcore/views/field/radio_field.js +0 -122
- data/frameworks/sproutcore/views/field/select_field.js +0 -307
- data/frameworks/sproutcore/views/field/text_field.js +0 -251
- data/frameworks/sproutcore/views/field/textarea_field.js +0 -32
- data/frameworks/sproutcore/views/filter_button.js +0 -29
- data/frameworks/sproutcore/views/form.js +0 -597
- data/frameworks/sproutcore/views/image.js +0 -255
- data/frameworks/sproutcore/views/inline_text_field.js +0 -427
- data/frameworks/sproutcore/views/label.js +0 -243
- data/frameworks/sproutcore/views/list_item.js +0 -516
- data/frameworks/sproutcore/views/menu_item.js +0 -97
- data/frameworks/sproutcore/views/pagination.js +0 -62
- data/frameworks/sproutcore/views/popup_button.js +0 -90
- data/frameworks/sproutcore/views/popup_menu.js +0 -139
- data/frameworks/sproutcore/views/progress.js +0 -125
- data/frameworks/sproutcore/views/radio_group.js +0 -48
- data/frameworks/sproutcore/views/scroll.js +0 -74
- data/frameworks/sproutcore/views/segmented.js +0 -105
- data/frameworks/sproutcore/views/slider.js +0 -134
- data/frameworks/sproutcore/views/source_list_group.js +0 -130
- data/frameworks/sproutcore/views/spinner.js +0 -11
- data/frameworks/sproutcore/views/split.js +0 -312
- data/frameworks/sproutcore/views/split_divider.js +0 -112
- data/frameworks/sproutcore/views/tab.js +0 -128
- data/frameworks/sproutcore/views/toolbar.js +0 -29
- data/frameworks/sproutcore/views/view.js +0 -2301
- data/jsdoc/app/frame/Chain.js +0 -102
- data/jsdoc/app/frame/Dumper.js +0 -144
- data/jsdoc/app/frame/Hash.js +0 -47
- data/jsdoc/app/frame/Link.js +0 -142
- data/jsdoc/app/frame/Namespace.js +0 -10
- data/jsdoc/app/frame/Opt.js +0 -134
- data/jsdoc/app/frame/Reflection.js +0 -26
- data/jsdoc/app/frame/String.js +0 -93
- data/jsdoc/app/frame/Testrun.js +0 -129
- data/jsdoc/app/frame.js +0 -33
- data/jsdoc/app/handlers/FOODOC.js +0 -26
- data/jsdoc/app/handlers/XMLDOC.js +0 -26
- data/jsdoc/app/lib/JSDOC/DocComment.js +0 -200
- data/jsdoc/app/lib/JSDOC/DocTag.js +0 -294
- data/jsdoc/app/lib/JSDOC/JsDoc.js +0 -180
- data/jsdoc/app/lib/JSDOC/JsPlate.js +0 -100
- data/jsdoc/app/lib/JSDOC/Lang.js +0 -144
- data/jsdoc/app/lib/JSDOC/Parser.js +0 -109
- data/jsdoc/app/lib/JSDOC/PluginManager.js +0 -33
- data/jsdoc/app/lib/JSDOC/Symbol.js +0 -600
- data/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -220
- data/jsdoc/app/lib/JSDOC/TextStream.js +0 -41
- data/jsdoc/app/lib/JSDOC/Token.js +0 -18
- data/jsdoc/app/lib/JSDOC/TokenReader.js +0 -323
- data/jsdoc/app/lib/JSDOC/TokenStream.js +0 -133
- data/jsdoc/app/lib/JSDOC/Util.js +0 -32
- data/jsdoc/app/lib/JSDOC/Walker.js +0 -416
- data/jsdoc/app/lib/JSDOC.js +0 -97
- data/jsdoc/app/main.js +0 -74
- data/jsdoc/app/plugins/commentSrcJson.js +0 -19
- data/jsdoc/app/plugins/frameworkPrototype.js +0 -16
- data/jsdoc/app/plugins/functionCall.js +0 -10
- data/jsdoc/app/plugins/publishSrcHilite.js +0 -62
- data/jsdoc/app/plugins/symbolLink.js +0 -9
- data/jsdoc/app/plugins/tagParamConfig.js +0 -31
- data/jsdoc/app/plugins/tagSynonyms.js +0 -43
- data/jsdoc/app/run.js +0 -346
- data/jsdoc/templates/sproutcore/allclasses.tmpl +0 -17
- data/jsdoc/templates/sproutcore/allfiles.tmpl +0 -56
- data/jsdoc/templates/sproutcore/class.tmpl +0 -423
- data/jsdoc/templates/sproutcore/index.tmpl +0 -55
- data/jsdoc/templates/sproutcore/publish.js +0 -333
- data/jsdoc/templates/sproutcore/static/default.css +0 -191
- data/jsdoc/templates/sproutcore/static/index.html +0 -19
- data/jsdoc/templates/sproutcore/symbol.tmpl +0 -35
- data/lib/sproutcore/build_tools/html_builder.rb +0 -163
- data/lib/sproutcore/build_tools/resource_builder.rb +0 -256
- data/lib/sproutcore/build_tools/test_template.rhtml +0 -12
- data/lib/sproutcore/build_tools.rb +0 -44
- data/lib/sproutcore/bundle.rb +0 -802
- data/lib/sproutcore/bundle_installer.rb +0 -270
- data/lib/sproutcore/bundle_manifest.rb +0 -574
- data/lib/sproutcore/cssmin.rb +0 -195
- data/lib/sproutcore/generator_helper.rb +0 -185
- data/lib/sproutcore/helpers.rb +0 -3
- data/lib/sproutcore/jsdoc.rb +0 -45
- data/lib/sproutcore/jsmin.rb +0 -247
- data/lib/sproutcore/library.rb +0 -479
- data/lib/sproutcore/merb/bundle_controller.rb +0 -297
- data/lib/sproutcore/merb/router.rb +0 -50
- data/lib/sproutcore/merb.rb +0 -22
- data/lib/sproutcore/renderers/erubis.rb +0 -43
- data/lib/sproutcore/renderers/haml.rb +0 -28
- data/lib/sproutcore/renderers/sass.rb +0 -42
- data/lib/sproutcore/version.rb +0 -9
- data/lib/sproutcore/view_helpers.rb +0 -656
- data/sc-config +0 -16
- data/sc_generators/client/README +0 -3
- data/sc_generators/client/USAGE +0 -11
- data/sc_generators/client/client_generator.rb +0 -45
- data/sc_generators/client/templates/core.js +0 -16
- data/sc_generators/client/templates/english.lproj/body.css +0 -147
- data/sc_generators/client/templates/english.lproj/body.rhtml +0 -18
- data/sc_generators/client/templates/english.lproj/strings.js +0 -13
- data/sc_generators/client/templates/main.js +0 -35
- data/sc_generators/controller/USAGE +0 -15
- data/sc_generators/controller/controller_generator.rb +0 -51
- data/sc_generators/controller/templates/controller.js +0 -21
- data/sc_generators/controller/templates/test.rhtml +0 -22
- data/sc_generators/framework/README +0 -6
- data/sc_generators/framework/USAGE +0 -11
- data/sc_generators/framework/framework_generator.rb +0 -53
- data/sc_generators/framework/templates/core.js +0 -20
- data/sc_generators/framework/templates/english.lproj/strings.js +0 -13
- data/sc_generators/language/USAGE +0 -13
- data/sc_generators/language/language_generator.rb +0 -47
- data/sc_generators/language/templates/strings.js +0 -13
- data/sc_generators/model/USAGE +0 -23
- data/sc_generators/model/model_generator.rb +0 -55
- data/sc_generators/model/templates/fixture.js +0 -43
- data/sc_generators/model/templates/model.js +0 -20
- data/sc_generators/model/templates/test.rhtml +0 -21
- data/sc_generators/test/USAGE +0 -15
- data/sc_generators/test/templates/test.rhtml +0 -21
- data/sc_generators/test/test_generator.rb +0 -47
- data/sc_generators/view/USAGE +0 -15
- data/sc_generators/view/templates/test.rhtml +0 -21
- data/sc_generators/view/templates/view.js +0 -20
- data/sc_generators/view/view_generator.rb +0 -51
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/script/txt2html +0 -74
- data/setup.rb +0 -1585
- data/spec/sproutcore_spec.rb +0 -11
- data/tasks/deployment.rake +0 -47
- data/tasks/environment.rake +0 -7
- data/tasks/rspec.rake +0 -21
- data/tasks/website.rake +0 -17
|
@@ -1,1060 +0,0 @@
|
|
|
1
|
-
// ========================================================================
|
|
2
|
-
// SproutCore
|
|
3
|
-
// copyright 2006-2008 Sprout Systems, Inc.
|
|
4
|
-
// ========================================================================
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
@namespace
|
|
8
|
-
|
|
9
|
-
Key-Value-Observing (KVO) simply allows one object to observe changes to a
|
|
10
|
-
property on another object. It is one of the fundamental ways that models,
|
|
11
|
-
controllers and views communicate with each other in a SproutCore
|
|
12
|
-
application. Any object that has this module applied to it can be used in
|
|
13
|
-
KVO-operations.
|
|
14
|
-
|
|
15
|
-
This module is applied automatically to all objects that inherit from
|
|
16
|
-
SC.Object, which includes most objects bundled with the SproutCore
|
|
17
|
-
framework. You will not generally apply this module to classes yourself,
|
|
18
|
-
but you will use the features provided by this module frequently, so it is
|
|
19
|
-
important to understand how to use it.
|
|
20
|
-
|
|
21
|
-
h2. Enabling Key Value Observing
|
|
22
|
-
|
|
23
|
-
With KVO, you can write functions that will be called automatically whenever
|
|
24
|
-
a property on a particular object changes. You can use this feature to
|
|
25
|
-
reduce the amount of "glue code" that you often write to tie the various
|
|
26
|
-
parts of your application together.
|
|
27
|
-
|
|
28
|
-
To use KVO, just use the KVO-aware methods get() and set() to access
|
|
29
|
-
properties instead of accessing properties directly. Instead of writing:
|
|
30
|
-
|
|
31
|
-
{{{
|
|
32
|
-
var aName = contact.firstName ;
|
|
33
|
-
contact.firstName = 'Charles' ;
|
|
34
|
-
}}}
|
|
35
|
-
|
|
36
|
-
use:
|
|
37
|
-
|
|
38
|
-
{{{
|
|
39
|
-
var aName = contact.get('firstName') ;
|
|
40
|
-
contact.set('firstName', 'Charles') ;
|
|
41
|
-
}}}
|
|
42
|
-
|
|
43
|
-
get() and set() work just like the normal "dot operators" provided by
|
|
44
|
-
JavaScript but they provide you with much more power, including not only
|
|
45
|
-
observing but computed properties as well.
|
|
46
|
-
|
|
47
|
-
h2. Observing Property Changes
|
|
48
|
-
|
|
49
|
-
You typically observe property changes simply by adding the observes()
|
|
50
|
-
call to the end of your method declarations in classes that you write. For
|
|
51
|
-
example:
|
|
52
|
-
|
|
53
|
-
{{{
|
|
54
|
-
SC.Object.create({
|
|
55
|
-
valueObserver: function() {
|
|
56
|
-
// Executes whenever the "Value" property changes
|
|
57
|
-
}.observes('value')
|
|
58
|
-
}) ;
|
|
59
|
-
}}}
|
|
60
|
-
|
|
61
|
-
Although this is the most common way to add an observer, this capability is
|
|
62
|
-
actually built into the SC.Object class on top of two methods defined in
|
|
63
|
-
this mixin called addObserver() and removeObserver(). You can use these two
|
|
64
|
-
methods to add and remove observers yourself if you need to do so at run
|
|
65
|
-
time.
|
|
66
|
-
|
|
67
|
-
To add an observer for a property, just call:
|
|
68
|
-
|
|
69
|
-
{{{
|
|
70
|
-
object.addObserver('propertyKey', targetObject, targetAction) ;
|
|
71
|
-
}}}
|
|
72
|
-
|
|
73
|
-
This will call the 'targetAction' method on the targetObject to be called
|
|
74
|
-
whenever the value of the propertyKey changes.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
h2. Implementing Manual Change Notifications
|
|
78
|
-
|
|
79
|
-
Sometimes you may want to control the rate at which notifications for
|
|
80
|
-
a property are delivered, for example by checking first to make sure
|
|
81
|
-
that the value has changed.
|
|
82
|
-
|
|
83
|
-
To do this, you need to implement a computed property for the property
|
|
84
|
-
you want to change and override automaticallyNotifiesObserversFor().
|
|
85
|
-
|
|
86
|
-
The example below will only notify if the "balance" property value actually
|
|
87
|
-
changes:
|
|
88
|
-
|
|
89
|
-
{{{
|
|
90
|
-
|
|
91
|
-
automaticallyNotifiesObserversFor: function(key) {
|
|
92
|
-
return (key === 'balance') ? NO : sc_super() ;
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
balance: function(key, value) {
|
|
96
|
-
var balance = this._balance ;
|
|
97
|
-
if ((value !== undefined) && (balance !== value)) {
|
|
98
|
-
this.propertyWillChange(key) ;
|
|
99
|
-
balance = this._balance = value ;
|
|
100
|
-
this.propertyDidChange(key) ;
|
|
101
|
-
}
|
|
102
|
-
return balance ;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
}}}
|
|
106
|
-
|
|
107
|
-
*/
|
|
108
|
-
SC.Observable = {
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
Determines whether observers should be automatically notified of changes
|
|
112
|
-
to a key.
|
|
113
|
-
|
|
114
|
-
If you are manually implementing change notifications for a property, you
|
|
115
|
-
can override this method to return NO for properties you do not want the
|
|
116
|
-
observing system to automatically notify for.
|
|
117
|
-
|
|
118
|
-
The default implementation always returns YES.
|
|
119
|
-
|
|
120
|
-
@param key {String} the key that is changing
|
|
121
|
-
@returns {Boolean} YES if automatic notification should occur.
|
|
122
|
-
*/
|
|
123
|
-
automaticallyNotifiesObserversFor: function(key) {
|
|
124
|
-
return YES;
|
|
125
|
-
},
|
|
126
|
-
|
|
127
|
-
// ..........................................
|
|
128
|
-
// PROPERTIES
|
|
129
|
-
//
|
|
130
|
-
// Use these methods to get/set properties. This will handle observing
|
|
131
|
-
// notifications as well as allowing you to define functions that can be
|
|
132
|
-
// used as properties.
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
Retrieves the value of key from the object.
|
|
136
|
-
|
|
137
|
-
This method is generally very similar to using object[key] or object.key,
|
|
138
|
-
however it supports both computed properties and the unknownProperty
|
|
139
|
-
handler.
|
|
140
|
-
|
|
141
|
-
*Computed Properties*
|
|
142
|
-
|
|
143
|
-
Computed properties are methods defined with the property() modifier
|
|
144
|
-
declared at the end, such as:
|
|
145
|
-
|
|
146
|
-
{{{
|
|
147
|
-
fullName: function() {
|
|
148
|
-
return this.getEach('firstName', 'lastName').compact().join(' ');
|
|
149
|
-
}.property('firstName', 'lastName')
|
|
150
|
-
}}}
|
|
151
|
-
|
|
152
|
-
When you call get() on a computed property, the property function will be
|
|
153
|
-
called and the return value will be returned instead of the function
|
|
154
|
-
itself.
|
|
155
|
-
|
|
156
|
-
*Unknown Properties*
|
|
157
|
-
|
|
158
|
-
Likewise, if you try to call get() on a property whose values is
|
|
159
|
-
undefined, the unknownProperty() method will be called on the object.
|
|
160
|
-
If this method reutrns any value other than undefined, it will be returned
|
|
161
|
-
instead. This allows you to implement "virtual" properties that are
|
|
162
|
-
not defined upfront.
|
|
163
|
-
|
|
164
|
-
@param key {String} the property to retrieve
|
|
165
|
-
@returns {Object} the property value or undefined.
|
|
166
|
-
|
|
167
|
-
*/
|
|
168
|
-
get: function(key) {
|
|
169
|
-
var ret = this[key] ;
|
|
170
|
-
if (ret === undefined) {
|
|
171
|
-
return this.unknownProperty(key) ;
|
|
172
|
-
} else if (ret && ret.isProperty) {
|
|
173
|
-
return ret.call(this,key) ;
|
|
174
|
-
} else return ret ;
|
|
175
|
-
},
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
Sets the key equal to value.
|
|
179
|
-
|
|
180
|
-
This method is generally very similar to calling object[key] = value or
|
|
181
|
-
object.key = value, except that it provides support for computed
|
|
182
|
-
properties, the unknownProperty() method and property observers.
|
|
183
|
-
|
|
184
|
-
*Computed Properties*
|
|
185
|
-
|
|
186
|
-
If you try to set a value on a key that has a computed property handler
|
|
187
|
-
defined (see the get() method for an example), then set() will call
|
|
188
|
-
that method, passing both the value and key instead of simply changing
|
|
189
|
-
the value itself. This is useful for those times when you need to
|
|
190
|
-
implement a property that is composed of one or more member
|
|
191
|
-
properties.
|
|
192
|
-
|
|
193
|
-
*Unknown Properties*
|
|
194
|
-
|
|
195
|
-
If you try to set a value on a key that is undefined in the target
|
|
196
|
-
object, then the unknownProperty() handler will be called instead. This
|
|
197
|
-
gives you an opportunity to implement complex "virtual" properties that
|
|
198
|
-
are not predefined on the obejct. If unknownProperty() returns
|
|
199
|
-
undefined, then set() will simply set the value on the object.
|
|
200
|
-
|
|
201
|
-
*Property Observers*
|
|
202
|
-
|
|
203
|
-
In addition to changing the property, set() will also register a
|
|
204
|
-
property change with the object. Unless you have placed this call
|
|
205
|
-
inside of a beginPropertyChanges() and endPropertyChanges(), any "local"
|
|
206
|
-
observers (i.e. observer methods declared on the same object), will be
|
|
207
|
-
called immediately. Any "remote" observers (i.e. observer methods
|
|
208
|
-
declared on another object) will be placed in a queue and called at a
|
|
209
|
-
later time in a coelesced manner.
|
|
210
|
-
|
|
211
|
-
*Chaining*
|
|
212
|
-
|
|
213
|
-
In addition to property changes, set() returns the value of the object
|
|
214
|
-
itself so you can do chaining like this:
|
|
215
|
-
|
|
216
|
-
{{{
|
|
217
|
-
record.set('firstName', 'Charles').set('lastName', 'Jolley');
|
|
218
|
-
}}}
|
|
219
|
-
|
|
220
|
-
@param key {String} the property to set
|
|
221
|
-
@param value {Object} the value to set or null.
|
|
222
|
-
@returns {this}
|
|
223
|
-
*/
|
|
224
|
-
set: function(key, value) {
|
|
225
|
-
var func = this[key] ;
|
|
226
|
-
var ret = value ;
|
|
227
|
-
var notify = this.automaticallyNotifiesObserversFor(key) ;
|
|
228
|
-
|
|
229
|
-
if (notify) this.propertyWillChange(key) ;
|
|
230
|
-
|
|
231
|
-
// set the value.
|
|
232
|
-
if (func && func.isProperty) {
|
|
233
|
-
ret = func.call(this,key,value) ;
|
|
234
|
-
} else if (func === undefined) {
|
|
235
|
-
ret = this.unknownProperty(key,value) ;
|
|
236
|
-
} else ret = this[key] = value ;
|
|
237
|
-
|
|
238
|
-
// post out notifications.
|
|
239
|
-
if (notify) this.propertyDidChange(key, ret) ;
|
|
240
|
-
return this ;
|
|
241
|
-
},
|
|
242
|
-
|
|
243
|
-
// ..........................................
|
|
244
|
-
// OBSERVERS
|
|
245
|
-
//
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
// ..........................................
|
|
250
|
-
// BINDINGS
|
|
251
|
-
//
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
Manually add a new binding to an object. This is the same as doing
|
|
255
|
-
the more familiar propertyBinding: 'property.path' approach.
|
|
256
|
-
*/
|
|
257
|
-
bind: function(toKey, fromPropertyPath) {
|
|
258
|
-
|
|
259
|
-
var r = SC.idt.active ;
|
|
260
|
-
|
|
261
|
-
var binding ;
|
|
262
|
-
var props = { to: [this, toKey] } ;
|
|
263
|
-
|
|
264
|
-
// for strings try to do default relay
|
|
265
|
-
var pathType = $type(fromPropertyPath) ;
|
|
266
|
-
if (pathType == T_STRING || pathType == T_ARRAY) {
|
|
267
|
-
binding = this[toKey + 'BindingDefault'] || SC.Binding.From;
|
|
268
|
-
binding = binding(fromPropertyPath) ;
|
|
269
|
-
} else binding = fromPropertyPath ;
|
|
270
|
-
|
|
271
|
-
// check the 'from' value of the relay. if it starts w/
|
|
272
|
-
// '.' || '*' then convert to a local tuple.
|
|
273
|
-
var relayFrom = binding.prototype.from ;
|
|
274
|
-
if ($type(relayFrom) == T_STRING) switch(relayFrom.slice(0,1)) {
|
|
275
|
-
case '*':
|
|
276
|
-
case '.':
|
|
277
|
-
relayFrom = [this,relayFrom.slice(1,relayFrom.length)];
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
if(r) bt = new Date().getTime();
|
|
281
|
-
|
|
282
|
-
binding = binding.create(props, { from: relayFrom }) ;
|
|
283
|
-
this.bindings.push(binding) ;
|
|
284
|
-
|
|
285
|
-
if (r) SC.idt.b1_t += (new Date().getTime()) - bt ;
|
|
286
|
-
|
|
287
|
-
return binding ;
|
|
288
|
-
},
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
didChangeFor makes it easy for you to verify that you haven't seen any
|
|
292
|
-
changed values. You need to use this if your method observes multiple
|
|
293
|
-
properties. To use this, call it like this:
|
|
294
|
-
|
|
295
|
-
if (this.didChangeFor('render','height','width')) {
|
|
296
|
-
// DO SOMETHING HERE IF CHANGED.
|
|
297
|
-
}
|
|
298
|
-
*/
|
|
299
|
-
didChangeFor: function(context) {
|
|
300
|
-
var keys = SC.$A(arguments) ;
|
|
301
|
-
context = keys.shift() ;
|
|
302
|
-
|
|
303
|
-
var ret = false ;
|
|
304
|
-
if (!this._didChangeCache) this._didChangeCache = {} ;
|
|
305
|
-
if (!this._didChangeRevisionCache) this._didChangeRevisionCache = {};
|
|
306
|
-
|
|
307
|
-
var seen = this._didChangeCache[context] || {} ;
|
|
308
|
-
var seenRevisions = this._didChangeRevisionCache[context] || {} ;
|
|
309
|
-
var loc = keys.length ;
|
|
310
|
-
var rev = this._kvo().revision ;
|
|
311
|
-
|
|
312
|
-
while(--loc >= 0) {
|
|
313
|
-
var key = keys[loc] ;
|
|
314
|
-
if (seenRevisions[key] != rev) {
|
|
315
|
-
var val = this.get(key) ;
|
|
316
|
-
if (seen[key] !== val) ret = true ;
|
|
317
|
-
seen[key] = val ;
|
|
318
|
-
}
|
|
319
|
-
seenRevisions[key] = rev ;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
this._didChangeCache[context] = seen ;
|
|
323
|
-
this._didChangeRevisionCache[context] = seenRevisions ;
|
|
324
|
-
return ret ;
|
|
325
|
-
},
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
Sets the property only if the passed value is different from the
|
|
331
|
-
current value. Depending on how expensive a get() is on this property,
|
|
332
|
-
this may be more efficient.
|
|
333
|
-
|
|
334
|
-
@param key {String} the key to change
|
|
335
|
-
@param value {Object} the value to change
|
|
336
|
-
@returns {this}
|
|
337
|
-
*/
|
|
338
|
-
setIfChanged: function(key, value) {
|
|
339
|
-
return (this.get(key) !== value) ? this.set(key, value) : this ;
|
|
340
|
-
},
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
Navigates the property path, returning the value at that point.
|
|
344
|
-
|
|
345
|
-
If any object in the path is undefined, returns undefined.
|
|
346
|
-
*/
|
|
347
|
-
getPath: function(path) {
|
|
348
|
-
var tuple = SC.Object.tupleForPropertyPath(path, this) ;
|
|
349
|
-
if (tuple[0] === null) return undefined ;
|
|
350
|
-
return tuple[0].get(tuple[1]) ;
|
|
351
|
-
},
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
Navigates the property path, finally setting the value.
|
|
355
|
-
|
|
356
|
-
@param path {String} the property path to set
|
|
357
|
-
@param value {Object} the value to set
|
|
358
|
-
@returns {this}
|
|
359
|
-
*/
|
|
360
|
-
setPath: function(path, value) {
|
|
361
|
-
var tuple = SC.Object.tupleForPropertyPath(path, this) ;
|
|
362
|
-
if (tuple[0] == null) return null ;
|
|
363
|
-
tuple[0].set(tuple[1], value) ;
|
|
364
|
-
return this;
|
|
365
|
-
},
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
Convenience method to get an array of properties.
|
|
370
|
-
|
|
371
|
-
Pass in multiple property keys or an array of property keys. This
|
|
372
|
-
method uses getPath() so you can also pass key paths.
|
|
373
|
-
|
|
374
|
-
@returns {Array} Values of property keys.
|
|
375
|
-
*/
|
|
376
|
-
getEach: function() {
|
|
377
|
-
var keys = SC.$A(arguments).flatten() ;
|
|
378
|
-
var ret = [];
|
|
379
|
-
for(var idx=0; idx<keys.length;idx++) {
|
|
380
|
-
ret[ret.length] = this.getPath(keys[idx]);
|
|
381
|
-
}
|
|
382
|
-
return ret ;
|
|
383
|
-
},
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
/**
|
|
387
|
-
Increments the value of a property.
|
|
388
|
-
|
|
389
|
-
@param key {String} property name
|
|
390
|
-
@returns {Number} new value of property
|
|
391
|
-
*/
|
|
392
|
-
incrementProperty: function(key) {
|
|
393
|
-
this.set(key,(this.get(key) || 0)+1);
|
|
394
|
-
return this.get(key) ;
|
|
395
|
-
},
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
decrements a property
|
|
399
|
-
|
|
400
|
-
@param key {String} property name
|
|
401
|
-
@returns {Number} new value of property
|
|
402
|
-
*/
|
|
403
|
-
decrementProperty: function(key) {
|
|
404
|
-
this.set(key,(this.get(key) || 0) - 1 ) ;
|
|
405
|
-
return this.get(key) ;
|
|
406
|
-
},
|
|
407
|
-
|
|
408
|
-
/**
|
|
409
|
-
Inverts a property. Property should be a bool.
|
|
410
|
-
|
|
411
|
-
@param key {String} property name
|
|
412
|
-
@param value {Object} optional parameter for "true" value
|
|
413
|
-
@param alt {Object} optional parameter for "false" value
|
|
414
|
-
@returns {Object} new value
|
|
415
|
-
*/
|
|
416
|
-
toggleProperty: function(key,value,alt) {
|
|
417
|
-
if (value === undefined) value = true ;
|
|
418
|
-
if (alt == undefined) alt = false ;
|
|
419
|
-
value = (this.get(key) == value) ? alt : value ;
|
|
420
|
-
this.set(key,value);
|
|
421
|
-
return this.get(key) ;
|
|
422
|
-
},
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
Called whenever you try to get or set an undefined property.
|
|
426
|
-
|
|
427
|
-
This is a generic property handler. If you define it, it will be called
|
|
428
|
-
when the named property is not yet set in the object. The default does
|
|
429
|
-
nothing.
|
|
430
|
-
|
|
431
|
-
@param key {String} the key that was requested
|
|
432
|
-
@param value {Object} The value if called as a setter, undefined if called as a getter.
|
|
433
|
-
@returns {Object} The new value for key.
|
|
434
|
-
*/
|
|
435
|
-
unknownProperty: function(key,value) {
|
|
436
|
-
if (!(value === undefined)) { this[key] = value; }
|
|
437
|
-
return value ;
|
|
438
|
-
},
|
|
439
|
-
|
|
440
|
-
/**
|
|
441
|
-
Generic property observer called whenever a property on the receiver
|
|
442
|
-
changes.
|
|
443
|
-
|
|
444
|
-
If you need to observe a large number of properties on your object, it
|
|
445
|
-
is sometimes more efficient to implement this observer only and then to
|
|
446
|
-
handle requests yourself. Although this observer will be triggered
|
|
447
|
-
more often than an observer registered on a specific property, it also
|
|
448
|
-
does not need to be registered which can make it faster to setup your
|
|
449
|
-
object instance.
|
|
450
|
-
|
|
451
|
-
You will often implement this observer using a switch statement on the
|
|
452
|
-
key parameter, taking appropriate action.
|
|
453
|
-
|
|
454
|
-
@param observer {null} no longer used; usually null
|
|
455
|
-
@param target {Object} the target of the change. usually this
|
|
456
|
-
@param key {String} the name of the property that changed
|
|
457
|
-
@param value {Object} the new value of the property.
|
|
458
|
-
@returns {void}
|
|
459
|
-
*/
|
|
460
|
-
propertyObserver: function(observer,target,key,value) {},
|
|
461
|
-
|
|
462
|
-
/**
|
|
463
|
-
Begins a grouping of property changes.
|
|
464
|
-
|
|
465
|
-
You can use this method to group property changes so that notifications
|
|
466
|
-
will not be sent until the changes are finished. If you plan to make a
|
|
467
|
-
large number of changes to an object at one time, you should call this
|
|
468
|
-
method at the beginning of the changes to suspend change notifications.
|
|
469
|
-
When you are done making changes, all endPropertyChanges() to allow
|
|
470
|
-
notification to resume.
|
|
471
|
-
|
|
472
|
-
@returns {this}
|
|
473
|
-
*/
|
|
474
|
-
beginPropertyChanges: function() {
|
|
475
|
-
this._kvo().changes++ ;
|
|
476
|
-
return this;
|
|
477
|
-
},
|
|
478
|
-
|
|
479
|
-
/**
|
|
480
|
-
Ends a grouping of property changes.
|
|
481
|
-
|
|
482
|
-
You can use this method to group property changes so that notifications
|
|
483
|
-
will not be sent until the changes are finished. If you plan to make a
|
|
484
|
-
large number of changes to an object at one time, you should call
|
|
485
|
-
beginsPropertyChanges() at the beginning of the changes to suspend change
|
|
486
|
-
notifications. When you are done making changes, call this method to allow
|
|
487
|
-
notification to resume.
|
|
488
|
-
|
|
489
|
-
@returns {this}
|
|
490
|
-
*/
|
|
491
|
-
endPropertyChanges: function() {
|
|
492
|
-
var kvo = this._kvo() ; kvo.changes--;
|
|
493
|
-
if (kvo.changes <= 0) this._notifyPropertyObservers() ;
|
|
494
|
-
return this ;
|
|
495
|
-
},
|
|
496
|
-
|
|
497
|
-
/**
|
|
498
|
-
Notify the observer system that a property is about to change.
|
|
499
|
-
|
|
500
|
-
Sometimes you need to change a value directly or indirectly without
|
|
501
|
-
actually calling get() or set() on it. In this case, you can use this
|
|
502
|
-
method and propertyDidChange() instead. Calling these two methods
|
|
503
|
-
together will notify all observers that the property has potentially
|
|
504
|
-
changed value.
|
|
505
|
-
|
|
506
|
-
Note that you must always call propertyWillChange and propertyDidChange as
|
|
507
|
-
a pair. If you do not, it may get the property change groups out of order
|
|
508
|
-
and cause notifications to be delivered more often than you would like.
|
|
509
|
-
|
|
510
|
-
@param key {String} The property key that is about to change.
|
|
511
|
-
@returns {this}
|
|
512
|
-
*/
|
|
513
|
-
propertyWillChange: function(key) {
|
|
514
|
-
this._kvo().changes++ ;
|
|
515
|
-
return this ;
|
|
516
|
-
},
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
Notify the observer system that a property has just changed.
|
|
520
|
-
|
|
521
|
-
Sometimes you need to change a value directly or indirectly without
|
|
522
|
-
actually calling get() or set() on it. In this case, you can use this
|
|
523
|
-
method and propertyWillChange() instead. Calling these two methods
|
|
524
|
-
together will notify all observers that the property has potentially
|
|
525
|
-
changed value.
|
|
526
|
-
|
|
527
|
-
Note that you must always call propertyWillChange and propertyDidChange as
|
|
528
|
-
a pair. If you do not, it may get the property change groups out of order
|
|
529
|
-
and cause notifications to be delivered more often than you would like.
|
|
530
|
-
|
|
531
|
-
@param key {String} The property key that has just changed.
|
|
532
|
-
@param value {Object} The new value of the key. May be null.
|
|
533
|
-
@returns {this}
|
|
534
|
-
*/
|
|
535
|
-
propertyDidChange: function(key,value) {
|
|
536
|
-
this._kvo().changed[key] = value ;
|
|
537
|
-
var kvo = this._kvo() ; kvo.changes--; kvo.revision++ ;
|
|
538
|
-
if (kvo.changes <= 0) this._notifyPropertyObservers() ;
|
|
539
|
-
return this ;
|
|
540
|
-
},
|
|
541
|
-
|
|
542
|
-
/**
|
|
543
|
-
Convenience method to call propertyWillChange/propertyDidChange.
|
|
544
|
-
|
|
545
|
-
Sometimes you need to notify observers that a property has changed value
|
|
546
|
-
without actually changing this value. In those cases, you can use this
|
|
547
|
-
method as a convenience instead of calling propertyWillChange() and
|
|
548
|
-
propertyDidChange().
|
|
549
|
-
|
|
550
|
-
@param key {String} The property key that has just changed.
|
|
551
|
-
@param value {Object} The new value of the key. May be null.
|
|
552
|
-
@returns {this}
|
|
553
|
-
*/
|
|
554
|
-
notifyPropertyChange: function(key, value) {
|
|
555
|
-
this.propertyWillChange(key) ;
|
|
556
|
-
this.propertyDidChange(key, value) ;
|
|
557
|
-
return this;
|
|
558
|
-
},
|
|
559
|
-
|
|
560
|
-
/**
|
|
561
|
-
Notifies all of observers of a property changes.
|
|
562
|
-
|
|
563
|
-
Sometimes when you make a major update to your object, it is cheaper to
|
|
564
|
-
simply notify all observers that their property might have changed than
|
|
565
|
-
to figure out specifically which properties actually did change.
|
|
566
|
-
|
|
567
|
-
In those cases, you can simply call this method to notify all property
|
|
568
|
-
observers immediately. Note that this ignores property groups.
|
|
569
|
-
|
|
570
|
-
@returns {this}
|
|
571
|
-
*/
|
|
572
|
-
allPropertiesDidChange: function() {
|
|
573
|
-
this._notifyPropertyObservers(true) ;
|
|
574
|
-
return this ;
|
|
575
|
-
},
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
Adds an observer on a property.
|
|
579
|
-
|
|
580
|
-
This is the core method used to register an observer for a property.
|
|
581
|
-
|
|
582
|
-
Once you call this method, anytime the key's value is set, your observer
|
|
583
|
-
will be notified. Note that the observers are triggered anytime the
|
|
584
|
-
value is set, regardless of whether it has actually changed. Your
|
|
585
|
-
observer should be prepared to handle that.
|
|
586
|
-
|
|
587
|
-
@param key {String} the key to observer
|
|
588
|
-
@param func {String} the function to call when the key changes.
|
|
589
|
-
@returns {SC.Object}
|
|
590
|
-
*/
|
|
591
|
-
addObserver: function(key,func) {
|
|
592
|
-
var kvo = this._kvo() ;
|
|
593
|
-
|
|
594
|
-
// if the key contains a '.', then create a chained observer.
|
|
595
|
-
key = key.toString() ;
|
|
596
|
-
var parts = key.split('.') ;
|
|
597
|
-
if (parts.length > 1) {
|
|
598
|
-
var co = SC._ChainObserver.createChain(this,parts,func) ;
|
|
599
|
-
co.masterFunc = func ;
|
|
600
|
-
var chainObservers = kvo.chainObservers[key] || [] ;
|
|
601
|
-
chainObservers.push(co) ;
|
|
602
|
-
kvo.chainObservers[key] = chainObservers ;
|
|
603
|
-
|
|
604
|
-
// otherwise, bind as a normal property
|
|
605
|
-
} else {
|
|
606
|
-
|
|
607
|
-
// if you add an observer beginning with '@', then we might need to
|
|
608
|
-
// create or register the property...
|
|
609
|
-
if (this.reducedProperty && (key.charAt(0) === '@')) {
|
|
610
|
-
this.reducedProperty(key, undefined) ; // create if needed...
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
var observers = kvo.observers[key] = (kvo.observers[key] || []) ;
|
|
614
|
-
var found = false; var loc = observers.length;
|
|
615
|
-
while(!found && --loc >= 0) found = (observers[loc] == func) ;
|
|
616
|
-
if (!found) observers.push(func) ;
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
return this;
|
|
620
|
-
|
|
621
|
-
},
|
|
622
|
-
|
|
623
|
-
removeObserver: function(key,func) {
|
|
624
|
-
var kvo = this._kvo() ;
|
|
625
|
-
|
|
626
|
-
// if the key contains a '.', this is a chained observer.
|
|
627
|
-
key = key.toString() ;
|
|
628
|
-
var parts = key.split('.') ;
|
|
629
|
-
if (parts.length > 1) {
|
|
630
|
-
var chainObservers = kvo.chainObserver[key] || [] ;
|
|
631
|
-
var newObservers = [] ;
|
|
632
|
-
chainObservers.each(function(co) {
|
|
633
|
-
if (co.masterFunc != func) newObservers.push(co) ;
|
|
634
|
-
}) ;
|
|
635
|
-
kvo.chainObservers[key] = newObservers ;
|
|
636
|
-
|
|
637
|
-
// otherwise, just like a normal observer.
|
|
638
|
-
} else {
|
|
639
|
-
var observers = kvo.observers[key] || [] ;
|
|
640
|
-
observers = observers.without(func) ;
|
|
641
|
-
kvo.observers[key] = observers ;
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
return this;
|
|
645
|
-
},
|
|
646
|
-
|
|
647
|
-
addProbe: function(key) { this.addObserver(key,logChange); },
|
|
648
|
-
removeProbe: function(key) { this.removeObserver(key,logChange); },
|
|
649
|
-
|
|
650
|
-
/**
|
|
651
|
-
Logs the named properties to the console.
|
|
652
|
-
|
|
653
|
-
@param propertyNames one or more property names
|
|
654
|
-
*/
|
|
655
|
-
logProperty: function() {
|
|
656
|
-
var props = SC.$A(arguments) ;
|
|
657
|
-
for(var idx=0;idx<props.length; idx++) {
|
|
658
|
-
var prop = props[idx] ;
|
|
659
|
-
console.log('%@:%@: '.fmt(this._guid, prop), this.get(prop)) ;
|
|
660
|
-
}
|
|
661
|
-
},
|
|
662
|
-
|
|
663
|
-
/**
|
|
664
|
-
This method will listen for the observed value to change one time and
|
|
665
|
-
then will remove itself. You can also set an optional timeout that
|
|
666
|
-
will cause the function to be triggered (and the observer removed) after
|
|
667
|
-
a set amount of time even if the value never changes. The function
|
|
668
|
-
can expect an extra parameter, 'didTimeout', set to true.
|
|
669
|
-
|
|
670
|
-
The returned value is the function actually set as the observer. You
|
|
671
|
-
can manually remove this observer by calling the cancel() method on it.
|
|
672
|
-
*/
|
|
673
|
-
observeOnce: function(key, func, timeout) {
|
|
674
|
-
var timeoutObject = null ;
|
|
675
|
-
var target = this ;
|
|
676
|
-
var handler = function(theTarget,theKey,theValue,didTimeout) {
|
|
677
|
-
func(theTarget,theKey,theValue,didTimeout) ;
|
|
678
|
-
target.removeObserver(key,handler) ;
|
|
679
|
-
if (timeoutObject) { timeoutObject.invalidate(); }
|
|
680
|
-
} ;
|
|
681
|
-
|
|
682
|
-
target.addObserver(key,handler) ;
|
|
683
|
-
if (timeout) timeoutObject = function() {
|
|
684
|
-
handler(target,key,target.get(key),true) ;
|
|
685
|
-
}.invokeLater(this, timeout) ;
|
|
686
|
-
|
|
687
|
-
handler.cancel = function() { target.removeObserver(key,handler); } ;
|
|
688
|
-
return handler ;
|
|
689
|
-
},
|
|
690
|
-
|
|
691
|
-
/**
|
|
692
|
-
Use this to indicate that one key changes if other keys it depends on
|
|
693
|
-
change.
|
|
694
|
-
*/
|
|
695
|
-
registerDependentKey: function(key) {
|
|
696
|
-
var keys = SC.$A(arguments) ;
|
|
697
|
-
var dependent = keys.shift() ;
|
|
698
|
-
var kvo = this._kvo() ;
|
|
699
|
-
for(var loc=0;loc<keys.length;loc++) {
|
|
700
|
-
var key = keys[loc];
|
|
701
|
-
if (key instanceof Array) {
|
|
702
|
-
key.push(dependent) ;
|
|
703
|
-
this.registerDependentKey.apply(this,key) ;
|
|
704
|
-
} else {
|
|
705
|
-
var dependents = kvo.dependents[key] || [] ;
|
|
706
|
-
dependents.push(dependent) ;
|
|
707
|
-
kvo.dependents[key] = dependents ;
|
|
708
|
-
}
|
|
709
|
-
}
|
|
710
|
-
},
|
|
711
|
-
|
|
712
|
-
// INTERNAL PROPERTY SUPPORT
|
|
713
|
-
|
|
714
|
-
// returns the kvo object.
|
|
715
|
-
_kvo: function() {
|
|
716
|
-
if (!this._kvod) this._kvod = {
|
|
717
|
-
changes: 0, changed: {}, observers: {}, dependents: {},
|
|
718
|
-
chainObservers: {}, revision: 0
|
|
719
|
-
} ;
|
|
720
|
-
return this._kvod ;
|
|
721
|
-
},
|
|
722
|
-
|
|
723
|
-
propertyRevision: 1,
|
|
724
|
-
|
|
725
|
-
// this is invoked when the properties changed.
|
|
726
|
-
_notifyPropertyObservers: function(allObservers) {
|
|
727
|
-
// locals
|
|
728
|
-
var key ; var observers ; var keys = [] ;
|
|
729
|
-
var loc; var oloc ; var value ;
|
|
730
|
-
var kvo = this._kvo() ;
|
|
731
|
-
|
|
732
|
-
SC.Observers.flush() ; // hookup as many observers as possible.
|
|
733
|
-
|
|
734
|
-
// increment revision
|
|
735
|
-
this.propertyRevision++;
|
|
736
|
-
|
|
737
|
-
// find the keys to notify on.
|
|
738
|
-
var keySource = (allObservers) ? kvo.observers : kvo.changed ;
|
|
739
|
-
var allKeys = {} ;
|
|
740
|
-
|
|
741
|
-
// This private function is used to recursively discover all
|
|
742
|
-
// dependent keys.
|
|
743
|
-
var _addDependentKeys = function(key) {
|
|
744
|
-
if (allKeys[key] !== undefined) return ;
|
|
745
|
-
allKeys[key] = key ;
|
|
746
|
-
|
|
747
|
-
if (allObservers) return ;
|
|
748
|
-
var dependents = kvo.dependents[key] ;
|
|
749
|
-
if (dependents && dependents.length > 0) {
|
|
750
|
-
var loc = dependents.length ;
|
|
751
|
-
while(--loc >= 0) {
|
|
752
|
-
var depKey = dependents[loc] ;
|
|
753
|
-
_addDependentKeys(depKey) ;
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
} ;
|
|
757
|
-
|
|
758
|
-
// loop throught keys to notify. find all dependent keys as well.
|
|
759
|
-
// note that this loops recursively.
|
|
760
|
-
for(key in keySource) {
|
|
761
|
-
if (!keySource.hasOwnProperty(key)) continue ;
|
|
762
|
-
_addDependentKeys(key) ;
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
// Convert the found keys into an array
|
|
766
|
-
for(key in allKeys) {
|
|
767
|
-
if (!allKeys.hasOwnProperty(key)) continue ;
|
|
768
|
-
keys.push(key) ;
|
|
769
|
-
}
|
|
770
|
-
var starObservers = kvo.observers['*'] ;
|
|
771
|
-
|
|
772
|
-
// clear out changed to avoid recursion.
|
|
773
|
-
var changed = kvo.changed ; kvo.changed = {} ;
|
|
774
|
-
|
|
775
|
-
// notify all observers.
|
|
776
|
-
var target = this ;
|
|
777
|
-
loc = keys.length ;
|
|
778
|
-
|
|
779
|
-
var notifiedKeys = {} ; // avoid duplicates.
|
|
780
|
-
while(--loc >= 0) {
|
|
781
|
-
key = keys[loc] ; observers = kvo.observers[key] ;
|
|
782
|
-
if (!notifiedKeys[key]) {
|
|
783
|
-
notifiedKeys[key] = key ;
|
|
784
|
-
value = (allObservers || (!changed[key])) ? this.get(key) : changed[key];
|
|
785
|
-
|
|
786
|
-
if (starObservers) {
|
|
787
|
-
observers = (observers) ? observers.concat(starObservers) : starObservers ;
|
|
788
|
-
}
|
|
789
|
-
|
|
790
|
-
if (observers) {
|
|
791
|
-
oloc = observers.length ;
|
|
792
|
-
var args = [target, key, value, this.propertyRevision] ;
|
|
793
|
-
while(--oloc >= 0) {
|
|
794
|
-
var observer = observers[oloc] ;
|
|
795
|
-
SC.NotificationQueue.add(null, observer, args) ;
|
|
796
|
-
} // while(oloc)
|
|
797
|
-
} // if (observers)
|
|
798
|
-
|
|
799
|
-
// notify self.
|
|
800
|
-
if (this.propertyObserver != SC.Object.prototype.propertyObserver) {
|
|
801
|
-
SC.NotificationQueue.add(this, this.propertyObserver,
|
|
802
|
-
[null, target, key, value, this.propertyRevision]) ;
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
|
|
806
|
-
} // while(--loc)
|
|
807
|
-
|
|
808
|
-
SC.NotificationQueue.flush() ;
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
} ;
|
|
812
|
-
|
|
813
|
-
SC.mixin(Array.prototype, SC.Observable) ;
|
|
814
|
-
|
|
815
|
-
// ........................................................................
|
|
816
|
-
// FUNCTION ENHANCEMENTS
|
|
817
|
-
//
|
|
818
|
-
// Enhance function.
|
|
819
|
-
SC.mixin(Function.prototype,
|
|
820
|
-
/** @scope Function.prototype */ {
|
|
821
|
-
|
|
822
|
-
/**
|
|
823
|
-
Indicates that the function should be treated as a computed property.
|
|
824
|
-
|
|
825
|
-
Computed properties are methods that you want to treat as if they were
|
|
826
|
-
static properties. When you use get() or set() on a computed property,
|
|
827
|
-
the object will call the property method and return its value instead of
|
|
828
|
-
returning the method itself. This makes it easy to create "virtual
|
|
829
|
-
properties" that are computed dynamically from other properties.
|
|
830
|
-
|
|
831
|
-
Consider the following example:
|
|
832
|
-
|
|
833
|
-
{{{
|
|
834
|
-
contact = SC.Object.create({
|
|
835
|
-
|
|
836
|
-
firstName: "Charles",
|
|
837
|
-
lastName: "Jolley",
|
|
838
|
-
|
|
839
|
-
// This is a computed property!
|
|
840
|
-
fullName: function() {
|
|
841
|
-
return this.getEach('firstName','lastName').compact().join(' ') ;
|
|
842
|
-
}.property('firstName', 'lastName'),
|
|
843
|
-
|
|
844
|
-
// this is not
|
|
845
|
-
getFullName: function() {
|
|
846
|
-
return this.getEach('firstName','lastName').compact().join(' ') ;
|
|
847
|
-
}
|
|
848
|
-
});
|
|
849
|
-
|
|
850
|
-
contact.get('firstName') ;
|
|
851
|
-
--> "Charles"
|
|
852
|
-
|
|
853
|
-
contact.get('fullName') ;
|
|
854
|
-
--> "Charles Jolley"
|
|
855
|
-
|
|
856
|
-
contact.get('getFullName') ;
|
|
857
|
-
--> function()
|
|
858
|
-
}}}
|
|
859
|
-
|
|
860
|
-
Note that when you get the fullName property, SproutCore will call the
|
|
861
|
-
fullName() function and return its value whereas when you get() a property
|
|
862
|
-
that contains a regular method (such as getFullName above), then the
|
|
863
|
-
function itself will be returned instead.
|
|
864
|
-
|
|
865
|
-
h2. Using Dependent Keys
|
|
866
|
-
|
|
867
|
-
Computed properties are often computed dynamically from other member
|
|
868
|
-
properties. Whenever those properties change, you need to notify any
|
|
869
|
-
object that is observing the computed property that the computed property
|
|
870
|
-
has changed also. We call these properties the computed property is based
|
|
871
|
-
upon "dependent keys".
|
|
872
|
-
|
|
873
|
-
For example, in the contact object above, the fullName property depends on
|
|
874
|
-
the firstName and lastName property. If either property value changes,
|
|
875
|
-
any observer watching the fullName property will need to be notified as
|
|
876
|
-
well.
|
|
877
|
-
|
|
878
|
-
You inform SproutCore of these dependent keys by passing the key names
|
|
879
|
-
as parameters to the property() function. Whenever the value of any key
|
|
880
|
-
you name here changes, the computed property will be marked as changed
|
|
881
|
-
also.
|
|
882
|
-
|
|
883
|
-
You should always register dependent keys for computed properties to
|
|
884
|
-
ensure they update.
|
|
885
|
-
|
|
886
|
-
h2. Using Computed Properties as Setters
|
|
887
|
-
|
|
888
|
-
Computed properties can be used to modify the state of an object as well
|
|
889
|
-
as to return a value. Unlike many other key-value system, you use the
|
|
890
|
-
same method to both get and set values on a computed property. To
|
|
891
|
-
write a setter, simply declare two extra parameters: key and value.
|
|
892
|
-
|
|
893
|
-
Whenever your property function is called as a setter, the value
|
|
894
|
-
parameter will be set. Whenever your property is called as a getter the
|
|
895
|
-
value parameter will be undefined.
|
|
896
|
-
|
|
897
|
-
For example, the following object will split any full name that you set
|
|
898
|
-
into a first name and last name components and save them.
|
|
899
|
-
|
|
900
|
-
{{{
|
|
901
|
-
contact = SC.Object.create({
|
|
902
|
-
|
|
903
|
-
fullName: function(key, value) {
|
|
904
|
-
if (value !== undefined) {
|
|
905
|
-
var parts = value.split(' ') ;
|
|
906
|
-
this.beginPropertyChanges()
|
|
907
|
-
.set('firstName', parts[0])
|
|
908
|
-
.set('lastName', parts[1])
|
|
909
|
-
.endPropertyChanges() ;
|
|
910
|
-
}
|
|
911
|
-
return this.getEach('firstName', 'lastName').compact().join(' ');
|
|
912
|
-
}.property('firstName','lastName')
|
|
913
|
-
|
|
914
|
-
}) ;
|
|
915
|
-
|
|
916
|
-
}}}
|
|
917
|
-
|
|
918
|
-
bq. *Why Use The Same Method for Getters and Setters?* Most property-
|
|
919
|
-
based frameworks expect you to write two methods for each property but
|
|
920
|
-
SproutCore only uses one. We do this because most of the time when
|
|
921
|
-
you write a setter is is basically a getter plus some extra work. There
|
|
922
|
-
is little added benefit in writing both methods when you can conditionally
|
|
923
|
-
exclude part of it. This helps to keep your code more compact and easier
|
|
924
|
-
to maintain.
|
|
925
|
-
|
|
926
|
-
@param dependentKeys {String...} optional set of dependent keys
|
|
927
|
-
@returns {Function} the declared function instance
|
|
928
|
-
*/
|
|
929
|
-
property: function() {
|
|
930
|
-
this.dependentKeys = SC.$A(arguments) ;
|
|
931
|
-
this.isProperty = true; return this;
|
|
932
|
-
},
|
|
933
|
-
|
|
934
|
-
// Declare that a function should observe an object at the named path. Note
|
|
935
|
-
// that the path is used only to construct the observation one time.
|
|
936
|
-
observes: function(propertyPaths) {
|
|
937
|
-
this.propertyPaths = SC.$A(arguments);
|
|
938
|
-
return this;
|
|
939
|
-
},
|
|
940
|
-
|
|
941
|
-
typeConverter: function() {
|
|
942
|
-
this.isTypeConverter = true; return this ;
|
|
943
|
-
},
|
|
944
|
-
|
|
945
|
-
/**
|
|
946
|
-
Creates a timer that will execute the function after a specified
|
|
947
|
-
period of time.
|
|
948
|
-
|
|
949
|
-
If you pass an optional set of arguments, the arguments will be passed
|
|
950
|
-
to the function as well. Otherwise the function should have the
|
|
951
|
-
signature:
|
|
952
|
-
|
|
953
|
-
{{{
|
|
954
|
-
function functionName(timer)
|
|
955
|
-
}}}
|
|
956
|
-
|
|
957
|
-
@param interval {Number} the time to wait, in msec
|
|
958
|
-
@param target {Object} optional target object to use as this
|
|
959
|
-
@returns {SC.Timer} scheduled timer
|
|
960
|
-
*/
|
|
961
|
-
invokeLater: function(target, interval) {
|
|
962
|
-
if (interval === undefined) interval = 1 ;
|
|
963
|
-
var f = this;
|
|
964
|
-
if (arguments.length > 2) {
|
|
965
|
-
var args =SC.$A(arguments).slice(2,arguments.length);
|
|
966
|
-
args.unshift(target);
|
|
967
|
-
f = f.bind.apply(f, args) ;
|
|
968
|
-
}
|
|
969
|
-
return SC.Timer.schedule({ target: target, action: f, interval: interval });
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
}) ;
|
|
973
|
-
|
|
974
|
-
// ........................................................................
|
|
975
|
-
// OBSERVER QUEUE
|
|
976
|
-
//
|
|
977
|
-
// This queue is used to hold observers when the object you tried to observe
|
|
978
|
-
// does not exist yet. This queue is flushed just before any property
|
|
979
|
-
// notification is sent.
|
|
980
|
-
SC.Observers = {
|
|
981
|
-
queue: {},
|
|
982
|
-
|
|
983
|
-
addObserver: function(propertyPath, func) {
|
|
984
|
-
// try to get the tuple for this.
|
|
985
|
-
if (typeof(propertyPath) == "string") {
|
|
986
|
-
var tuple = SC.Object.tupleForPropertyPath(propertyPath) ;
|
|
987
|
-
} else {
|
|
988
|
-
var tuple = propertyPath;
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
if (tuple) {
|
|
992
|
-
tuple[0].addObserver(tuple[1],func) ;
|
|
993
|
-
} else {
|
|
994
|
-
var ary = this.queue[propertyPath] || [] ;
|
|
995
|
-
ary.push(func) ;
|
|
996
|
-
this.queue[propertyPath] = ary ;
|
|
997
|
-
}
|
|
998
|
-
},
|
|
999
|
-
|
|
1000
|
-
removeObserver: function(propertyPath, func) {
|
|
1001
|
-
var tuple = SC.Object.tupleForPropertyPath(propertyPath) ;
|
|
1002
|
-
if (tuple) {
|
|
1003
|
-
tuple[0].removeObserver(tuple[1],func) ;
|
|
1004
|
-
}
|
|
1005
|
-
|
|
1006
|
-
var ary = this.queue[propertyPath] ;
|
|
1007
|
-
if (ary) {
|
|
1008
|
-
ary = ary.without(func) ;
|
|
1009
|
-
this.queue[propertyPath] = ary ;
|
|
1010
|
-
}
|
|
1011
|
-
},
|
|
1012
|
-
|
|
1013
|
-
flush: function() {
|
|
1014
|
-
var newQueue = {} ;
|
|
1015
|
-
for(var path in this.queue) {
|
|
1016
|
-
var funcs = this.queue[path] ;
|
|
1017
|
-
var tuple = SC.Object.tupleForPropertyPath(path) ;
|
|
1018
|
-
if (tuple) {
|
|
1019
|
-
var loc = funcs.length ;
|
|
1020
|
-
while(--loc >= 0) {
|
|
1021
|
-
var func = funcs[loc] ;
|
|
1022
|
-
tuple[0].addObserver(tuple[1],func) ;
|
|
1023
|
-
}
|
|
1024
|
-
} else newQueue[path] = funcs ;
|
|
1025
|
-
}
|
|
1026
|
-
|
|
1027
|
-
// set queue to remaining items
|
|
1028
|
-
this.queue = newQueue ;
|
|
1029
|
-
}
|
|
1030
|
-
} ;
|
|
1031
|
-
|
|
1032
|
-
// ........................................................................
|
|
1033
|
-
// NOTIFCATION QUEUE
|
|
1034
|
-
//
|
|
1035
|
-
// Property notifications are placed into this queue first and then processed
|
|
1036
|
-
// to keep the stack size down.
|
|
1037
|
-
SC.NotificationQueue = {
|
|
1038
|
-
queue: [],
|
|
1039
|
-
maxFlush: 5000, // max time you can spend flushing before we reschedule.
|
|
1040
|
-
_flushing: false,
|
|
1041
|
-
add: function(target, func, args) { this.queue.push([target, func, args]);},
|
|
1042
|
-
flush: function(force) {
|
|
1043
|
-
if (this._flushing && !force) return ;
|
|
1044
|
-
this._flushing = true ;
|
|
1045
|
-
|
|
1046
|
-
var start = new Date().getTime() ;
|
|
1047
|
-
var now = start ;
|
|
1048
|
-
var n = null ;
|
|
1049
|
-
while(((now - start) < this.maxFlush) && (n = this.queue.pop())) {
|
|
1050
|
-
var t = n[0] || n[1] ;
|
|
1051
|
-
n[1].apply(t,n[2]) ;
|
|
1052
|
-
now = Date.now() ;
|
|
1053
|
-
}
|
|
1054
|
-
this._flushing = false ;
|
|
1055
|
-
|
|
1056
|
-
if (this.queue.length > 0) {
|
|
1057
|
-
SC.NotificationQueue.flush.invokeLater(SC.NotificationQueue, 1) ;
|
|
1058
|
-
}
|
|
1059
|
-
}
|
|
1060
|
-
} ;
|