sproutcore 1.6.0.beta.3-java → 1.6.0-java
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/CHANGELOG +70 -0
- data/{History.txt → History.rdoc} +0 -0
- data/{README.txt → README.rdoc} +3 -2
- data/Rakefile +213 -10
- data/{Todo.txt → Todo.rdoc} +0 -0
- data/VERSION.yml +1 -1
- data/bin/sc-docs +6 -1
- data/lib/Buildfile +5 -1
- data/lib/buildtasks/manifest.rake +14 -1
- data/lib/buildtasks/target.rake +20 -23
- data/lib/frameworks/sproutcore/Buildfile +8 -3
- data/lib/frameworks/sproutcore/CHANGELOG.md +364 -1
- data/lib/frameworks/sproutcore/README.md +1 -1
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +12 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +19 -5
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +9 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +243 -199
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +250 -172
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +21 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +2 -42
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +38 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +11 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +55 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +26 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +37 -21
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +2 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +157 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +7 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +29 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +162 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +3 -56
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +24 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +59 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controls/button.js +39 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +41 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +19 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +32 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +135 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +29 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +18 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +10 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +414 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/{system → views}/bindable_span.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +112 -40
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +245 -67
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +17 -9
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +8 -18
- data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +296 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +330 -326
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +26 -5
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +69 -58
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +614 -614
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/data_source.js +203 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +20 -13
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +76 -47
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +30 -30
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +74 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/connectDataSource.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +1177 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +212 -182
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +6 -67
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +13 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +41 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/alert.css +49 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/a_sample_image.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/apple-logo1.jpeg +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/iframe.html +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css +20 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/drag.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/icons.css +214 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/cap.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/downbutton.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-cancel-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-down-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-left-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-redo-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-right-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-tools-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-undo-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-up-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-bottom.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-center.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-top.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/track.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/upbutton.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/list_item.css +145 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu.css +10 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu_item_view.css +88 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/modal.css +3 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +91 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/picker.css +37 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/progress.css +29 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/radio.css +11 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +122 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/separator.css +20 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +34 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split_divider.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/tab.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/toolbar.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/touch-scroller.css +13 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/well.css +65 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +58 -23
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +20 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +121 -103
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +34 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +20 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +14 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +43 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +717 -700
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +11 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +16 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +4 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +49 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +9 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/{panes → views}/select_button.js +52 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +4 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +46 -49
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +20 -19
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +249 -249
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/edit_mode.js +13 -5
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/emptiness.js +53 -37
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form_row.js +3 -11
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/edit_mode.js +53 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/emptiness.js +114 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form.js +174 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_row.js +86 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +98 -126
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form_row.js +96 -97
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +2 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +20 -36
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +121 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +90 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/mixins/select_view_menu.js +139 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/render_delegates/select_button.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/ext/menu_resizing.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/bindings.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/check_selected.js +32 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/menu_setup.js +40 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/show_menu.js +45 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/menu_width.js +49 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/selected_item.js +191 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +264 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +450 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split_divider.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +16 -19
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +4 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +85 -16
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/benchmark.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/blank.gif +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/bootstrap.rhtml +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +36 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/checkbox_view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/debug/control-test-pane.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-logo.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/inline_editor.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +47 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/radio_view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/static_layout.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +125 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +0 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +912 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +36 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +58 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +17 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +30 -19
- data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +2 -76
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +3348 -1591
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +38 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/flatten.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +21 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +14 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +0 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +15 -16
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +10 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/requiredObjectForPropertyPath.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +98 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +30 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +4 -73
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +189 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/ext/function.js +122 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +88 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/empty_state.js +34 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +97 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +16 -191
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +17 -79
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/debug/sequence_matcher.js +464 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +31 -11
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/with_concurrent_states.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/advanced.js +40 -6
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/basic.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/intermediate.js +44 -3
- data/lib/frameworks/sproutcore/frameworks/testing/core.js +61 -9
- data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/additions.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/runner.css +10 -2
- data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/testsuite.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +66 -27
- data/lib/frameworks/sproutcore/frameworks/testing/tests/spy_on.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/testing/tests/stub_method.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +80 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/core.css +20 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/fonts.css +39 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +126 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +57 -0
- data/lib/frameworks/sproutcore/lib/index.rhtml +8 -4
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +13 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +16 -14
- data/lib/frameworks/sproutcore/themes/ace/resources/form/form.css +9 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +3 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +2 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +1 -1
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +1 -4
- data/lib/gen/app/templates/apps/@target_name@/core.js +1 -4
- data/lib/gen/app/templates/apps/@target_name@/main.js +1 -4
- data/lib/gen/app/templates/apps/@target_name@/resources/main_page.js +1 -4
- data/lib/gen/app/templates/apps/@target_name@/theme.js +1 -4
- data/lib/gen/controller/templates/controllers/{@filename@.js → @filename@_controller.js} +1 -4
- data/lib/gen/controller/templates/tests/controllers/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/data-source/templates/data_sources/{@filename@.js → @filename@_data_source.js} +1 -4
- data/lib/gen/design/templates/resources/@filename@.js +1 -4
- data/lib/gen/framework/templates/frameworks/@target_name@/core.js +1 -4
- data/lib/gen/framework/templates/frameworks/@target_name@/english.lproj/strings.js +1 -4
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +1 -4
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +2 -0
- data/lib/gen/html_project/templates/@filename@/Buildfile +1 -4
- data/lib/gen/html_project/templates/@filename@/README +1 -4
- data/lib/gen/language/Buildfile +1 -1
- data/lib/gen/language/templates/@filename@/strings.js +1 -4
- data/lib/gen/model/templates/fixtures/{@filename@.js → @filename@_fixtures.js} +2 -5
- data/lib/gen/model/templates/models/{@filename@.js → @filename@_model.js} +1 -4
- data/lib/gen/model/templates/tests/models/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/page/templates/pages/@target_name@/Buildfile +1 -4
- data/lib/gen/page/templates/pages/@target_name@/core.js +1 -4
- data/lib/gen/page/templates/pages/@target_name@/en.lproj/strings.js +1 -4
- data/lib/gen/page/templates/pages/@target_name@/resources/body.css +3 -1
- data/lib/gen/project/templates/@filename@/Buildfile +1 -4
- data/lib/gen/project/templates/@filename@/README +1 -5
- data/lib/gen/responder/templates/states/{@filename@.js → @filename@_state.js} +1 -4
- data/lib/gen/test/templates/tests/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/theme/templates/themes/@target_name@/resources/theme_styles.css +1 -5
- data/lib/gen/theme/templates/themes/@target_name@/theme.js +1 -4
- data/lib/gen/view/templates/tests/views/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/view/templates/views/{@filename@.js → @filename@_view.js} +1 -4
- data/lib/sproutcore.rb +5 -15
- data/lib/sproutcore/builders/base.rb +5 -1
- data/lib/sproutcore/builders/handlebars.rb +12 -1
- data/lib/sproutcore/builders/module.rb +2 -2
- data/lib/sproutcore/buildfile/string_ext.rb +0 -4
- data/lib/sproutcore/helpers/cssmin.rb +44 -59
- data/lib/sproutcore/helpers/static_helper.rb +4 -2
- data/lib/sproutcore/helpers/text_helper.rb +11 -13
- data/lib/sproutcore/models/generator.rb +22 -0
- data/lib/sproutcore/models/manifest.rb +4 -4
- data/lib/sproutcore/models/manifest_entry.rb +1 -0
- data/lib/sproutcore/models/target.rb +3 -107
- data/lib/sproutcore/rack.rb +0 -1
- data/lib/sproutcore/rack/builder.rb +3 -0
- data/lib/sproutcore/rack/dev.rb +0 -1
- data/lib/sproutcore/rack/proxy.rb +240 -93
- data/lib/sproutcore/rack/service.rb +1 -1
- data/lib/sproutcore/render_engines/haml.rb +2 -5
- data/lib/sproutcore/tools.rb +11 -11
- data/lib/sproutcore/tools/build.rb +2 -0
- data/lib/sproutcore/tools/docs.rb +2 -37
- data/lib/sproutcore/tools/init.rb +10 -22
- data/lib/sproutcore/tools/manifest.rb +21 -22
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +21 -1
- data/spec/buildtasks/target_spec.rb +9 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/{template.handlebars → templates/template.handlebars} +2 -0
- data/{lib/doc_templates/sproutcore/allclasses.tmpl → spec/fixtures/ordered_entries/apps/template_style/a.js} +0 -0
- data/spec/fixtures/{real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER → ordered_entries/apps/template_style/template_style.js} +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +1 -1
- data/spec/lib/builders/handlebars_spec.rb +10 -4
- data/spec/lib/buildfile_commands/build_task_spec.rb +1 -1
- data/spec/lib/tools/manifest_spec.rb +11 -0
- data/sproutcore.gemspec +8 -7
- data/vendor/chance/lib/chance/instance.rb +8 -9
- metadata +167 -266
- data/lib/doc_templates/jsdoc/allclasses.tmpl +0 -17
- data/lib/doc_templates/jsdoc/allfiles.tmpl +0 -56
- data/lib/doc_templates/jsdoc/class.tmpl +0 -487
- data/lib/doc_templates/jsdoc/index.tmpl +0 -38
- data/lib/doc_templates/jsdoc/publish.js +0 -170
- data/lib/doc_templates/jsdoc/static/default.css +0 -162
- data/lib/doc_templates/jsdoc/static/header.html +0 -2
- data/lib/doc_templates/jsdoc/static/index.html +0 -19
- data/lib/doc_templates/jsdoc/symbol.tmpl +0 -35
- data/lib/doc_templates/sproutcore/allfiles.tmpl +0 -56
- data/lib/doc_templates/sproutcore/class.tmpl +0 -674
- data/lib/doc_templates/sproutcore/classes-json.tmpl +0 -55
- data/lib/doc_templates/sproutcore/index.tmpl +0 -62
- data/lib/doc_templates/sproutcore/publish.js +0 -346
- data/lib/doc_templates/sproutcore/static/default.css +0 -258
- data/lib/doc_templates/sproutcore/static/header.html +0 -2
- data/lib/doc_templates/sproutcore/static/index.html +0 -19
- data/lib/doc_templates/sproutcore/symbol.tmpl +0 -35
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +0 -378
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/view.css +0 -57
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +0 -56
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +0 -73
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +0 -916
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +0 -185
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +0 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +0 -101
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +0 -91
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +0 -35
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +0 -33
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +0 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +0 -132
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +0 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +0 -69
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +0 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/well.css +0 -71
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/default_styles.css +0 -5
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/strings.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_checkbox_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_label.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_radio_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_text_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +0 -40
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +0 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +0 -146
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +0 -55
- data/lib/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +0 -69
- data/lib/sproutcore/rack/docs.rb +0 -24
- data/vendor/jsdoc/README.txt +0 -151
- data/vendor/jsdoc/app/frame.js +0 -33
- data/vendor/jsdoc/app/frame/Chain.js +0 -102
- data/vendor/jsdoc/app/frame/Dumper.js +0 -144
- data/vendor/jsdoc/app/frame/Hash.js +0 -47
- data/vendor/jsdoc/app/frame/Link.js +0 -142
- data/vendor/jsdoc/app/frame/Namespace.js +0 -10
- data/vendor/jsdoc/app/frame/Opt.js +0 -134
- data/vendor/jsdoc/app/frame/Reflection.js +0 -26
- data/vendor/jsdoc/app/frame/String.js +0 -93
- data/vendor/jsdoc/app/frame/Testrun.js +0 -129
- data/vendor/jsdoc/app/handlers/FOODOC.js +0 -26
- data/vendor/jsdoc/app/handlers/XMLDOC.js +0 -26
- data/vendor/jsdoc/app/handlers/XMLDOC/DomReader.js +0 -159
- data/vendor/jsdoc/app/handlers/XMLDOC/XMLDoc.js +0 -16
- data/vendor/jsdoc/app/handlers/XMLDOC/XMLParse.js +0 -292
- data/vendor/jsdoc/app/lib/JSDOC.js +0 -98
- data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +0 -200
- data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +0 -294
- data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +0 -162
- data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +0 -100
- data/vendor/jsdoc/app/lib/JSDOC/Lang.js +0 -144
- data/vendor/jsdoc/app/lib/JSDOC/Parser.js +0 -109
- data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +0 -33
- data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +0 -681
- data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -226
- data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +0 -41
- data/vendor/jsdoc/app/lib/JSDOC/Token.js +0 -18
- data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +0 -332
- data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +0 -133
- data/vendor/jsdoc/app/lib/JSDOC/Util.js +0 -32
- data/vendor/jsdoc/app/lib/JSDOC/Walker.js +0 -453
- data/vendor/jsdoc/app/main.js +0 -74
- data/vendor/jsdoc/app/plugins/commentSrcJson.js +0 -19
- data/vendor/jsdoc/app/plugins/frameworkPrototype.js +0 -16
- data/vendor/jsdoc/app/plugins/functionCall.js +0 -10
- data/vendor/jsdoc/app/plugins/publishSrcHilite.js +0 -62
- data/vendor/jsdoc/app/plugins/sproutcoreTags.js +0 -26
- data/vendor/jsdoc/app/plugins/symbolLink.js +0 -9
- data/vendor/jsdoc/app/plugins/tagParamConfig.js +0 -31
- data/vendor/jsdoc/app/plugins/tagSynonyms.js +0 -43
- data/vendor/jsdoc/app/run.js +0 -346
- data/vendor/jsdoc/app/t/TestDoc.js +0 -144
- data/vendor/jsdoc/app/t/runner.js +0 -13
- data/vendor/jsdoc/app/test.js +0 -304
- data/vendor/jsdoc/app/test/addon.js +0 -24
- data/vendor/jsdoc/app/test/anon_inner.js +0 -14
- data/vendor/jsdoc/app/test/augments.js +0 -31
- data/vendor/jsdoc/app/test/augments2.js +0 -26
- data/vendor/jsdoc/app/test/borrows.js +0 -41
- data/vendor/jsdoc/app/test/borrows2.js +0 -23
- data/vendor/jsdoc/app/test/config.js +0 -22
- data/vendor/jsdoc/app/test/constructs.js +0 -18
- data/vendor/jsdoc/app/test/encoding.js +0 -10
- data/vendor/jsdoc/app/test/encoding_other.js +0 -12
- data/vendor/jsdoc/app/test/functions_anon.js +0 -39
- data/vendor/jsdoc/app/test/functions_nested.js +0 -33
- data/vendor/jsdoc/app/test/global.js +0 -13
- data/vendor/jsdoc/app/test/globals.js +0 -25
- data/vendor/jsdoc/app/test/ignore.js +0 -10
- data/vendor/jsdoc/app/test/inner.js +0 -16
- data/vendor/jsdoc/app/test/jsdoc_test.js +0 -477
- data/vendor/jsdoc/app/test/lend.js +0 -33
- data/vendor/jsdoc/app/test/memberof.js +0 -20
- data/vendor/jsdoc/app/test/memberof_constructor.js +0 -15
- data/vendor/jsdoc/app/test/name.js +0 -19
- data/vendor/jsdoc/app/test/namespace_nested.js +0 -23
- data/vendor/jsdoc/app/test/nocode.js +0 -13
- data/vendor/jsdoc/app/test/oblit_anon.js +0 -20
- data/vendor/jsdoc/app/test/overview.js +0 -20
- data/vendor/jsdoc/app/test/param_inline.js +0 -37
- data/vendor/jsdoc/app/test/params_optional.js +0 -8
- data/vendor/jsdoc/app/test/prototype.js +0 -17
- data/vendor/jsdoc/app/test/prototype_nested.js +0 -9
- data/vendor/jsdoc/app/test/prototype_oblit.js +0 -13
- data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +0 -24
- data/vendor/jsdoc/app/test/public.js +0 -10
- data/vendor/jsdoc/app/test/shared.js +0 -42
- data/vendor/jsdoc/app/test/shared2.js +0 -2
- data/vendor/jsdoc/app/test/shortcuts.js +0 -22
- data/vendor/jsdoc/app/test/static_this.js +0 -13
- data/vendor/jsdoc/app/test/synonyms.js +0 -23
- data/vendor/jsdoc/app/test/tosource.js +0 -23
- data/vendor/jsdoc/app/test/variable_redefine.js +0 -14
- data/vendor/jsdoc/changes.txt +0 -47
- data/vendor/jsdoc/conf/sample.conf +0 -31
- data/vendor/jsdoc/java/build.xml +0 -36
- data/vendor/jsdoc/java/build_1.4.xml +0 -36
- data/vendor/jsdoc/java/classes/js.jar +0 -0
- data/vendor/jsdoc/java/src/JsDebugRun.java +0 -21
- data/vendor/jsdoc/java/src/JsRun.java +0 -21
- data/vendor/jsdoc/jsdebug.jar +0 -0
- data/vendor/jsdoc/jsrun.jar +0 -0
- data/vendor/jsdoc/t/TestDoc.js +0 -144
- data/vendor/jsdoc/t/runner.js +0 -13
- data/vendor/jsdoc/test.js +0 -304
- data/vendor/jsdoc/test/addon.js +0 -24
- data/vendor/jsdoc/test/anon_inner.js +0 -14
- data/vendor/jsdoc/test/augments.js +0 -31
- data/vendor/jsdoc/test/augments2.js +0 -26
- data/vendor/jsdoc/test/borrows.js +0 -41
- data/vendor/jsdoc/test/borrows2.js +0 -23
- data/vendor/jsdoc/test/config.js +0 -22
- data/vendor/jsdoc/test/constructs.js +0 -18
- data/vendor/jsdoc/test/encoding.js +0 -10
- data/vendor/jsdoc/test/encoding_other.js +0 -12
- data/vendor/jsdoc/test/functions_anon.js +0 -39
- data/vendor/jsdoc/test/functions_nested.js +0 -33
- data/vendor/jsdoc/test/global.js +0 -13
- data/vendor/jsdoc/test/globals.js +0 -25
- data/vendor/jsdoc/test/ignore.js +0 -10
- data/vendor/jsdoc/test/inner.js +0 -16
- data/vendor/jsdoc/test/jsdoc_test.js +0 -477
- data/vendor/jsdoc/test/lend.js +0 -33
- data/vendor/jsdoc/test/memberof.js +0 -20
- data/vendor/jsdoc/test/memberof_constructor.js +0 -15
- data/vendor/jsdoc/test/name.js +0 -19
- data/vendor/jsdoc/test/namespace_nested.js +0 -23
- data/vendor/jsdoc/test/nocode.js +0 -13
- data/vendor/jsdoc/test/oblit_anon.js +0 -20
- data/vendor/jsdoc/test/overview.js +0 -20
- data/vendor/jsdoc/test/param_inline.js +0 -37
- data/vendor/jsdoc/test/params_optional.js +0 -8
- data/vendor/jsdoc/test/prototype.js +0 -17
- data/vendor/jsdoc/test/prototype_nested.js +0 -9
- data/vendor/jsdoc/test/prototype_oblit.js +0 -13
- data/vendor/jsdoc/test/prototype_oblit_constructor.js +0 -24
- data/vendor/jsdoc/test/public.js +0 -10
- data/vendor/jsdoc/test/shared.js +0 -42
- data/vendor/jsdoc/test/shared2.js +0 -2
- data/vendor/jsdoc/test/shortcuts.js +0 -22
- data/vendor/jsdoc/test/static_this.js +0 -13
- data/vendor/jsdoc/test/synonyms.js +0 -23
- data/vendor/jsdoc/test/tosource.js +0 -23
- data/vendor/jsdoc/test/variable_redefine.js +0 -14
|
@@ -9,119 +9,132 @@ sc_require('system/response');
|
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
@class
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
Implements support for Ajax requests using XHR and other prototcols.
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
SC.Request is much like an inverted version of the request/response objects
|
|
16
|
-
you receive when implementing HTTP servers.
|
|
17
|
-
|
|
16
|
+
you receive when implementing HTTP servers.
|
|
17
|
+
|
|
18
18
|
To send a request, you just need to create your request object, configure
|
|
19
19
|
your options, and call send() to initiate the request.
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
@extends SC.Object
|
|
22
22
|
@extends SC.Copyable
|
|
23
23
|
@extends SC.Freezable
|
|
24
24
|
@since SproutCore 1.0
|
|
25
25
|
*/
|
|
26
|
-
|
|
27
26
|
SC.Request = SC.Object.extend(SC.Copyable, SC.Freezable,
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
/** @scope SC.Request.prototype */ {
|
|
28
|
+
|
|
30
29
|
// ..........................................................
|
|
31
30
|
// PROPERTIES
|
|
32
31
|
//
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
Sends the request asynchronously instead of blocking the browser. You
|
|
36
|
-
should almost always make requests asynchronous. You can change this
|
|
37
|
-
options with the async() helper option (or simply set it directly).
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
/**
|
|
34
|
+
Sends the request asynchronously instead of blocking the browser. You
|
|
35
|
+
should almost always make requests asynchronous. You can change this
|
|
36
|
+
options with the async() helper option (or simply set it directly).
|
|
37
|
+
|
|
38
|
+
@type Boolean
|
|
39
|
+
@default YES
|
|
40
|
+
*/
|
|
41
|
+
isAsynchronous: YES,
|
|
43
42
|
|
|
44
43
|
/**
|
|
45
|
-
Processes the request and response as JSON if possible.
|
|
44
|
+
Processes the request and response as JSON if possible. You can change
|
|
46
45
|
this option with the json() helper method.
|
|
47
46
|
|
|
48
|
-
@
|
|
49
|
-
@
|
|
47
|
+
@type Boolean
|
|
48
|
+
@default NO
|
|
50
49
|
*/
|
|
51
50
|
isJSON: NO,
|
|
52
51
|
|
|
53
52
|
/**
|
|
54
|
-
Process the request and response as XML if possible.
|
|
53
|
+
Process the request and response as XML if possible. You can change this
|
|
55
54
|
option with the xml() helper method.
|
|
56
|
-
|
|
55
|
+
|
|
56
|
+
@type Boolean
|
|
57
57
|
@default NO
|
|
58
|
-
@property {Boolean}
|
|
59
58
|
*/
|
|
60
59
|
isXML: NO,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
Specifies whether or not the request will have custom headers attached
|
|
63
|
+
to it. By default, SC.Request attaches X-Requested-With and
|
|
64
|
+
X-SproutCore-Version headers to all outgoing requests. This allows
|
|
65
|
+
you to override that behavior.
|
|
66
|
+
|
|
67
|
+
You may want to set this to NO if you are making simple CORS requests
|
|
68
|
+
in compatible browsers. See <a href="http://www.w3.org/TR/cors/">CORS
|
|
69
|
+
Spec for more informatinon.</a>
|
|
70
|
+
|
|
71
|
+
TODO: Add unit tests for this feature
|
|
72
|
+
|
|
73
|
+
@type Boolean
|
|
74
|
+
@default YES
|
|
75
|
+
*/
|
|
76
|
+
attachIdentifyingHeaders: YES,
|
|
77
|
+
|
|
69
78
|
/**
|
|
70
79
|
Current set of headers for the request
|
|
80
|
+
|
|
81
|
+
@field
|
|
82
|
+
@type Hash
|
|
83
|
+
@default {}
|
|
71
84
|
*/
|
|
72
85
|
headers: function() {
|
|
73
|
-
var ret = this._headers
|
|
74
|
-
if (!ret) ret = this._headers = {}
|
|
75
|
-
return ret
|
|
86
|
+
var ret = this._headers;
|
|
87
|
+
if (!ret) { ret = this._headers = {}; }
|
|
88
|
+
return ret;
|
|
76
89
|
}.property().cacheable(),
|
|
77
90
|
|
|
78
91
|
/**
|
|
79
|
-
Underlying response class to actually handle this request.
|
|
92
|
+
Underlying response class to actually handle this request. Currently the
|
|
80
93
|
only supported option is SC.XHRResponse which uses a traditional
|
|
81
94
|
XHR transport.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
@
|
|
95
|
+
|
|
96
|
+
@type SC.Response
|
|
97
|
+
@default SC.XHRResponse
|
|
85
98
|
*/
|
|
86
99
|
responseClass: SC.XHRResponse,
|
|
87
100
|
|
|
88
101
|
/**
|
|
89
102
|
The original request for copied requests.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
@
|
|
103
|
+
|
|
104
|
+
@property SC.Request
|
|
105
|
+
@default null
|
|
93
106
|
*/
|
|
94
107
|
source: null,
|
|
95
|
-
|
|
108
|
+
|
|
96
109
|
/**
|
|
97
110
|
The URL this request to go to.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
@
|
|
111
|
+
|
|
112
|
+
@type String
|
|
113
|
+
@default null
|
|
101
114
|
*/
|
|
102
115
|
address: null,
|
|
103
|
-
|
|
116
|
+
|
|
104
117
|
/**
|
|
105
118
|
The HTTP method to use.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
@
|
|
119
|
+
|
|
120
|
+
@type String
|
|
121
|
+
@default 'GET'
|
|
109
122
|
*/
|
|
110
123
|
type: 'GET',
|
|
111
124
|
|
|
112
125
|
/**
|
|
113
|
-
An optional timeout value of the request, in milliseconds.
|
|
126
|
+
An optional timeout value of the request, in milliseconds. The timer
|
|
114
127
|
begins when SC.Response#fire is actually invoked by the request manager
|
|
115
|
-
and not necessarily when SC.Request#send is invoked.
|
|
128
|
+
and not necessarily when SC.Request#send is invoked. If this timeout is
|
|
116
129
|
reached before a response is received, the equivalent of
|
|
117
130
|
SC.Request.manager#cancel() will be invoked on the SC.Response instance
|
|
118
131
|
and the didReceive() callback will be called.
|
|
119
132
|
|
|
120
133
|
An exception will be thrown if you try to invoke send() on a request that
|
|
121
134
|
has both a timeout and isAsyncronous set to NO.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
@
|
|
135
|
+
|
|
136
|
+
@type Number
|
|
137
|
+
@default null
|
|
125
138
|
*/
|
|
126
139
|
timeout: null,
|
|
127
140
|
|
|
@@ -129,159 +142,179 @@ isAsynchronous: YES,
|
|
|
129
142
|
The body of the request. May be an object is isJSON or isXML is set,
|
|
130
143
|
otherwise should be a string.
|
|
131
144
|
|
|
132
|
-
|
|
145
|
+
@type Object|String
|
|
146
|
+
@default null
|
|
133
147
|
*/
|
|
134
148
|
body: null,
|
|
135
149
|
|
|
136
150
|
/**
|
|
137
151
|
The body, encoded as JSON or XML if needed.
|
|
138
152
|
|
|
139
|
-
|
|
153
|
+
@field
|
|
154
|
+
@type Object|String
|
|
155
|
+
@default #body
|
|
140
156
|
*/
|
|
141
157
|
encodedBody: function() {
|
|
142
158
|
// TODO: support XML
|
|
143
159
|
var ret = this.get('body');
|
|
144
|
-
if (ret && this.get('isJSON')) ret = SC.json.encode(ret);
|
|
145
|
-
return ret
|
|
160
|
+
if (ret && this.get('isJSON')) { ret = SC.json.encode(ret); }
|
|
161
|
+
return ret;
|
|
146
162
|
}.property('isJSON', 'isXML', 'body').cacheable(),
|
|
147
163
|
|
|
164
|
+
|
|
148
165
|
// ..........................................................
|
|
149
166
|
// CALLBACKS
|
|
150
|
-
//
|
|
151
|
-
|
|
167
|
+
//
|
|
168
|
+
|
|
152
169
|
/**
|
|
153
|
-
Invoked on the original request object just before a copied request is
|
|
154
|
-
frozen and then sent to the server.
|
|
170
|
+
Invoked on the original request object just before a copied request is
|
|
171
|
+
frozen and then sent to the server. This gives you one last change to
|
|
155
172
|
fixup the request; possibly adding headers and other options.
|
|
156
|
-
|
|
173
|
+
|
|
157
174
|
If you do not want the request to actually send, call cancel().
|
|
158
|
-
|
|
175
|
+
|
|
159
176
|
@param {SC.Request} request A copy of the request object, not frozen
|
|
160
177
|
@param {SC.Response} response The object that will wrap the response
|
|
161
178
|
*/
|
|
162
179
|
willSend: function(request, response) {},
|
|
163
|
-
|
|
180
|
+
|
|
164
181
|
/**
|
|
165
182
|
Invoked on the original request object just after the request is sent to
|
|
166
|
-
the server.
|
|
183
|
+
the server. You might use this callback to update some state in your
|
|
167
184
|
application.
|
|
168
|
-
|
|
169
|
-
The passed request is a frozen copy of the request, indicating the
|
|
185
|
+
|
|
186
|
+
The passed request is a frozen copy of the request, indicating the
|
|
170
187
|
options set at the time of the request.
|
|
171
188
|
|
|
172
189
|
@param {SC.Request} request A copy of the request object, frozen
|
|
173
190
|
@param {SC.Response} response The object that will wrap the response
|
|
174
|
-
|
|
191
|
+
@returns {Boolean} YES on success, NO on failure
|
|
175
192
|
*/
|
|
176
193
|
didSend: function(request, response) {},
|
|
177
|
-
|
|
194
|
+
|
|
178
195
|
/**
|
|
179
|
-
Invoked when a response has been received but not yet processed.
|
|
180
|
-
your chance to fix up the response based on the results.
|
|
196
|
+
Invoked when a response has been received but not yet processed. This is
|
|
197
|
+
your chance to fix up the response based on the results. If you don't
|
|
181
198
|
want to continue processing the response call response.cancel().
|
|
182
199
|
|
|
183
200
|
@param {SC.Request} request A copy of the request object, frozen
|
|
184
201
|
@param {SC.Response} response The object that will wrap the response
|
|
185
202
|
*/
|
|
186
203
|
willReceive: function(request, response) {},
|
|
187
|
-
|
|
204
|
+
|
|
188
205
|
/**
|
|
189
206
|
Invoked after a response has been processed but before any listeners are
|
|
190
|
-
notified.
|
|
191
|
-
point.
|
|
207
|
+
notified. You can do any standard processing on the request at this
|
|
208
|
+
point. If you don't want to allow notifications to continue, call
|
|
192
209
|
response.cancel()
|
|
193
210
|
|
|
194
211
|
@param {SC.Request} request A copy of the request object, frozen
|
|
195
212
|
@param {SC.Response} response The object that will wrap the response
|
|
196
213
|
*/
|
|
197
214
|
didReceive: function(request, response) {},
|
|
198
|
-
|
|
215
|
+
|
|
216
|
+
|
|
199
217
|
// ..........................................................
|
|
200
218
|
// HELPER METHODS
|
|
201
|
-
//
|
|
219
|
+
//
|
|
202
220
|
|
|
221
|
+
/** @private */
|
|
203
222
|
concatenatedProperties: 'COPY_KEYS',
|
|
204
223
|
|
|
205
|
-
|
|
224
|
+
/** @private */
|
|
225
|
+
COPY_KEYS: ['attachIdentifyingHeaders', 'isAsynchronous', 'isJSON', 'isXML', 'address', 'type', 'timeout', 'body', 'responseClass', 'willSend', 'didSend', 'willReceive', 'didReceive'],
|
|
206
226
|
|
|
207
227
|
/**
|
|
208
|
-
Returns a copy of the current request.
|
|
228
|
+
Returns a copy of the current request. This will only copy certain
|
|
209
229
|
properties so if you want to add additional properties to the copy you
|
|
210
230
|
will need to override copy() in a subclass.
|
|
211
|
-
|
|
231
|
+
|
|
212
232
|
@returns {SC.Request} new request
|
|
213
233
|
*/
|
|
214
234
|
copy: function() {
|
|
215
235
|
var ret = {},
|
|
216
236
|
keys = this.COPY_KEYS,
|
|
217
|
-
loc
|
|
237
|
+
loc = keys.length,
|
|
218
238
|
key, listeners, headers;
|
|
219
|
-
|
|
220
|
-
while(--loc>=0) {
|
|
239
|
+
|
|
240
|
+
while(--loc >= 0) {
|
|
221
241
|
key = keys[loc];
|
|
222
|
-
if (this.hasOwnProperty(key))
|
|
242
|
+
if (this.hasOwnProperty(key)) {
|
|
243
|
+
ret[key] = this.get(key);
|
|
244
|
+
}
|
|
223
245
|
}
|
|
224
|
-
|
|
246
|
+
|
|
225
247
|
if (this.hasOwnProperty('listeners')) {
|
|
226
248
|
ret.listeners = SC.copy(this.get('listeners'));
|
|
227
249
|
}
|
|
228
|
-
|
|
250
|
+
|
|
229
251
|
if (this.hasOwnProperty('_headers')) {
|
|
230
252
|
ret._headers = SC.copy(this._headers);
|
|
231
253
|
}
|
|
232
|
-
|
|
233
|
-
ret.source = this.get('source') || this
|
|
234
|
-
|
|
254
|
+
|
|
255
|
+
ret.source = this.get('source') || this;
|
|
256
|
+
|
|
235
257
|
return this.constructor.create(ret);
|
|
236
258
|
},
|
|
237
|
-
|
|
259
|
+
|
|
238
260
|
/**
|
|
239
|
-
To set headers on the request object.
|
|
240
|
-
pair or a hash of key/value pairs.
|
|
261
|
+
To set headers on the request object. Pass either a single key/value
|
|
262
|
+
pair or a hash of key/value pairs. If you pass only a header name, this
|
|
241
263
|
will return the current value of the header.
|
|
242
|
-
|
|
264
|
+
|
|
243
265
|
@param {String|Hash} key
|
|
244
266
|
@param {String} value
|
|
245
267
|
@returns {SC.Request|Object} receiver
|
|
246
268
|
*/
|
|
247
269
|
header: function(key, value) {
|
|
248
270
|
var headers;
|
|
249
|
-
|
|
271
|
+
|
|
250
272
|
if (SC.typeOf(key) === SC.T_STRING) {
|
|
251
|
-
headers = this._headers
|
|
252
|
-
if (arguments.length===1) {
|
|
273
|
+
headers = this._headers;
|
|
274
|
+
if (arguments.length === 1) {
|
|
253
275
|
return headers ? headers[key] : null;
|
|
254
276
|
} else {
|
|
255
277
|
this.propertyWillChange('headers');
|
|
256
|
-
if (!headers) headers = this._headers = {};
|
|
278
|
+
if (!headers) { headers = this._headers = {}; }
|
|
257
279
|
headers[key] = value;
|
|
258
280
|
this.propertyDidChange('headers');
|
|
259
281
|
return this;
|
|
260
282
|
}
|
|
261
|
-
|
|
283
|
+
|
|
262
284
|
// handle parsing hash of parameters
|
|
263
285
|
} else if (value === undefined) {
|
|
264
286
|
headers = key;
|
|
265
287
|
this.beginPropertyChanges();
|
|
266
288
|
for(key in headers) {
|
|
267
|
-
if (!headers.hasOwnProperty(key)) continue
|
|
289
|
+
if (!headers.hasOwnProperty(key)) { continue; }
|
|
268
290
|
this.header(key, headers[key]);
|
|
269
291
|
}
|
|
270
292
|
this.endPropertyChanges();
|
|
271
293
|
return this;
|
|
272
294
|
}
|
|
273
295
|
|
|
274
|
-
return this
|
|
296
|
+
return this;
|
|
297
|
+
},
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
Clears the list of headers that were set on this request.
|
|
301
|
+
This could be used by a subclass to blow-away any custom
|
|
302
|
+
headers that were added by the super class.
|
|
303
|
+
*/
|
|
304
|
+
clearHeaders: function() {
|
|
305
|
+
this.propertyWillChange('headers');
|
|
306
|
+
this._headers = {};
|
|
307
|
+
this.propertyDidChange('headers');
|
|
275
308
|
},
|
|
276
309
|
|
|
277
310
|
/**
|
|
278
311
|
Converts the current request to be asynchronous.
|
|
279
312
|
|
|
280
|
-
@param {Boolean} flag YES to make asynchronous, NO or undefined
|
|
313
|
+
@param {Boolean} flag YES to make asynchronous, NO or undefined. Default YES.
|
|
281
314
|
@returns {SC.Request} receiver
|
|
282
315
|
*/
|
|
283
316
|
async: function(flag) {
|
|
284
|
-
if (flag === undefined) flag = YES;
|
|
317
|
+
if (flag === undefined) { flag = YES; }
|
|
285
318
|
return this.set('isAsynchronous', flag);
|
|
286
319
|
},
|
|
287
320
|
|
|
@@ -297,135 +330,142 @@ isAsynchronous: YES,
|
|
|
297
330
|
|
|
298
331
|
/**
|
|
299
332
|
Converts the current request to use JSON.
|
|
300
|
-
|
|
301
|
-
@param {Boolean} flag YES to make JSON, NO or undefined
|
|
333
|
+
|
|
334
|
+
@param {Boolean} flag YES to make JSON, NO or undefined. Default YES.
|
|
302
335
|
@returns {SC.Request} receiver
|
|
303
336
|
*/
|
|
304
337
|
json: function(flag) {
|
|
305
|
-
if (flag === undefined) flag = YES;
|
|
306
|
-
if (flag) this.set('isXML', NO);
|
|
338
|
+
if (flag === undefined) { flag = YES; }
|
|
339
|
+
if (flag) { this.set('isXML', NO); }
|
|
307
340
|
return this.set('isJSON', flag);
|
|
308
341
|
},
|
|
309
|
-
|
|
342
|
+
|
|
310
343
|
/**
|
|
311
344
|
Converts the current request to use XML.
|
|
312
|
-
|
|
313
|
-
@param {Boolean} flag YES to make XML, NO or undefined
|
|
345
|
+
|
|
346
|
+
@param {Boolean} flag YES to make XML, NO or undefined. Default YES.
|
|
314
347
|
@returns {SC.Request} recevier
|
|
315
348
|
*/
|
|
316
349
|
xml: function(flag) {
|
|
317
|
-
if (flag === undefined) flag = YES
|
|
318
|
-
if (flag) this.set('isJSON', NO);
|
|
350
|
+
if (flag === undefined) { flag = YES; }
|
|
351
|
+
if (flag) { this.set('isJSON', NO); }
|
|
319
352
|
return this.set('isXML', flag);
|
|
320
353
|
},
|
|
321
354
|
|
|
322
355
|
/**
|
|
323
356
|
Called just before a request is enqueued. This will encode the body
|
|
324
|
-
into JSON if it is not already encoded
|
|
357
|
+
into JSON if it is not already encoded, and set identifying headers
|
|
325
358
|
*/
|
|
326
359
|
_prep: function() {
|
|
327
360
|
var hasContentType = !!this.header('Content-Type');
|
|
361
|
+
|
|
362
|
+
if(this.get('attachIdentifyingHeaders')) {
|
|
363
|
+
this.header('X-Requested-With', 'XMLHttpRequest');
|
|
364
|
+
this.header('X-SproutCore-Version', SC.VERSION);
|
|
365
|
+
}
|
|
366
|
+
|
|
328
367
|
if (this.get('isJSON') && !hasContentType) {
|
|
329
368
|
this.header('Content-Type', 'application/json');
|
|
330
369
|
} else if (this.get('isXML') && !hasContentType) {
|
|
331
370
|
this.header('Content-Type', 'text/xml');
|
|
332
371
|
}
|
|
333
|
-
return this
|
|
372
|
+
return this;
|
|
334
373
|
},
|
|
335
374
|
|
|
336
375
|
/**
|
|
337
|
-
Will fire the actual request.
|
|
338
|
-
mode then you can pass any object that can be converted to JSON as the
|
|
339
|
-
body.
|
|
376
|
+
Will fire the actual request. If you have set the request to use JSON
|
|
377
|
+
mode then you can pass any object that can be converted to JSON as the
|
|
378
|
+
body. Otherwise you should pass a string body.
|
|
340
379
|
|
|
341
|
-
@param {String|Object} body
|
|
342
|
-
@returns {SC.Response}
|
|
380
|
+
@param {String|Object} [body]
|
|
381
|
+
@returns {SC.Response} New response object
|
|
343
382
|
*/
|
|
344
383
|
send: function(body) {
|
|
345
|
-
// Sanity-check:
|
|
384
|
+
// Sanity-check: Be sure a timeout value was not specified if the request
|
|
346
385
|
// is synchronous (because it wouldn't work).
|
|
347
386
|
var timeout = this.get('timeout');
|
|
348
|
-
if (timeout) {
|
|
349
|
-
|
|
350
|
-
}
|
|
351
|
-
else if (timeout === 0) {
|
|
387
|
+
if (timeout && !this.get('isAsynchronous')) {
|
|
388
|
+
throw "Timeout values cannot be used with synchronous requests";
|
|
389
|
+
} else if (timeout === 0) {
|
|
352
390
|
throw "The timeout value must either not be specified or must be greater than 0";
|
|
353
391
|
}
|
|
354
|
-
|
|
355
|
-
if (body) this.set('body', body);
|
|
392
|
+
|
|
393
|
+
if (body) { this.set('body', body); }
|
|
356
394
|
return SC.Request.manager.sendRequest(this.copy()._prep());
|
|
357
395
|
},
|
|
358
396
|
|
|
359
397
|
/**
|
|
360
|
-
Resends the current request.
|
|
361
|
-
for requests that have already been used in a send.
|
|
362
|
-
like send().
|
|
363
|
-
|
|
398
|
+
Resends the current request. This is more efficient than calling send()
|
|
399
|
+
for requests that have already been used in a send. Otherwise acts just
|
|
400
|
+
like send(). Does not take a body argument.
|
|
401
|
+
|
|
364
402
|
@returns {SC.Response} new response object
|
|
365
403
|
*/
|
|
366
404
|
resend: function() {
|
|
367
405
|
var req = this.get('source') ? this : this.copy()._prep();
|
|
368
406
|
return SC.Request.manager.sendRequest(req);
|
|
369
407
|
},
|
|
370
|
-
|
|
408
|
+
|
|
371
409
|
/**
|
|
372
|
-
Configures a callback to execute when a request completes.
|
|
410
|
+
Configures a callback to execute when a request completes. You must pass
|
|
373
411
|
at least a target and action/method to this and optionally a status code.
|
|
374
412
|
You may also pass additional parameters which will be passed along to your
|
|
375
413
|
callback. If your callback handled the notification, it should return YES.
|
|
376
|
-
|
|
377
|
-
Scoping With Status Codes
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
If you pass a status code as the first option to this method, then your
|
|
414
|
+
|
|
415
|
+
## Scoping With Status Codes
|
|
416
|
+
|
|
417
|
+
If you pass a status code as the first option to this method, then your
|
|
381
418
|
notification callback will only be called if the response status matches
|
|
382
|
-
the code.
|
|
419
|
+
the code. For example, if you pass 201 (or SC.Request.CREATED) then
|
|
383
420
|
your method will only be called if the response status from the server
|
|
384
421
|
is 201.
|
|
385
|
-
|
|
422
|
+
|
|
386
423
|
You can also pass "generic" status codes such as 200, 300, or 400, which
|
|
387
|
-
will be invoked anytime the status code is the range if a more specific
|
|
388
|
-
notifier was not registered first and returned YES.
|
|
389
|
-
|
|
424
|
+
will be invoked anytime the status code is the range if a more specific
|
|
425
|
+
notifier was not registered first and returned YES.
|
|
426
|
+
|
|
390
427
|
Finally, passing a status code of 0 or no status at all will cause your
|
|
391
|
-
method to be executed no matter what the resulting status is unless a
|
|
428
|
+
method to be executed no matter what the resulting status is unless a
|
|
392
429
|
more specific notifier was registered and returned YES.
|
|
393
|
-
|
|
394
|
-
Callback Format
|
|
395
|
-
|
|
396
|
-
|
|
430
|
+
|
|
431
|
+
## Callback Format
|
|
432
|
+
|
|
397
433
|
Your notification callback should expect to receive the Response object
|
|
398
|
-
as the first parameter plus any additional parameters that you pass.
|
|
399
|
-
|
|
434
|
+
as the first parameter plus any additional parameters that you pass.
|
|
435
|
+
|
|
400
436
|
@param {Number} status
|
|
401
437
|
@param {Object} target
|
|
402
|
-
@param {String|
|
|
438
|
+
@param {String|Function} action
|
|
403
439
|
@param {Hash} params
|
|
404
440
|
@returns {SC.Request} receiver
|
|
405
441
|
*/
|
|
406
442
|
notify: function(status, target, action, params) {
|
|
407
|
-
|
|
408
443
|
// normalize status
|
|
409
|
-
var hasStatus = YES
|
|
444
|
+
var hasStatus = YES;
|
|
410
445
|
if (SC.typeOf(status) !== SC.T_NUMBER) {
|
|
411
446
|
params = SC.A(arguments).slice(2);
|
|
412
447
|
action = target;
|
|
413
448
|
target = status;
|
|
414
|
-
status = 0
|
|
415
|
-
hasStatus = NO
|
|
416
|
-
} else
|
|
417
|
-
|
|
449
|
+
status = 0;
|
|
450
|
+
hasStatus = NO;
|
|
451
|
+
} else {
|
|
452
|
+
params = SC.A(arguments).slice(3);
|
|
453
|
+
}
|
|
454
|
+
|
|
418
455
|
var listeners = this.get('listeners');
|
|
419
|
-
if (!listeners) this.set('listeners', listeners = {});
|
|
420
|
-
listeners[status]
|
|
456
|
+
if (!listeners) { this.set('listeners', listeners = {}); }
|
|
457
|
+
if(!listeners[status]) { listeners[status] = []; }
|
|
458
|
+
|
|
459
|
+
listeners[status].push({target: target, action: action, params: params});
|
|
421
460
|
|
|
422
461
|
return this;
|
|
423
462
|
}
|
|
424
|
-
|
|
463
|
+
|
|
425
464
|
});
|
|
426
465
|
|
|
427
|
-
SC.Request.mixin(
|
|
428
|
-
|
|
466
|
+
SC.Request.mixin(
|
|
467
|
+
/** @scope SC.Request */ {
|
|
468
|
+
|
|
429
469
|
/**
|
|
430
470
|
Helper method for quickly setting up a GET request.
|
|
431
471
|
|
|
@@ -445,7 +485,7 @@ SC.Request.mixin(/** @scope SC.Request */ {
|
|
|
445
485
|
*/
|
|
446
486
|
postUrl: function(address, body) {
|
|
447
487
|
var req = this.create().set('address', address).set('type', 'POST');
|
|
448
|
-
if(body) req.set('body', body) ;
|
|
488
|
+
if(body) { req.set('body', body) ; }
|
|
449
489
|
return req ;
|
|
450
490
|
},
|
|
451
491
|
|
|
@@ -468,59 +508,64 @@ SC.Request.mixin(/** @scope SC.Request */ {
|
|
|
468
508
|
*/
|
|
469
509
|
putUrl: function(address, body) {
|
|
470
510
|
var req = this.create().set('address', address).set('type', 'PUT');
|
|
471
|
-
if(body) req.set('body', body) ;
|
|
511
|
+
if(body) { req.set('body', body) ; }
|
|
472
512
|
return req ;
|
|
473
513
|
}
|
|
514
|
+
|
|
474
515
|
});
|
|
475
516
|
|
|
476
517
|
/**
|
|
477
518
|
@class
|
|
478
519
|
|
|
479
|
-
The request manager coordinates all of the active XHR requests.
|
|
480
|
-
only allow a certain number of requests to be active at a time; queuing
|
|
481
|
-
any others.
|
|
520
|
+
The request manager coordinates all of the active XHR requests. It will
|
|
521
|
+
only allow a certain number of requests to be active at a time; queuing
|
|
522
|
+
any others. This allows you more precise control over which requests load
|
|
482
523
|
in which order.
|
|
483
524
|
|
|
484
525
|
@since SproutCore 1.0
|
|
485
526
|
*/
|
|
486
527
|
SC.Request.manager = SC.Object.create(
|
|
487
|
-
|
|
528
|
+
/** @scope SC.Request.manager */{
|
|
488
529
|
|
|
489
530
|
/**
|
|
490
|
-
Maximum number of concurrent requests allowed.
|
|
531
|
+
Maximum number of concurrent requests allowed. 6 for all browsers.
|
|
491
532
|
|
|
492
|
-
@
|
|
533
|
+
@type Number
|
|
534
|
+
@default 6
|
|
493
535
|
*/
|
|
494
536
|
maxRequests: 6,
|
|
495
537
|
|
|
496
538
|
/**
|
|
497
539
|
Current requests that are inflight.
|
|
498
|
-
|
|
499
|
-
@
|
|
540
|
+
|
|
541
|
+
@type Array
|
|
542
|
+
@default []
|
|
500
543
|
*/
|
|
501
544
|
inflight: [],
|
|
502
|
-
|
|
545
|
+
|
|
503
546
|
/**
|
|
504
547
|
Requests that are pending and have not been started yet.
|
|
505
|
-
|
|
506
|
-
@
|
|
548
|
+
|
|
549
|
+
@type Array
|
|
550
|
+
@default []
|
|
507
551
|
*/
|
|
508
552
|
pending: [],
|
|
509
553
|
|
|
554
|
+
|
|
510
555
|
// ..........................................................
|
|
511
556
|
// METHODS
|
|
512
557
|
//
|
|
513
558
|
|
|
514
559
|
/**
|
|
515
|
-
Invoked by the send() method on a request.
|
|
560
|
+
Invoked by the send() method on a request. This will create a new low-
|
|
516
561
|
level transport object and queue it if needed.
|
|
517
562
|
|
|
518
563
|
@param {SC.Request} request the request to send
|
|
519
564
|
@returns {SC.Object} response object
|
|
520
565
|
*/
|
|
521
566
|
sendRequest: function(request) {
|
|
522
|
-
if (!request) return null
|
|
523
|
-
|
|
567
|
+
if (!request) { return null; }
|
|
568
|
+
|
|
524
569
|
// create low-level transport. copy all critical data for request over
|
|
525
570
|
// so that if the request has been reconfigured the transport will still
|
|
526
571
|
// work.
|
|
@@ -529,43 +574,41 @@ SC.Request.manager = SC.Object.create(
|
|
|
529
574
|
// add to pending queue
|
|
530
575
|
this.get('pending').pushObject(response);
|
|
531
576
|
this.fireRequestIfNeeded();
|
|
532
|
-
|
|
533
|
-
return response
|
|
577
|
+
|
|
578
|
+
return response;
|
|
534
579
|
},
|
|
535
580
|
|
|
536
581
|
/**
|
|
537
|
-
Cancels a specific request.
|
|
538
|
-
be removed.
|
|
539
|
-
|
|
582
|
+
Cancels a specific request. If the request is pending it will simply
|
|
583
|
+
be removed. Otherwise it will actually be cancelled.
|
|
584
|
+
|
|
540
585
|
@param {Object} response a response object
|
|
541
586
|
@returns {Boolean} YES if cancelled
|
|
542
587
|
*/
|
|
543
588
|
cancel: function(response) {
|
|
544
|
-
|
|
545
589
|
var pending = this.get('pending'),
|
|
546
590
|
inflight = this.get('inflight'),
|
|
547
|
-
idx
|
|
591
|
+
idx;
|
|
548
592
|
|
|
549
593
|
if (pending.indexOf(response) >= 0) {
|
|
550
594
|
this.propertyWillChange('pending');
|
|
551
595
|
pending.removeObject(response);
|
|
552
596
|
this.propertyDidChange('pending');
|
|
553
597
|
return YES;
|
|
554
|
-
|
|
555
598
|
} else if (inflight.indexOf(response) >= 0) {
|
|
556
|
-
|
|
557
599
|
response.cancel();
|
|
558
|
-
|
|
600
|
+
|
|
559
601
|
inflight.removeObject(response);
|
|
560
602
|
this.fireRequestIfNeeded();
|
|
561
603
|
return YES;
|
|
604
|
+
}
|
|
562
605
|
|
|
563
|
-
|
|
564
|
-
},
|
|
606
|
+
return NO;
|
|
607
|
+
},
|
|
565
608
|
|
|
566
609
|
/**
|
|
567
|
-
Cancels all inflight and pending requests.
|
|
568
|
-
|
|
610
|
+
Cancels all inflight and pending requests.
|
|
611
|
+
|
|
569
612
|
@returns {Boolean} YES if any items were cancelled.
|
|
570
613
|
*/
|
|
571
614
|
cancelAll: function() {
|
|
@@ -574,22 +617,23 @@ SC.Request.manager = SC.Object.create(
|
|
|
574
617
|
this.get('inflight').forEach(function(r) { r.cancel(); });
|
|
575
618
|
this.set('inflight', []);
|
|
576
619
|
return YES;
|
|
577
|
-
|
|
578
|
-
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
return NO;
|
|
579
623
|
},
|
|
580
624
|
|
|
581
625
|
/**
|
|
582
|
-
Checks the inflight queue.
|
|
626
|
+
Checks the inflight queue. If there is an open slot, this will move a
|
|
583
627
|
request from pending to inflight.
|
|
584
|
-
|
|
628
|
+
|
|
585
629
|
@returns {Object} receiver
|
|
586
630
|
*/
|
|
587
631
|
fireRequestIfNeeded: function() {
|
|
588
|
-
var pending = this.get('pending'),
|
|
632
|
+
var pending = this.get('pending'),
|
|
589
633
|
inflight = this.get('inflight'),
|
|
590
634
|
max = this.get('maxRequests'),
|
|
591
|
-
next
|
|
592
|
-
|
|
635
|
+
next;
|
|
636
|
+
|
|
593
637
|
if ((pending.length>0) && (inflight.length<max)) {
|
|
594
638
|
next = pending.shiftObject();
|
|
595
639
|
inflight.pushObject(next);
|
|
@@ -598,12 +642,12 @@ SC.Request.manager = SC.Object.create(
|
|
|
598
642
|
},
|
|
599
643
|
|
|
600
644
|
/**
|
|
601
|
-
Called by a response/transport object when finishes running.
|
|
645
|
+
Called by a response/transport object when finishes running. Removes
|
|
602
646
|
the transport from the queue and kicks off the next one.
|
|
603
647
|
*/
|
|
604
648
|
transportDidClose: function(response) {
|
|
605
649
|
this.get('inflight').removeObject(response);
|
|
606
650
|
this.fireRequestIfNeeded();
|
|
607
651
|
}
|
|
608
|
-
|
|
652
|
+
|
|
609
653
|
});
|